public void StartNextAction() { if (actions.Count > 0) { SpacecraftAction action = actions[0]; if (action is SpacecraftBoost) { SpacecraftBoost boost = (SpacecraftBoost)action; if (boost.direction == SpacecraftAction.Direction.None) { return; } controller.Boost(boost.direction, boost.boostForce, boost.duration); actions.RemoveAt(0); } else if (action is SpacecraftRotation) { SpacecraftRotation rotation = (SpacecraftRotation)action; if (rotation.direction == SpacecraftAction.Direction.None) { return; } controller.Rotate(rotation.direction, rotation.angularSpeed, rotation.duration); actions.RemoveAt(0); } if (action is SpacecraftWeaponAction) { Transform weapon = null; SpacecraftWeaponAction weaponAction = (SpacecraftWeaponAction)action; switch (weaponAction.type) { case SpacecraftWeaponAction.WeaponType.GravityMine: controller.FireGravityMine(); actions.RemoveAt(0); break; case SpacecraftWeaponAction.WeaponType.Laser: controller.FireLaser(); actions.RemoveAt(0); break; case SpacecraftWeaponAction.WeaponType.Rocket: controller.FireMissile(); actions.RemoveAt(0); break; default: weapon = null; break; } } } }
private void Gameloop() { foreach (Spacecraft spacecraft in spacecrafts) { ActionStack cards = spacecraft.player.actionSelection; for (int i = 0; i < cards.actionList.Count; i++) { SpacecraftAction action = CardParser.ParseCard(cards.getActionCard(i)); spacecraft.AddAction(action); } } }
public void AddAction(SpacecraftAction action) { actions.Add(action); }