public static void Fight(ICharacter a, ICharacter b)
 {
     if (_rnd.Next(2) == 1)
     {
         Console.WriteLine("Character " + a.Name + " Took the first swing");
         while (a.Dead == false && b.Dead == false)
         {
             b.TakeDamage(a.Attack());
             Console.WriteLine(b.Name + " has " + b.Hitpoints + " hitpoints left");
             if (b.Dead == false)
             {
                 a.TakeDamage(b.Attack());
                 Console.WriteLine(a.Name + " has " + a.Hitpoints + " hitpoints left");
             }
         }
     }
     else
     {
         Console.WriteLine("Character " + b.Name + " Took the first swing");
         while (a.Dead == false && b.Dead == false)
         {
             a.TakeDamage(b.Attack());
             Console.WriteLine(a.Name + " has " + a.Hitpoints + " hitpoints left");
             if (a.Dead == false)
             {
                 b.TakeDamage(a.Attack());
                 Console.WriteLine(b.Name + " has " + b.Hitpoints + " hitpoints left");
             }
         }
     }
 }
        private void BeginBattle(ICharacter enemy)
        {
            this.renderer.WriteLine("Enemy current health {0} damage {1}", enemy.Health, enemy.Damage);
            this.renderer.WriteLine("Your current health {0} and damage {1}", this.hero.Health, this.hero.Damage);
            this.hero.Attack(enemy);

            if (enemy.Health <= 0)
            {
                this.characters.Remove(enemy as GameObject);
                this.renderer.WriteLine("You attacked and slain him!");
                this.renderer.WriteLine("Your health after the battle {0} and damage {1}", this.hero.Health, this.hero.Damage);
                return;
            }
            if (enemy.Health > 0)
            {
                this.renderer.WriteLine("You attacked him, but he was strong and he decided to strike back!");
                this.renderer.WriteLine("Enemy health after your attack {0} damage {1}", enemy.Health, enemy.Damage);
                enemy.Attack(this.hero);
                if (this.hero.Health > 0)
                {
                    this.renderer.WriteLine("Your health after enemy attack {0} damage {1}", this.hero.Health, this.hero.Damage);
                }
                while (enemy.Health > 0 || this.hero.Health > 0)
                {
                    this.hero.Attack(enemy);
                    this.renderer.WriteLine("You attacked him again stronger!");
                    if (enemy.Health <= 0)
                    {
                        break;
                    }
                    this.renderer.WriteLine("Enemy health after your attack {0} damage {1}", enemy.Health, enemy.Damage);
                    enemy.Attack(this.hero);
                    this.renderer.WriteLine("He strike back!");
                    if (this.hero.Health <= 0)
                    {
                        break;
                    }
                    this.renderer.WriteLine("Your health after enemy attack {0} damage {1}", this.hero.Health, this.hero.Damage);
                }
            }
            if (this.hero.Health <= 0)
            {
                this.IsRunning = false;
                this.renderer.WriteLine("You are dead!");
            }
            if (this.hero.Health > 0)
            {
                this.characters.Remove(enemy as GameObject);
                this.renderer.WriteLine("You has slain an enemy!");
                this.renderer.WriteLine("Your health after the battle {0} and damage {1}", this.hero.Health, this.hero.Damage);
            }
        }
        /// <summary>
        /// Loops through attacks unitil a winner is decided
        /// </summary>
        /// <param name="one">The first Character fighting</param>
        /// <param name="two">The second Character fighting</param>
        /// <returns>true if one wins and false if two wins</returns>
        public static bool Battle(ICharacter one, ICharacter two)
        {
            bool isOnesTurn = true;

            while (one.Health > 0 && two.Health > 0)
            {
                if (isOnesTurn)
                {
                    one.Attack(two);
                }
                else
                {
                    two.Attack(one);
                }
                isOnesTurn = !isOnesTurn;
            }

            if (two.Health <= 0)
            {
                two.Die();
                return(true);
            }
            one.Die();
            return(false);
        }
Beispiel #4
0
        private void EnterBattle(IGameEngine engine, ICharacter currentEnemy)
        {
            while (true)
            {
                engine.Player.Attack(currentEnemy);
                engine.PushStatus($"You smash the {currentEnemy.Name} for {engine.Player.Damage} damage!");

                if (currentEnemy.Health <= 0)
                {
                    engine.PushStatus($"Enemy {currentEnemy.Name} killed!");
                    engine.RemoveEnemy(currentEnemy);
                    return;
                }

                currentEnemy.Attack(engine.Player);
                engine.PushStatus($"The {currentEnemy.Name} hits you for {currentEnemy.Damage} damage!");

                if (engine.Player.Health <= 0)
                {
                    engine.IsRunning = false;
                    GameStateScreens.ShowGameOverScreen();
                    return;
                }
            }
        }
Beispiel #5
0
 public override void Execute(ICharacter character)
 {
     character.TimeSinceLastAction += Time.fixedDeltaTime;
     if (character.TimeSinceLastAction >= 1 / character.Stats.AttacksPerSecond)
     {
         character.TimeSinceLastAction = 0;
         character.Attack();
     }
 }
 public static void DoBattle(ICharacter char1, ICharacter char2, IDice _dice)
 {
     BonusRoll(char1, char2, _dice);
     Console.WriteLine("Battle Roll:");
     while (char1.Health > 0 && char2.Health > 0)
     {
         AdjustStats(char1.Name + " Battle Roll", char1.Attack(_dice), char2);
         AdjustStats(char2.Name + " Battle Roll", char2.Attack(_dice), char1);
     }
     DisplayResults(char1, char2);
 }
Beispiel #7
0
    // 攻击目标
    public virtual void Attack(ICharacter Target)
    {
        // 时间到了才攻击
        m_CoolDown -= Time.deltaTime;
        if (m_CoolDown > 0)
        {
            return;
        }
        m_CoolDown = ATTACK_COOLD_DOWN;

        m_Character.Attack(Target);
    }
    // 攻擊目標
    public virtual void Attack(ICharacter Target)
    {
        // 時間到了才攻擊
        m_CoolDown -= Time.deltaTime;
        if (m_CoolDown > 0)
        {
            return;
        }
        m_CoolDown = ATTACK_COOLD_DOWN;

        //Debug.Log ("攻擊目標:"+Target.GetGameObject().gameObject.name);
        m_Character.Attack(Target);
    }
        public static void BonusRoll(ICharacter char1, ICharacter char2, IDice _dice)
        {
            DetermineBonus(char1, char2);
            Console.WriteLine("Bonus Roll:");

            if (char1.AttackBonus == true)
            {
                AdjustStats(char1.Name + " Bonus Roll", char1.Attack(_dice), char2);
            }
            else
            {
                AdjustStats(char2.Name + " Bonus Roll", char2.Attack(_dice), char1);
            }
        }
Beispiel #10
0
        private void PerformAttack(ICharacter enemy)
        {
            this.player.Attack(enemy);

            if (enemy.HitPoints == 0)
            {
                this.entities.Remove(enemy);
                this.renderer.WriteLine("Enemy was defeated!");
                this.player.Score += 100;
                return;
            }

            enemy.Attack(this.player);
            this.renderer.WriteLine("Damage taken!");
            this.renderer.WriteLine("Player hit points: {0}", this.player.HitPoints);
            this.renderer.WriteLine("Enemy hit points: {0}", enemy.HitPoints);
        }
Beispiel #11
0
        private void EnterBattle(ICharacter currentEnemy)
        {
            ConsoleRenderer.WriteLine(
                "An enemy {0} is approaching. Prepare for battle!",
                currentEnemy.GetType().Name);
            while (true)
            {
                this.Engine.Player.Attack(currentEnemy);
                ConsoleRenderer.WriteLine("You smash the {0} for {1} damage!",
                                          currentEnemy.GetType().Name, this.Engine.Player.Damage);

                if (currentEnemy.Health <= 0)
                {
                    ConsoleRenderer.WriteLine("Enemy killed!");
                    ConsoleRenderer.WriteLine("Health Remaining: {0}", this.Engine.Player.Health);
                    this.Engine.RemoveEnemy(currentEnemy);
                    return;
                }

                currentEnemy.Attack(this.Engine.Player);
                ConsoleRenderer.WriteLine("The {0} hits you for {1} damage!",
                                          currentEnemy.GetType().Name, currentEnemy.Damage);

                if (this.Engine.Player.Health < 150 && this.Engine.Player.Inventory.BackPack.SlotList.Any(x => x.GameItem is HealthPotion ||
                                                                                                          x.GameItem is HealthBonusPotion))
                {
                    try
                    {
                        this.Engine.Player.SelfHeal();
                    }
                    catch (NoHealthPotionsException ex)
                    {
                        ConsoleRenderer.WriteLine(ex.Message);
                    }
                }

                if (this.Engine.Player.Health <= 0)
                {
                    this.Engine.IsRunning = false;
                    GameStateScreens.ShowGameOverScreen();
                    return;
                }
            }
        }
Beispiel #12
0
        private void EnterBattle(ICharacter enemy)
        {
            this.player.Attack(enemy);

            if (enemy.Health <= 0)
            {
                this.renderer.WriteLine("Enemy killed!");
                this.characters.Remove(enemy as GameObject);
                return;
            }

            enemy.Attack(this.player);

            if (this.player.Health <= 0)
            {
                this.IsRunning = false;
                this.renderer.WriteLine("You dead!");
            }
        }
Beispiel #13
0
        private void EnterBattle(ICharacter enemy)
        {
            this.player.Attack(enemy);

            if (enemy.Health <= 0)
            {
                this.renderer.WriteLine("Enemy killed!");
                this.player.GainExperience(enemy);

                this.enemies.Remove(enemy as Character);

                if (enemies.Count == 0)
                {
                    this.IsRunning = false;
                    this.renderer.WriteLine(String.Empty);
                    this.renderer.WriteLine("Victory! All enemies are dead.");
                    this.renderer.WriteLine("Press any key to quit!");
                    Console.ReadKey();
                    this.renderer.WriteLine(String.Empty);
                }
                return;
            }
            else
            {
                enemy.Attack(this.player);
            }

            if (player.Health > 0)
            {
                this.renderer.WriteLine("Enemy not killed! You must attack again.");
            }
            else
            {
                this.IsRunning = false;
                this.renderer.WriteLine("You died !");
                this.renderer.WriteLine("Press any key to quit!");
                Console.ReadKey();
            }
        }
        private void EnterBattle(ICharacter enemy)
        {
            this.player.Attack(enemy);

            if (enemy.Health <= 0)
            {
                this.renderer.WriteLine("Enemy killed!");
                this.characters.Remove(enemy as GameObject);
                return;
            }

            enemy.Attack(this.player);

            if (this.player.Health <= 0)
            {
                this.IsRunning = false;
                this.renderer.WriteLine("You dead!");
            }
        }
Beispiel #15
0
        private void PerformAttack(ICharacter enemy)
        {
            this.player.Attack(enemy);

            if (enemy.HitPoints == 0)
            {
                this.entities.Remove(enemy);
                this.renderer.WriteLine("Enemy was defeated!");
                this.player.Score += 100;
                return;
            }

            enemy.Attack(this.player);
            this.renderer.WriteLine("Damage taken!");
            this.renderer.WriteLine("Player hit points: {0}", this.player.HitPoints);
            this.renderer.WriteLine("Enemy hit points: {0}", enemy.HitPoints);
        }
 private void GetIntoFight(ICharacter player, ICharacter enemy)
 {
     while (enemy.IsAlive)
     {
         if (!player.IsAlive)
         {
             this.Engine.Writer.Print("Young jedi died. Game over!");
             this.Engine.IsRunning = false;
             break;
         }
         player.Attack(enemy);
         enemy.Attack(player);
     }
     this.Engine.Writer.Print("One stormtrooper died. Keep going.");
 }
Beispiel #17
0
 public void ExcuteCommand()
 {
     character.Attack();
 }