public new ShrimpBattleTurnResults DoTurn(ShrimpBattleActionType action) { var rng = new Random(); ShrimpBattleTurnResults results; if (Turn == ShrimpBattleTurn.Player1) { results = PerformActionForType(action, rng, Protagonist, Enemy, this); Turn = ShrimpBattleTurn.Player2; } else { results = PerformActionForType(action, rng, Enemy, Protagonist, this); Turn = ShrimpBattleTurn.Player1; // Complete turn completed Protagonist.Mana += 3; Enemy.Mana += 3; Turns++; } return(results); }
public static ShrimpBattleTurnResults PerformActionForType(ShrimpBattleActionType type, Random rng, ShrimpBattlePerson attacker, ShrimpBattlePerson target, ShrimpBattle battle) => type switch {
public (ShrimpBattleTurnResults proResults, ShrimpBattleTurnResults eneResults) DoTurn(ShrimpBattleActionType action) { if (Turns >= 15) { InBlitzMode = true; } var rng = new Random(); // enemy AI ShrimpBattleActionType turn; var defaultPerson = new ShrimpBattlePerson(); // A default person used to make some decisions if ((Enemy.Health < defaultPerson.Health / 2) && Enemy.Mana > ShrimpBattlePerson.ManaNeededForHealingMagic && !InBlitzMode) { turn = ShrimpBattleActionType.Heal; } else { if (Protagonist.Health < defaultPerson.Health / 2 && Enemy.Mana > ShrimpBattlePerson.ManaNeededForOffensiveMagic) { turn = ShrimpBattleActionType.UseMagic; } else { turn = ShrimpBattleActionType.Attack; } } // turn var protagonist = Protagonist; var enemy = Enemy; var proResults = PerformActionForType(action, rng, protagonist, enemy, this); var eneResults = PerformActionForType(turn, rng, enemy, protagonist, this); Protagonist = protagonist; Enemy = enemy; Protagonist.Mana += 3; Enemy.Mana += 3; Turns++; return(proResults, eneResults); }