Пример #1
0
        private bool Act()
        {
            bool result = false;

            this.CombatFormulas.ApplyDamage(this.CurrentActor, this.CurrentEnemy);

            if (this.CurrentEnemy.CurrentStats.HitPoints <= 0)
            {
                if (ActorFunctionality.ActorListHasOtherAliveMembers(this.DetermineEnemyData(), this.CurrentEnemy))
                {
                    result = true;
                    this.ContinueCombat();
                }
                else
                {
                    this.WinnerSide = this.CurrentSide;
                }
            }
            else
            {
                result = true;
                this.ContinueCombat();
            }

            return(result);
        }
Пример #2
0
        public void ActScene()
        {
            //if invalid data is received just assume a winner to avoid a crash
            if (!ActorFunctionality.ActorListHasMembers(this.Actors) && !ActorFunctionality.ActorListHasMembers(this.Enemies))
            {
                this.WinnerSide = CombatEnums.SideEnum.Left;
                return;
            }

            this.SetSides();

            //determine which side starts;
            this.CurrentSide = CombatEnums.SideEnum.Left;

            //determine which combatants start, on both sides
            this.CurrentActor = this.Actors.First();
            this.CurrentEnemy = this.Enemies.First();

            //main combat loop, runs until one side is obliterated
            bool combatContinues = true;

            while (combatContinues)
            {
                combatContinues = this.Act();
            }
        }