Exemple #1
0
        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);
        }
Exemple #2
0
 public static ShrimpBattleTurnResults PerformActionForType(ShrimpBattleActionType type, Random rng, ShrimpBattlePerson attacker, ShrimpBattlePerson target, ShrimpBattle battle) => type switch
 {
Exemple #3
0
        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);
        }