Beispiel #1
0
        public bool FightEnemy(BaseEnemy enemy)
        {
            var fightHero = _hero.Clone();

            BaseEnemy baseEnemy = (BaseEnemy)enemy.Clone();
            double    heroDamage;
            double    enemyDamage;
            Random    rnd     = new Random();
            bool      heroWin = false;

            for (; ;)
            {
                int whoHit = rnd.Next(0, 100);
                if (whoHit < 50)
                {
                    heroDamage        = CalculationClearDamage((BaseCharacter)fightHero, baseEnemy);
                    baseEnemy.Health -= (int)heroDamage;
                    if (baseEnemy.Health <= 0)
                    {
                        heroWin = true;
                        break;
                    }
                }
                else
                {
                    enemyDamage = CalculationClearDamage(baseEnemy, (BaseCharacter)fightHero);
                    ((BaseCharacter)fightHero).Health -= (int)enemyDamage;
                    if (((BaseCharacter)fightHero).Health <= 0)
                    {
                        break;
                    }
                }
            }
            if (heroWin)
            {
                enemiesView.ShowWin(baseEnemy);
                _hero.OwnExperience += baseEnemy.OwnExperience;
                if (_hero.OwnExperience >= _hero.NeededExperience)
                {
                    MyEvent myEvent = new MyEvent();
                    myEvent.UserEvent += _heroService.LvlUp;
                    myEvent.OnUserEvent();
                }
            }
            else
            {
                enemiesView.ShowLose(baseEnemy);
            }
            return(heroWin);
        }