package com.rebelkeithy.ftl.weapons;
import java.util.HashMap;
import java.util.Map;
import com.rebelkeithy.ftl.FTLGame;
import com.rebelkeithy.ftl.projectile.Bomb;
import com.rebelkeithy.ftl.ship.Resource;
public class BombWeapon extends Weapon
{
private Map<String, Integer> damages;
private String ammo = null;
private String targetedShip;
private String targetedRoom;
public BombWeapon(String name, int requiredPower, double chargeTime)
{
super(name, requiredPower, chargeTime);
damages = new HashMap<String, Integer>();
}
public BombWeapon setDamage(String damageType, int amount)
{
damages.put(damageType, amount);
return this;
}
public BombWeapon setAmmo(String ammo)
{
this.ammo = ammo;
return this;
}
@Override
public void update(double dt)
{
super.update(dt);
}
@Override
public void setTarget(String ship, String room)
{
this.targetedShip = ship;
this.targetedRoom = room;
}
@Override
public void activate()
{
if(targetedShip == null || targetedRoom == null)
{
return;
}
if(isCharged())
{
if(ammo != null)
{
if(Resource.getResource(ammo).getResourceAmount(getShip()) > 0)
{
Resource.getResource(ammo).addResource(getShip(), -1);
}
else
{
return;
}
}
fire(targetedShip, targetedRoom);
removeCharge();
}
}
public void fire(String ship, String room)
{
Bomb bomb = new Bomb(ship, room, getShip().getName());
for(String damage : damages.keySet())
{
bomb.addDamage(damage, damages.get(damage));
}
FTLGame.instance().addShot(bomb);
}
}