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."); }
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; } }
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; } } }
// 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()); }
// Start is called before the first frame update void Start() { myTowerShieldScript = transform.parent.transform.parent.GetComponent <TowerShield>(); armor = gameObject.GetComponent <Text>(); }