public static void CreateAsset() { AttackDescription newAsset = ScriptableObject.CreateInstance <AttackDescription>(); AssetDatabase.CreateAsset(newAsset, Helper.GetSelectedPathOrFallback() + "/attackdesc.asset"); EditorUtility.FocusProjectWindow(); Selection.activeObject = newAsset; }
private static AttackDescription AssertAttackValue(Roguelike.Tiles.LivingEntities.Hero hero, Roguelike.Attributes.AttackKind kind, float expectedAttackValue) { AttackDescription ad = new AttackDescription(hero, false, kind); Assert.AreEqual(ad.CurrentTotal, expectedAttackValue); return(ad); }
public void WeaponPower() { var game = CreateGame(); var hero = game.Hero; //no weapon var ad = new AttackDescription(hero, false, Roguelike.Attributes.AttackKind.Melee); var meleeStart = ad.CurrentTotal; Assert.AreEqual(meleeStart, StartAttack); ad = new AttackDescription(hero, false, Roguelike.Attributes.AttackKind.PhysicalProjectile); Assert.AreEqual(ad.CurrentTotal, 0); //stone ActivateFightItem(FightItemKind.Stone, hero); ad = new AttackDescription(hero, false, Roguelike.Attributes.AttackKind.Melee); var meleeStart1 = ad.CurrentTotal; Assert.AreEqual(meleeStart1, meleeStart); var expectedStoneAttackValue = StartAttack / 2 + 1; AssertAttackValue(hero, Roguelike.Attributes.AttackKind.PhysicalProjectile, expectedStoneAttackValue); //ThrowingKnife ActivateFightItem(FightItemKind.ThrowingKnife, hero); var expectedThrowingKnifeAttackValue = StartAttack / 2 + 3; AssertAttackValue(hero, Roguelike.Attributes.AttackKind.PhysicalProjectile, expectedThrowingKnifeAttackValue); ////ExplosiveCocktail //ActivateFightItem(FightItemKind.ExplosiveCocktail, hero); //var expectedHunterTrapAttackValue = 4; //AssertAttackValue(hero, Roguelike.Attributes.AttackKind.PhysicalProjectile, expectedHunterTrapAttackValue); //arrow ActivateFightItem(FightItemKind.PlainArrow, hero); var wpn = GenerateEquipment <Weapon>("Bow"); Assert.True(SetHeroEquipment(wpn)); var expectedBowAttackValue = Props.FightItemBaseDamage + 1 + Props.BowBaseDamage; AssertAttackValue(hero, Roguelike.Attributes.AttackKind.PhysicalProjectile, expectedBowAttackValue); Assert.Greater(expectedBowAttackValue, expectedThrowingKnifeAttackValue); //bolt ActivateFightItem(FightItemKind.PlainBolt, hero); wpn = GenerateEquipment <Weapon>("Crossbow"); Assert.True(SetHeroEquipment(wpn)); var expectedCrossbowAttackValue = Props.FightItemBaseDamage + 2 + Props.CrossbowBaseDamage; AssertAttackValue(hero, Roguelike.Attributes.AttackKind.PhysicalProjectile, expectedCrossbowAttackValue); Assert.Greater(expectedCrossbowAttackValue, expectedBowAttackValue); }