Beispiel #1
0
 private static void DoAttack(BasePlayer skill, BasePlayer secondPlayer)
 {
     if (new Random().Next(0, 10) >= 6)
     {
         skill.UltaAttack(secondPlayer);
     }
     else
     {
         skill.Attack(secondPlayer);
     }
 }
        public void BasicWeaponsAttacking()
        {
            var warAxe = HearthEntityFactory.CreateCard <FieryWarAxe>();

            player.Weapon      = warAxe;
            warAxe.WeaponOwner = player;

            var yeti = HearthEntityFactory.CreateCard <ChillwindYeti>();

            GameEngine.GameState.WaitingPlayerPlayZone[0] = yeti;

            player.Attack(yeti);
            Assert.AreEqual(2, yeti.CurrentHealth, "Verify Yeti_1 is at 2 health");
            Assert.AreEqual(26, player.Health, "Verify the player is now at 26 health");
            Assert.AreEqual(1, warAxe.Durability, "Verify the war axe is now at 1 durability");

            player.RemoveStatusEffects(PlayerStatusEffects.EXHAUSTED);

            player.Attack(yeti);
            Assert.AreEqual(-1, yeti.CurrentHealth, "Verify Yeti_1 is at -1 health");
            Assert.AreEqual(22, player.Health, "Verify the player is now at 22 health");
            Assert.AreEqual(0, warAxe.Durability, "Verify the war axe is now at 0 durability");

            Assert.IsNull(player.Weapon, "Verify that the player no longer has the weapon equipped");
            Assert.IsTrue(player.Graveyard.Contains(warAxe), "Verify that the war axe is now in the graveyard");
        }
Beispiel #3
0
        public void UnfreezePlayers()
        {
            GameEngine.GameState.CurrentPlayer = player;

            var fieryWarAxe = HearthEntityFactory.CreateCard <FieryWarAxe>();

            fieryWarAxe.WeaponOwner = player;
            player.Weapon           = fieryWarAxe;

            player.ApplyStatusEffects(PlayerStatusEffects.FROZEN);
            opponent.ApplyStatusEffects(PlayerStatusEffects.FROZEN);

            GameEngine.EndTurn();

            // The player should be unfrozen because they have not attacked their turn
            Assert.IsFalse(player.IsFrozen, "Verify player is unfrozen");

            // The opponent on the other hand should still be frozen
            Assert.IsTrue(opponent.IsFrozen, "Verify opponent is frozen");

            GameEngine.EndTurn();

            // Now the opponent should be unfrozen
            Assert.IsFalse(opponent.IsFrozen, "Verify opponent is unfrozen");

            player.Attack(opponent);
            player.ApplyStatusEffects(PlayerStatusEffects.FROZEN);

            GameEngine.EndTurn();

            // This time, the player should remain frozen because they have attacked on their turn
            Assert.IsTrue(player.IsFrozen, "Verify player is frozen");

            GameEngine.EndTurn();
            GameEngine.EndTurn();

            // And now, they should be unfrozen
            Assert.IsFalse(player.IsFrozen, "Verify player is unfrozen");
        }
Beispiel #4
0
    public void UpdatePlayerControls()
    {
        Vector3 moveDir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

        //Debug.Log(moveDir);
        mPlayer.MoveDir(moveDir, Mathf.Clamp01(moveDir.magnitude));

        Ray   mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
        float dist;

        if (mGroundPlane.Raycast(mouseRay, out dist))
        {
            Vector3 hit = mouseRay.GetPoint(dist);
            mPlayer.LookAtPoint(hit);
        }

        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            mQueuedAction     = QueuedActionType.ChangeToMelee;
            mActionDelayTimer = kActionDelayTime;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            mQueuedAction     = QueuedActionType.ChangeToRange;
            mActionDelayTimer = kActionDelayTime;
        }
        else if (Input.GetAxis("Mouse ScrollWheel") != 0)
        {
            if (mPlayer.mEquipedWeaponType == BasePlayer.EquipedWeaponType.Melee)
            {
                mQueuedAction = QueuedActionType.ChangeToRange;
            }
            else
            {
                mQueuedAction = QueuedActionType.ChangeToMelee;
            }
            mActionDelayTimer = kActionDelayTime;
        }

        /*
         * if(Input.GetKeyDown(KeyCode.Space))
         * {
         *  mPlayer.mDialogText.Show("TEST test test\nTest test");
         * }
         */
        if (Input.GetMouseButtonDown(0))
        {
            mPlayer.Attack();
        }

        if (mPlayer.IsPlayingAnimation())
        {
            return;
        }

        if (mActionDelayTimer <= 0.0f)
        {
            return;
        }

        mActionDelayTimer -= Time.deltaTime;
        if (mActionDelayTimer <= 0.0f)
        {
            switch (mQueuedAction)
            {
            case QueuedActionType.ChangeToMelee:
                mPlayer.SetEquipedWeaponType(BasePlayer.EquipedWeaponType.Melee);
                break;

            case QueuedActionType.ChangeToRange:
                mPlayer.SetEquipedWeaponType(BasePlayer.EquipedWeaponType.Ranged);
                break;
            }
            mQueuedAction = QueuedActionType.None;
        }
    }