Example #1
0
        public void TestExplosiveOnHero(FightItemKind fightItemKind)
        {
            var game = CreateGame();
            var en   = PlainEnemies.First();

            en.AddFightItem(fightItemKind);
            en.AddFightItem(fightItemKind);
            var hero        = game.GameManager.Hero;
            var beginHealth = hero.Stats.Health;

            var explosiveCocktail = en.GetFightItem(fightItemKind) as ProjectileFightItem;
            var dam = explosiveCocktail.Damage;

            PlaceCloseToHero(en);
            Assert.True(game.GameManager.ApplyAttackPolicy(en, hero, explosiveCocktail, null, (p) => { }));
            var lifeDiff = beginHealth - hero.Stats.Health;

            Assert.Greater(lifeDiff, 0);
            while (hero.LastingEffects.Any())
            {
                GotoNextHeroTurn();
            }

            beginHealth = hero.Stats.Health;
            Assert.True(en.SetLevel(5));
            explosiveCocktail = en.GetFightItem(fightItemKind) as ProjectileFightItem;
            //Assert.Greater(explosiveCocktail.Damage, dam);
            Assert.True(game.GameManager.ApplyAttackPolicy(en, hero, explosiveCocktail, null, (p) => { }));
            var lifeDiff1 = beginHealth - hero.Stats.Health;

            Assert.Greater(lifeDiff1, lifeDiff);
        }
Example #2
0
 public ProjectileFightItem AddFightItem(FightItemKind kind)
 {
     fightItems[kind] = new ProjectileFightItem(kind, this)
     {
         Count = RandHelper.GetRandomInt(2) + 1
     };
     return(fightItems[kind] as ProjectileFightItem);
 }
Example #3
0
        public FightItem GetFightItem(FightItemKind kind)
        {
            if (fightItems.ContainsKey(kind) && fightItems[kind].Count > 0)
            {
                return(fightItems[kind]);
            }

            return(null);
        }
Example #4
0
        public static AbilityKind GetAbilityKind(FightItemKind fik)
        {
            if (fi2Ab.ContainsKey(fik))
            {
                //var ab = ale.GetActiveAbility(fi2Ab[item.FightItemKind]);
                //if (ab != null)
                return(fi2Ab[fik]);
            }

            return(AbilityKind.Unset);
        }
Example #5
0
        private static ProjectileFightItem CreateFightItem(FightItemKind fik)
        {
            int max = 3;
            int add = 3;
            var fi  = new ProjectileFightItem(fik, null)
            {
            };

            if (fik == FightItemKind.PlainArrow || fik == FightItemKind.PlainBolt)
            {
                max = 6;
            }
            if (fik == FightItemKind.HunterTrap)
            {
                max = 1;
                add = 2;
            }

            fi.Count = RandHelper.GetRandomInt(max) + add;
            return(fi);
        }
Example #6
0
        public void TestBasicFightItemFactor(FightItemKind kind)
        {
            var game = CreateGame(true, 100);

            //take one which is active to make sure will have it's turn
            RevealAllEnemies(game);
            var enemy = PlainNormalEnemies.First();

            PrepareEnemyToBeBeaten(enemy);

            var hero = game.GameManager.Hero;

            var fi = ActivateFightItem(kind, hero);

            var damage1 = fi.Damage;

            IncreaseAbility(hero, fi, 1);

            var damage2 = fi.Damage;

            Assert.Greater(damage2, damage1);
            Assert.Less(damage2 / damage1, 1.6f);
        }
Example #7
0
        public void TestBasicFightItem(FightItemKind kind)
        {
            var game = CreateGame();

            //take one which is active to make sure will have it's turn
            RevealAllEnemies(game);
            var enemy = ChampionEnemies.Where(i => i.PowerKind == EnemyPowerKind.Champion).First();

            Assert.True(enemy.Revealed && enemy.Alive);
            enemy.Stats.SetNominal(EntityStatKind.Health, 100);
            var enemyBeginHealth = enemy.Stats.Health;
            var hero             = game.GameManager.Hero;

            var fi = ActivateFightItem(kind, hero);

            var damage1 = fi.Damage;

            Assert.Greater(damage1, 0);
            Assert.AreEqual(enemy.OnHitBy(fi), HitResult.Hit);
            var chempAfter1HitHealth = enemy.Stats.Health;

            Assert.Greater(enemyBeginHealth, chempAfter1HitHealth);
            var firstExplCoctailDamage = enemyBeginHealth - chempAfter1HitHealth;

            IncreaseAbility(hero, fi.AbilityKind);

            fi = ActivateFightItem(kind, hero);
            var damage2 = fi.Damage;

            Assert.Greater(damage2, damage1);
            enemy.OnHitBy(fi);
            GotoNextHeroTurn();//effect prolonged - make turn to see effect
            var chempAfter2HitHealth = enemy.Stats.Health;
            var secExplCoctailDamage = chempAfter1HitHealth - chempAfter2HitHealth;

            Assert.Greater(secExplCoctailDamage, firstExplCoctailDamage);
        }
Example #8
0
 public ProjectileFightItem SetActiveFightItem(FightItemKind kind)
 {
     this.ActiveFightItem = fightItems[kind];
     return(this.ActiveFightItem as ProjectileFightItem);
 }
Example #9
0
 private float GetFightItemFactor(bool primary, int level, FightItemKind kind)
 {
     //HACK GameManager.Instance.Hero.Abilities
     //return GameManager.Instance.Hero.Abilities.GetFightItem(kind).GetFactor(primary, level);
     return(0);
 }
Example #10
0
 public FightItem(FightItemKind kind)
 {
     this.FightItemKind = kind;
     this.LootKind      = LootKind.FightItem;
 }
Example #11
0
 public ProjectileFightItem(FightItemKind kind, LivingEntity caller = null) : base(kind)
 {
     Caller = caller;
 }
Example #12
0
        public void TestBasicFightItem(FightItemKind kind)
        {
            var game = CreateGame(true, 100);

            //take one which is active to make sure will have it's turn
            RevealAllEnemies(game);
            var enemy = PlainNormalEnemies.First();

            Assert.True(enemy.Revealed && enemy.Alive);
            PrepareEnemyToBeBeaten(enemy);

            var enemyBeginHealth = enemy.Stats.Health;
            var hero             = game.GameManager.Hero;

            var fi = ActivateFightItem(kind, hero);

            var damage1 = fi.Damage;

            if (kind != FightItemKind.WeightedNet)
            {
                Assert.Greater(damage1, 0);
            }
            //Assert.AreEqual(enemy.OnHitBy(fi), HitResult.Hit);

            Assert.True(UseFightItem(hero, enemy, hero.ActiveProjectileFightItem));

            if (kind != FightItemKind.WeightedNet)//TODO test range?
            {
                var chempAfter1HitHealth = enemy.Stats.Health;
                Assert.Greater(enemyBeginHealth, chempAfter1HitHealth);
                var firstDamageWithAblity = enemyBeginHealth - chempAfter1HitHealth;

                IncreaseAbility(hero, fi);

                fi = ActivateFightItem(kind, hero);
                var damage2 = fi.Damage;
                Assert.Greater(damage2, damage1);
                //Assert.Less(damage2/damage1, 1.6f);
                GotoNextHeroTurn();
                Assert.True(UseFightItem(hero, enemy, hero.ActiveProjectileFightItem));
                //enemy.OnHitBy(fi);
                GotoNextHeroTurn();//effect prolonged - make turn to see effect
                var chempAfter2HitHealth   = enemy.Stats.Health;
                var secondDamageWithAblity = chempAfter1HitHealth - chempAfter2HitHealth;
                Assert.Greater(secondDamageWithAblity, firstDamageWithAblity);
            }
            else
            {
                int counter = 0;
                while (true)
                {
                    var le = enemy.GetFirstLastingEffect(Roguelike.Effects.EffectType.WebTrap);
                    if (le == null)
                    {
                        break;
                    }

                    counter++;
                    Assert.AreEqual(le.Description, "Web Trap");
                    Assert.NotNull(le);
                    Assert.AreEqual(enemyBeginHealth, enemy.Stats.Health);
                    GotoNextHeroTurn();
                }

                Assert.Greater(counter, 1);
            }
        }
Example #13
0
 public IProjectile CreateProjectile(Vector2D pos, FightItemKind fik)
 {
     throw new System.NotImplementedException();
 }