Search in sources :

Example 11 with AiCore

use of spacesettlers.objects.AiCore in project spacesettlers by amymcgovern.

the class CollisionHandler method EMPCollision.

/**
 * Collide with a EMP
 * @param object1
 * @param object2
 */
private void EMPCollision(EMP emp, AbstractObject object2) {
    // get the ship that fired
    Ship firingShip = emp.getFiringShip();
    firingShip.decrementWeaponCount();
    if (object2.getClass() == Ship.class) {
        Ship ship = (Ship) object2;
        // only take a hit if not shielded
        if (!ship.isShielded()) {
            ship.updateEnergy(emp.getDamage());
            ship.incrementDamageReceived(emp.getDamage());
            ship.setFreezeCount(emp.getFreezeCount());
            // it hit a ship
            firingShip.incrementHitsInflicted();
        }
    }
    if (object2.getClass() == Base.class) {
        Base base = (Base) object2;
        // only take a hit if not shielded
        if (!base.isShielded()) {
            base.updateEnergy(emp.getDamage());
            base.incrementDamageReceived(emp.getDamage());
            base.setFreezeCount(emp.getFreezeCount());
            // it hit a base
            firingShip.incrementHitsInflicted();
        }
    }
    // Handle a emp hitting a emp (no damageInflicted but both weapons die)
    if (object2.getClass() == EMP.class) {
        object2.setAlive(false);
        Ship otherFiringShip = ((EMP) object2).getFiringShip();
        otherFiringShip.decrementWeaponCount();
    }
    // Did the EMP hit an AiCore? If so, destroy the AiCore.
    if (object2.getClass() == AiCore.class) {
        AiCore core = (AiCore) object2;
        // Kill the core!
        core.setAlive(false);
    }
    emp.setAlive(false);
}
Also used : AiCore(spacesettlers.objects.AiCore) EMP(spacesettlers.objects.weapons.EMP) Ship(spacesettlers.objects.Ship) Base(spacesettlers.objects.Base)

Aggregations

AiCore (spacesettlers.objects.AiCore)11 Base (spacesettlers.objects.Base)7 Ship (spacesettlers.objects.Ship)6 AbstractAction (spacesettlers.actions.AbstractAction)5 DoNothingAction (spacesettlers.actions.DoNothingAction)5 Position (spacesettlers.utilities.Position)5 MoveToObjectAction (spacesettlers.actions.MoveToObjectAction)4 Beacon (spacesettlers.objects.Beacon)3 UUID (java.util.UUID)2 AbstractObject (spacesettlers.objects.AbstractObject)2 Asteroid (spacesettlers.objects.Asteroid)2 HashMap (java.util.HashMap)1 LinkedHashSet (java.util.LinkedHashSet)1 AbstractActionableObject (spacesettlers.objects.AbstractActionableObject)1 ResourcePile (spacesettlers.objects.resources.ResourcePile)1 EMP (spacesettlers.objects.weapons.EMP)1 Missile (spacesettlers.objects.weapons.Missile)1 Movement (spacesettlers.utilities.Movement)1