Example #1
0
        /// <summary>
        /// Effectively starts a combat with enemy
        /// Attacking is the same for every faction
        /// </summary>
        /// <param name="enemy"></param>
        public void RealAttack(IUnit enemy)
        {
            this.ChangeState(UnitState.Attacking);
            enemy.ChangeState(UnitState.Defending);
            GameMaster.GM.CurrentGame.Fight(this, enemy);

            // Check wounds after fighting
            if (this.Hp == 0)
                this.Die();
            else
                this.ChangeState(UnitState.Idle);

            if (enemy.Hp == 0)
            {
                enemy.Die();
                if (!enemy.Position.IsOccupied())
                    this.Move(enemy.Position);
            }
            else
                enemy.ChangeState(UnitState.Idle);

            this.Mvt--;
        }