public IKillable Kill(IKillable obj, ICanFire killingObject) { if (obj is IShip) { KillShip((IShip)obj, killingObject); } else if (obj is Turret) { KillTurret((Turret)obj); } else { throw new Exception("Kill not implemented in KillManager for object of type " + obj.GetType()); } return(obj); }