public void ApplyTo()
        {
            // Arrange
            var meleeAttackPenaltyTracker = Mock.Of <IModifierTracker>();
            var maxDexTracker             = Mock.Of <IModifierTracker>();
            var character = new Mock <ICharacter>();

            character.Setup(c => c.AttackBonuses.GenericMeleeAttackBonus.Penalties)
            .Returns(meleeAttackPenaltyTracker);
            character.Setup(c => c.ArmorClass.MaxKeyAbilityScore)
            .Returns(maxDexTracker);

            var shield = new TowerShield(SizeCategory.Medium, TowerShieldMaterial.Wood);

            // Act
            shield.ApplyTo(character.Object);

            // Assert
            Mock.Get(meleeAttackPenaltyTracker)
            .Verify(mdt => mdt.Add(It.Is <Func <byte> >(calc => 2 == calc())),
                    "Tower shields give a -2 penalty to melee attack rolls.");
            Mock.Get(maxDexTracker)
            .Verify(mdt => mdt.Add(It.Is <Func <byte> >(calc => 2 == calc())),
                    "Tower shields restrict a character's maximum dexterity bonus to AC to +2.");
        }
Exemplo n.º 2
0
    private void towerPartHandler()
    {
        myTowerScript       = transform.parent.GetComponent <Tower>();
        myTowerShieldScript = transform.parent.Find("TowerShield").GetComponent <TowerShield>();

        if (GameObject.FindWithTag("Enemy") != null)
        {
            myEnemy = GameObject.FindWithTag("Enemy").GetComponent <Enemy>();
        }

        if (!triggered)
        {
            switch (myType)
            {
            case PartType.Attack:
                attackEnemy();
                break;

            case PartType.Defense:
                myTowerShieldScript.armorUp(armor + myTowerScript.getDefenseBuffAmount());
                break;

            case PartType.Buff:
                myEnemy.addTimer(2);
                break;
            }
            triggered = true;
        }
    }
Exemplo n.º 3
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "TowerArea")
        {
            myTowerScript       = other.GetComponent <Tower>();
            myTowerScrollScript = other.GetComponent <TowerScroll>();
        }

        if (other.gameObject.tag == "TowerShield")
        {
            TowerShield myTowerShieldScript = other.gameObject.GetComponent <TowerShield>();
            int         currentArmor        = myTowerShieldScript.getCurrentArmor();
            if (currentArmor >= attack)
            {
                //Debug.Log("armor: " + currentArmor + " attack: " + attack);
                myTowerShieldScript.underAttack(attack);
                Destroy(gameObject);
                //myGameController.gameSuspended = false;
            }
            else
            {
                myTowerShieldScript.underAttack(currentArmor);
                attack -= currentArmor;
            }
        }
    }
Exemplo n.º 4
0
 // Start is called before the first frame update
 void Start()
 {
     myGameController        = GameObject.FindWithTag("System").transform.Find("GameController").GetComponent <GameController>();
     myEnemy                 = GameObject.FindWithTag("Enemy").GetComponent <Enemy>();
     myTowerShield           = transform.Find("TowerShield").GetComponent <TowerShield>();
     myPermanentShield       = transform.Find("TowerShield").Find("GoldShield").GetComponent <TowerShield>();
     searchIndex             = 0;
     curHeight               = transform.Find("Base").transform.localScale.y / 2.0f + transform.Find("Base").transform.position.y;
     myTowerStatusController = towerUI.GetComponent <TowerStatusController>();
 }
        public void Large_Wood_Default()
        {
            // Arrange
            var shield = new TowerShield(SizeCategory.Large, TowerShieldMaterial.Wood);

            // Assert
            Assert.IsFalse(shield.IsMasterwork);
            Assert.AreEqual(90, shield.GetWeight());
            Assert.AreEqual(Wood.Hardness, shield.GetHardness());
            Assert.AreEqual(40, shield.GetHitPoints());
            Assert.AreEqual(60, shield.GetMarketPrice());
            Assert.AreEqual(10, shield.GetArmorCheckPenalty());
            Assert.AreEqual("Tower Shield", shield.ToString());
        }
        public void Small_Darkwood_Default()
        {
            // Arrange
            var shield = new TowerShield(SizeCategory.Small, TowerShieldMaterial.Darkwood);

            // Assert
            Assert.IsTrue(shield.IsMasterwork);
            Assert.IsFalse(shield.MasterworkIsToggleable);
            Assert.AreEqual(11.25, shield.GetWeight());
            Assert.AreEqual(Darkwood.Hardness, shield.GetHardness());
            Assert.AreEqual(10, shield.GetHitPoints());
            Assert.AreEqual(405, shield.GetMarketPrice());
            Assert.AreEqual(8, shield.GetArmorCheckPenalty());
            Assert.AreEqual("Darkwood Tower Shield", shield.ToString());
        }
        public void Large_Dragonhide_Default()
        {
            // Arrange
            var shield = new TowerShield(SizeCategory.Large, DragonhideColor.Red);

            // Assert
            Assert.IsTrue(shield.IsMasterwork);
            Assert.IsFalse(shield.MasterworkIsToggleable);
            Assert.AreEqual(90, shield.GetWeight());
            Assert.AreEqual(Dragonhide.Hardness, shield.GetHardness());
            Assert.AreEqual(40, shield.GetHitPoints());
            Assert.AreEqual(420, shield.GetMarketPrice());
            Assert.AreEqual(9, shield.GetArmorCheckPenalty());
            Assert.AreEqual("Red Dragonhide Tower Shield", shield.ToString());
        }
        public void Medium_Wood_Masterwork()
        {
            // Arrange
            var shield = new TowerShield(SizeCategory.Medium, TowerShieldMaterial.Wood)
            {
                IsMasterwork = true
            };

            // Assert
            Assert.IsTrue(shield.IsMasterwork);
            Assert.AreEqual(45, shield.GetWeight());
            Assert.AreEqual(Wood.Hardness, shield.GetHardness());
            Assert.AreEqual(20, shield.GetHitPoints());
            Assert.AreEqual(180, shield.GetMarketPrice());
            Assert.AreEqual(9, shield.GetArmorCheckPenalty());
            Assert.AreEqual("Masterwork Tower Shield", shield.ToString());
        }
Exemplo n.º 9
0
 // Start is called before the first frame update
 void Start()
 {
     myTowerShieldScript = transform.parent.transform.parent.GetComponent <TowerShield>();
     armor = gameObject.GetComponent <Text>();
 }