//Hinzufügen aller Skills die ein Partymember bei einem gegebenen Level haben muss
        public static void AddSkillsToParty(PartyMember member)
        {
            var skillCadreDataSection =
                ConfigurationManager.GetSection("SkillCadre") as SkillCadreDataSection;
            var partySkillCadreDataSection =
                ConfigurationManager.GetSection("PartySkillCadre") as PartySkillCadreDataSection;

            CharElement character;

            if (member.GetType() == typeof (Player))
            {
                Player player = member as Player;
                character =
                    partySkillCadreDataSection.Chars.Cast<CharElement>()
                        .SingleOrDefault(
                            concreteChar => concreteChar.Name.ToLower() == player.HiddenName.ToLower());

                player.Skills.RemoveRange(0, player.Skills.Count);
            }
            else
            {
                character =
                    partySkillCadreDataSection.Chars.Cast<CharElement>()
                        .SingleOrDefault(
                            concreteChar => concreteChar.Name.ToLower() == member.Name.ToLower());
            }

            List<IEffect> skillToAddEffects;
            foreach ( CharSkillElement charSkill in character.CharSkills)
            {
                //Überprufen ob der Charakter das erforderliche Level für den Skills besitzt
                //und ob der Charakter diesen Skill bereits besitzt

                    var skillToAdd =
                     skillCadreDataSection.Skills.Cast<SkillElement>()
                         .SingleOrDefault(
                             cadreSkill => cadreSkill.Name == charSkill.Name);

                if (member.Skills.All(Skill => Skill.Name != charSkill.Name) &&
                    member.Level >= Convert.ToInt32(skillToAdd.Level))
                {
                    skillToAddEffects = new List<IEffect>();
                    foreach (EffectElement effect in skillToAdd.Effects)
                    {
                        skillToAddEffects.Add(GetEffectFactory.GetEffect(effect.Name));
                    }

                    member.AddSkill(new Skill(skillToAdd.Name, LoadSkillHelperClass.GetManaCosts(Convert.ToInt32(skillToAdd.Level)), skillToAdd.Target, skillToAdd.AreaOfEffect, skillToAdd.Description, skillToAddEffects));
                }
            }
        }
Esempio n. 2
0
        public void BasicEffectsTests()
        {
            var enemy = new Enemy
            (
                "Enemy",
                Classes.Coloss,
                1,
                "",
                "",
                "",
                false
            );

            var partymember = new PartyMember
            (
                "Char",
                Classes.DamageDealer,
                1,
                100,
                "",
                "",
                ""
            );

            enemy.Life = enemy.FightVitality;
            partymember.Life = partymember.FightVitality;

            //Crit
            new CriticalDamage().Execute(partymember,new List<Character>() {enemy});
            Assert.IsTrue(enemy.FightVitality > enemy.Life);

            //DMG
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();

            new Damage().Execute(partymember, new List<Character>() { enemy });
            Assert.IsTrue(enemy.FightVitality > enemy.Life);

            //MagicalDMG
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();

            new MagicalDamage().Execute(partymember, new List<Character>() {enemy});
            Assert.IsTrue(enemy.FightVitality > enemy.Life);

            //Drain
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();
            partymember.Life = partymember.FightVitality / 2;

            int oldLife = partymember.Life;

            new Drain().Execute(partymember,new List<Character>() {enemy});
            Assert.IsTrue(enemy.FightVitality > enemy.Life);
            Assert.IsTrue(oldLife < partymember.Life);

            //Heal
            partymember = this.ResetPartyMember();
            partymember.Life = partymember.FightVitality / 2;

            oldLife = partymember.Life;

            new Heal().Execute(partymember, new List<Character>() { partymember });
            Assert.IsTrue(oldLife < partymember.Life);

            //AttributesHelperClass Effects
            partymember = this.ResetPartyMember();

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightVitality).Execute(partymember, new List<Character>() {partymember});
            Assert.IsTrue(partymember.Vitality < partymember.FightVitality);

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightManaPool).Execute(partymember, new List<Character>() { partymember });
            Assert.IsTrue(partymember.Manapool < partymember.FightManaPool);

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightStrength).Execute(partymember, new List<Character>() { partymember });
            Assert.IsTrue(partymember.Strength < partymember.FightStrength);

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightMagic).Execute(partymember, new List<Character>() { partymember });
            Assert.IsTrue(partymember.Magic < partymember.FightMagic);

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightDefense).Execute(partymember, new List<Character>() { partymember });
            Assert.IsTrue(partymember.Defense < partymember.FightDefense);

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightResistance).Execute(partymember, new List<Character>() { partymember });
            Assert.IsTrue(partymember.Resistance < partymember.FightResistance);

            new AttributesChangeEffect(AttributeActions.Add, Attributes.FightLuck).Execute(partymember, new List<Character>() { partymember });
            Assert.AreNotEqual(partymember.Luck, partymember.FightLuck);
        }
Esempio n. 3
0
        public void StatusEffectsTests()
        {
            var enemy = new Enemy
            (
                "Enemy",
                Classes.Coloss,
                1,
                "",
                "",
                "",
                false
            );

            var partymember = new PartyMember
            (
                "Char",
                Classes.DamageDealer,
                1,
                100,
                "",
                "",
                ""
            );

            enemy.Life = enemy.FightVitality;
            partymember.Life = enemy.FightVitality;

            int duration;

            //bleed
            new Bleed().Execute(partymember, new List<Character>() {enemy});
            foreach (var effect in enemy.Statuseffects)
            {
                duration = effect.Duration;
                enemy.Life -= effect.ExecuteStatus();
                Assert.IsTrue(effect.Duration < duration);
            }
            Assert.IsTrue(enemy.FightVitality > enemy.Life);

            //burn
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();

            new Burn().Execute(partymember, new List<Character>() { enemy });
            foreach (var effect in enemy.Statuseffects)
            {
                duration = effect.Duration;
                enemy.Life -= effect.ExecuteStatus();
                Assert.IsTrue(effect.Duration < duration);
            }
            Assert.IsTrue(enemy.FightVitality > enemy.Life);

            //poisoned
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();

            new Poison().Execute(partymember, new List<Character>() { enemy });
            foreach (var effect in enemy.Statuseffects)
            {
                enemy.Life -= effect.ExecuteStatus();
            }
            Assert.IsTrue(enemy.FightVitality > enemy.Life);

            //mindblown
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();

            new Mindblow().Execute(partymember,new List<Character>() {enemy});
            foreach (var effect in enemy.Statuseffects)
            {
                duration = effect.Duration;
                effect.ExecuteStatus();
                Assert.IsTrue(effect.Duration < duration);
            }

            //blessing
            partymember = this.ResetPartyMember();
            new Bless().Execute(partymember,new List<Character>() {partymember});
            partymember.Life = 0;
            if (partymember.Statuseffects.All(effect => effect.GetType() == typeof (Blessing)))
            {
                partymember.Life = 1;
            }
            Assert.IsTrue(partymember.Life == 1);

            foreach (var effect in partymember.Statuseffects)
            {
                duration = effect.Duration;
                effect.ExecuteStatus();
                Assert.IsTrue(effect.Duration < duration);
            }

            //halo
            enemy = this.ResetEnemy();
            partymember = this.ResetPartyMember();
            partymember.Life = partymember.FightVitality/2;

            int oldLife;
            oldLife = partymember.Life;

            new Halo().Execute(partymember, new List<Character>() {partymember});
            foreach (var effect in partymember.Statuseffects)
            {
                duration = effect.Duration;
                partymember.Life -= effect.ExecuteStatus();
                Assert.IsTrue(effect.Duration < duration);
            }
            Assert.IsTrue(partymember.Life > oldLife);
        }
Esempio n. 4
0
        public PartyMember ResetPartyMember()
        {
            var partymember = new PartyMember
            (
                "Char",
                Classes.DamageDealer,
                1,
                100,
                "",
                "",
                ""
            );

            partymember.Life = partymember.FightVitality;

            return partymember;
        }
        static void InitializeData()
        {
            Jos = new Player("Jos", Classes.Warrior, 1, 0, LoadContentHelper.JosStandardAnimation, LoadContentHelper.JosAttackAnimation, LoadContentHelper.JosDeathAnimation);
            Caspar = new PartyMember("Caspar", Classes.Harasser, 3, 0, LoadContentHelper.CasparStandardAnimation, LoadContentHelper.CasparAttackAnimation, LoadContentHelper.CasparDeathAnimation);
            Kaiser = new PartyMember("Kaiser", Classes.Coloss, 5, 0, LoadContentHelper.KaiserStandardAnimation, LoadContentHelper.KaiserAttackAnimation, LoadContentHelper.KaiserDeathAnimation);
            Nick = new PartyMember("Nick", Classes.Coloss, 1, 0, LoadContentHelper.NickStandardAnimation, LoadContentHelper.NickAttackAnimation, LoadContentHelper.NickDeathAnimation);
            Seitz = new PartyMember("Seitz", Classes.Warrior, 4, 0, LoadContentHelper.SeitzStandardAnimation, LoadContentHelper.SeitzAttackAnimation, LoadContentHelper.SeitzDeathAnimation);
            Seyfrid = new PartyMember("Seyfrid", Classes.Harasser, 4, 0, LoadContentHelper.SeyfridStandardAnimation, LoadContentHelper.SeyfridAttackAnimation, LoadContentHelper.SeyfridDeathAnimation);

            Anna = new PartyMember("Anna", Classes.DamageDealer, 6, 0, LoadContentHelper.AnnaStandardAnimation, LoadContentHelper.AnnaAttackAnimation, LoadContentHelper.AnnaDeathAnimation);
            Elena = new PartyMember("Elena", Classes.DamageDealer, 1, 0, LoadContentHelper.ElenaStandardAnimation, LoadContentHelper.ElenaAttackAnimation, LoadContentHelper.ElenaDeathAnimation);
            Ells = new PartyMember("Ells", Classes.Patron, 3, 0, LoadContentHelper.EllsStandardAnimation, LoadContentHelper.EllsAttackAnimation, LoadContentHelper.EllsDeathAnimation);
            Genefe = new PartyMember("Genefe", Classes.Patron, 5, 0, LoadContentHelper.GenefeStandardAnimation, LoadContentHelper.GenefeAttackAnimation, LoadContentHelper.GenefeDeathAnimation);
            Marlein = new PartyMember("Marlein", Classes.Warrior, 7, 0, LoadContentHelper.MarleinStandardAnimation, LoadContentHelper.MarleinAttackAnimation, LoadContentHelper.MarleinDeathAnimation);

            AllCharacters.Add(Jos);
            AllCharacters.Add(Caspar);
            AllCharacters.Add(Kaiser);
            AllCharacters.Add(Nick);
            AllCharacters.Add(Seitz);
            AllCharacters.Add(Seyfrid);

            AllCharacters.Add(Anna);
            AllCharacters.Add(Elena);
            AllCharacters.Add(Ells);
            AllCharacters.Add(Genefe);
            AllCharacters.Add(Marlein);

            EnemyAnna = new Enemy("Anna", Classes.Coloss, 8, null, EnemyAnnaStandardAnimation, EnemyAnnaAttackAnimation, EnemyAnnaDeathAnimation, true);
            EnemyElena = new Enemy("Elena", Classes.Coloss, 0, null, EnemyElenaStandardAnimation, EnemyElenaAttackAnimation, EnemyElenaDeathAnimation, true);
            EnemyElls = new Enemy("Ells", Classes.Coloss, 4, null, EnemyEllsStandardAnimation, EnemyEllsAttackAnimation, EnemyEllsDeathAnimation, true);
            EnemyIrene = new Enemy("Irene", Classes.Coloss, 10, null, EnemyIreneStandardAnimation, EnemyIreneAttackAnimation, EnemyIreneDeathAnimation, true);
            EnemyKaiser = new Enemy("Kaiser", Classes.Coloss, 7, null, EnemyKaiserStandardAnimation, EnemyKaiserAttackAnimation, EnemyKaiserDeathAnimation, true);
            EnemyMarlein = new Enemy("Marlein", Classes.Coloss, 8, null, EnemyMarleinStandardAnimation, EnemyMarleinAttackAnimation, EnemyMarleinDeathAnimation, true);
            EnemyMichael = new Enemy("Michael", Classes.Coloss, 10, null, EnemyMichaelStandardAnimation, EnemyMichaelAttackAnimation, EnemyMichaelDeathAnimation, true);
            EnemyReinhardt = new Enemy("Reinhardt", Classes.Coloss, 12, null, EnemyReinhardtStandardAnimation, EnemyReinhardtAttackAnimation, EnemyReinhardtDeathAnimation, true);

            Ttheroth_Stufe_1 = new Enemy("Ttherhot'h Stufe 1", Classes.Coloss, 12, TtherhothStufe1, null, null, null, false);
            Ttheroth_Stufe_2 = new Enemy("Ttherhot'h Stufe 2", Classes.Coloss, 13, TtherhothStufe2, null, null, null, false);
            Ttheroth_Stufe_3 = new Enemy("Ttherhot'h Stufe 3", Classes.Coloss, 14, TtherhothStufe3, null, null, null, false);
            Ttheroth_Stufe_4 = new Enemy("Ttherhot'h Stufe 4", Classes.Coloss, 15, TtherhothStufe4, null, null, null, false);

            Der_Engel = new Enemy("Der Engel", Classes.Coloss, 4, DerEngel, null, null, null, false);
            Der_Geläuterte = new Enemy("Der Geläuterte", Classes.Coloss, 4, DerGeläuterte, null, null, null, false);
            EnemyDeath = new Enemy("Tod", Classes.Coloss, 4, Death, null, null, null, false);
            EnemyMutant = new Enemy("Mutant", Classes.Coloss, 4, Mutant, null, null, null, false);
            Succubus = new Enemy("Succubus", Classes.Coloss, 4, null, SuccubusStandardAnimation, SuccubusAttackAnimation, SuccubusDeathAnimation, false);

            Aggressive_Demon1 = new Enemy("Aggressiver Dämon 1", Classes.Coloss, 0, null, AggresiveDemonStandardAnimation, AggresiveDemonAttackAnimation, AggresiveDemonDeathAnimation, true);
            Aggressive_Demon2 = new Enemy("Aggressiver Dämon 2", Classes.Coloss, 0, null, AggresiveDemonStandardAnimation2, AggresiveDemonAttackAnimation2, AggresiveDemonDeathAnimation2, true);
            Aggressive_Demon3 = new Enemy("Aggressiver Dämon 3", Classes.Coloss, 0, null, AggresiveDemonStandardAnimation3, AggresiveDemonAttackAnimation3, AggresiveDemonDeathAnimation3, true);
            Aggressive_Demon4 = new Enemy("Aggressiver Dämon 4", Classes.Coloss, 0, null, AggresiveDemonStandardAnimation4, AggresiveDemonAttackAnimation4, AggresiveDemonDeathAnimation4, true);

            Demon_Retributer1 = new Enemy("Dämonen Verheerer 1", Classes.Coloss, 0, null, DemonRetributerStandardAnimation, DemonRetributerAttackAnimation, DemonRetributerDeathAnimation, true);
            Demon_Retributer2 = new Enemy("Dämonen Verheerer 2", Classes.Coloss, 0, null, DemonRetributerStandardAnimation2, DemonRetributerAttackAnimation2, DemonRetributerDeathAnimation2, true);
            Demon_Retributer3 = new Enemy("Dämonen Verheerer 3", Classes.Coloss, 0, null, DemonRetributerStandardAnimation3, DemonRetributerAttackAnimation3, DemonRetributerDeathAnimation3, true);
            Demon_Retributer4 = new Enemy("Dämonen Verheerer 4", Classes.Coloss, 0, null, DemonRetributerStandardAnimation4, DemonRetributerAttackAnimation4, DemonRetributerDeathAnimation4, true);

            Demon_Soldier1 = new Enemy("Dämonen Soldat 1", Classes.Coloss, 2, null, DemonSoldierStandardAnimation, DemonSoldierAttackAnimation, DemonSoldierDeathAnimation, true);
            Demon_Soldier2 = new Enemy("Dämonen Soldat 2", Classes.Coloss, 2, null, DemonSoldierStandardAnimation2, DemonSoldierAttackAnimation2, DemonSoldierDeathAnimation2, true);
            Demon_Soldier3 = new Enemy("Dämonen Soldat 3", Classes.Coloss, 0, null, DemonSoldierStandardAnimation3, DemonSoldierAttackAnimation3, DemonSoldierDeathAnimation3, true);
            Demon_Soldier4 = new Enemy("Dämonen Soldat 4", Classes.Coloss, 0, null, DemonSoldierStandardAnimation4, DemonSoldierAttackAnimation4, DemonSoldierDeathAnimation4, true);

            Falken_Gardist1 = new Enemy("Falken Gardist 1", Classes.Coloss, 0, null, FalkenGardistStandardAnimation, FalkenGardistAttackAnimation, FalkenGardistDeathAnimation, true);
            Falken_Gardist2 = new Enemy("Falken Gardist 2", Classes.Coloss, 0, null, FalkenGardistStandardAnimation2, FalkenGardistAttackAnimation2, FalkenGardistDeathAnimation2, true);
            Falken_Gardist3 = new Enemy("Falken Gardist 3", Classes.Coloss, 0, null, FalkenGardistStandardAnimation3, FalkenGardistAttackAnimation3, FalkenGardistDeathAnimation3, true);
            Falken_Gardist4 = new Enemy("Falken Gardist 4", Classes.Coloss, 0, null, FalkenGardistStandardAnimation4, FalkenGardistAttackAnimation4, FalkenGardistDeathAnimation4, true);

            Falken_Ritter1 = new Enemy("Falken Ritter 1", Classes.Coloss, 0, null, FalkenRitterStandardAnimation, FalkenRitterAttackAnimation, FalkenRitterDeathAnimation, true);
            Falken_Ritter2 = new Enemy("Falken Ritter 2", Classes.Coloss, 0, null, FalkenRitterStandardAnimation2, FalkenRitterAttackAnimation2, FalkenRitterDeathAnimation2, true);
            Falken_Ritter3 = new Enemy("Falken Ritter 3", Classes.Coloss, 0, null, FalkenRitterStandardAnimation3, FalkenRitterAttackAnimation3, FalkenRitterDeathAnimation3, true);
            Falken_Ritter4 = new Enemy("Falken Ritter 4", Classes.Coloss, 0, null, FalkenRitterStandardAnimation4, FalkenRitterAttackAnimation4, FalkenRitterDeathAnimation4, true);

            Freier_Falke1 = new Enemy("Freier Falke 1", Classes.Coloss, 0, null, FreierFalkeStandardAnimation, FreierFalkeAttackAnimation, FreierFalkeDeathAnimation, true);
            Freier_Falke2 = new Enemy("Freier Falke 2", Classes.Coloss, 0, null, FreierFalkeStandardAnimation2, FreierFalkeAttackAnimation2, FreierFalkeDeathAnimation2, true);
            Freier_Falke3 = new Enemy("Freier Falke 3", Classes.Coloss, 0, null, FreierFalkeStandardAnimation3, FreierFalkeAttackAnimation3, FreierFalkeDeathAnimation3, true);
            Freier_Falke4 = new Enemy("Freier Falke 4", Classes.Coloss, 0, null, FreierFalkeStandardAnimation4, FreierFalkeAttackAnimation4, FreierFalkeDeathAnimation4, true);

            Legenden_Wächter1 = new Enemy("Legenden Wächter 1", Classes.Coloss, 0, null, LegendenWächterStandardAnimation, LegendenWächterAttackAnimation, LegendenWächterDeathAnimation, true);
            Legenden_Wächter2 = new Enemy("Legenden Wächter 2", Classes.Coloss, 0, null, LegendenWächterStandardAnimation2, LegendenWächterAttackAnimation2, LegendenWächterDeathAnimation2, true);
            Legenden_Wächter3 = new Enemy("Legenden Wächter 3", Classes.Coloss, 0, null, LegendenWächterStandardAnimation3, LegendenWächterAttackAnimation3, LegendenWächterDeathAnimation3, true);
            Legenden_Wächter4 = new Enemy("Legenden Wächter 4", Classes.Coloss, 0, null, LegendenWächterStandardAnimation4, LegendenWächterAttackAnimation4, LegendenWächterDeathAnimation4, true);

            Ritter1 = new Enemy("Ritter 1", Classes.Coloss, 0, null, RitterStandardAnimation, RitterAttackAnimation, RitterDeathAnimation, true);
            Ritter2 = new Enemy("Ritter 2", Classes.Coloss, 0, null, RitterStandardAnimation2, RitterAttackAnimation2, RitterDeathAnimation2, true);
            Ritter3 = new Enemy("Ritter 3", Classes.Coloss, 0, null, RitterStandardAnimation3, RitterAttackAnimation3, RitterDeathAnimation3, true);
            Ritter4 = new Enemy("Ritter 4", Classes.Coloss, 0, null, RitterStandardAnimation4, RitterAttackAnimation4, RitterDeathAnimation4, true);

            Söldner1 = new Enemy("Söldner 1", Classes.Coloss, 0, null, SöldnerStandardAnimation, SöldnerAttackAnimation, SöldnerDeathAnimation, true);
            Söldner2 = new Enemy("Söldner 2", Classes.Coloss, 0, null, SöldnerStandardAnimation2, SöldnerAttackAnimation2, SöldnerDeathAnimation2, true);
            Söldner3 = new Enemy("Söldner 3", Classes.Coloss, 0, null, SöldnerStandardAnimation3, SöldnerAttackAnimation3, SöldnerDeathAnimation3, true);
            Söldner4 = new Enemy("Söldner 4", Classes.Coloss, 0, null, SöldnerStandardAnimation4, SöldnerAttackAnimation4, SöldnerDeathAnimation4, true);

            Wache1 = new Enemy("Wache 1", Classes.Coloss, 0, null, WacheStandardAnimation, WacheAttackAnimation, WacheDeathAnimation, true);
            Wache2 = new Enemy("Wache 2", Classes.Coloss, 0, null, WacheStandardAnimation2, WacheAttackAnimation2, WacheDeathAnimation2, true);
            Wache3 = new Enemy("Wache 3", Classes.Coloss, 0, null, WacheStandardAnimation3, WacheAttackAnimation3, WacheDeathAnimation3, true);
            Wache4 = new Enemy("Wache 4", Classes.Coloss, 0, null, WacheStandardAnimation4, WacheAttackAnimation4, WacheDeathAnimation4, true);

            AllEnemies.Add(EnemyAnna);
            AllEnemies.Add(EnemyElena);
            AllEnemies.Add(EnemyElls);
            AllEnemies.Add(EnemyIrene);
            AllEnemies.Add(EnemyKaiser);
            AllEnemies.Add(EnemyMarlein);
            AllEnemies.Add(EnemyMichael);
            AllEnemies.Add(EnemyReinhardt);
            AllEnemies.Add(Succubus);

            AllEnemies.Add(Der_Engel);
            AllEnemies.Add(Der_Geläuterte);
            AllEnemies.Add(EnemyDeath);
            AllEnemies.Add(EnemyMutant);

            AllEnemies.Add(Ttheroth_Stufe_1);
            AllEnemies.Add(Ttheroth_Stufe_2);
            AllEnemies.Add(Ttheroth_Stufe_3);
            AllEnemies.Add(Ttheroth_Stufe_4);

            AllEnemies.Add(Aggressive_Demon1);
            AllEnemies.Add(Aggressive_Demon2);
            AllEnemies.Add(Aggressive_Demon3);
            AllEnemies.Add(Aggressive_Demon4);

            AllEnemies.Add(Demon_Retributer1);
            AllEnemies.Add(Demon_Retributer2);
            AllEnemies.Add(Demon_Retributer3);
            AllEnemies.Add(Demon_Retributer4);

            AllEnemies.Add(Demon_Soldier1);
            AllEnemies.Add(Demon_Soldier2);
            AllEnemies.Add(Demon_Soldier3);
            AllEnemies.Add(Demon_Soldier4);

            AllEnemies.Add(Falken_Gardist1);
            AllEnemies.Add(Falken_Gardist2);
            AllEnemies.Add(Falken_Gardist3);
            AllEnemies.Add(Falken_Gardist4);

            AllEnemies.Add(Falken_Ritter1);
            AllEnemies.Add(Falken_Ritter2);
            AllEnemies.Add(Falken_Ritter3);
            AllEnemies.Add(Falken_Ritter4);

            AllEnemies.Add(Freier_Falke1);
            AllEnemies.Add(Freier_Falke2);
            AllEnemies.Add(Freier_Falke3);
            AllEnemies.Add(Freier_Falke4);

            AllEnemies.Add(Legenden_Wächter1);
            AllEnemies.Add(Legenden_Wächter2);
            AllEnemies.Add(Legenden_Wächter3);
            AllEnemies.Add(Legenden_Wächter4);

            AllEnemies.Add(Ritter1);
            AllEnemies.Add(Ritter2);
            AllEnemies.Add(Ritter3);
            AllEnemies.Add(Ritter4);

            AllEnemies.Add(Söldner1);
            AllEnemies.Add(Söldner2);
            AllEnemies.Add(Söldner3);
            AllEnemies.Add(Söldner4);

            AllEnemies.Add(Wache1);
            AllEnemies.Add(Wache2);
            AllEnemies.Add(Wache3);
            AllEnemies.Add(Wache4);
        }
Esempio n. 6
0
        public void CharacterInitializeTests()
        {
            var character = new Character
                (
                    "Char",
                    Classes.Warrior,
                    1,
                    "",
                    "",
                    ""
                );

            var enemy = new Enemy
                (
                    "Enemy",
                    Classes.Coloss,
                    1,
                    "",
                    "",
                    "",
                    false
                );

            var partymember = new PartyMember
                (
                    "Char",
                    Classes.DamageDealer,
                    1,
                    100,
                    "",
                    "",
                    ""
                );

            var player = new Player
            (
                "Char",
                Classes.Patron,
                1,
                100,
                "",
                "",
                ""
            );

            List<Character> Chars = new List<Character>() {player, enemy, character, partymember};

            foreach (var Char in Chars)
            {
                if (Char.GetType() == (typeof (Player)))
                {
                    Assert.IsTrue(true);
                }
                if (Char.GetType() == (typeof(Enemy)))
                {
                    Assert.IsTrue(true);
                }
                if (Char.GetType() == (typeof(Character)))
                {
                    Assert.IsTrue(true);
                }
                if (Char.GetType() == (typeof(PartyMember)))
                {
                    Assert.IsTrue(true);
                }
                else
                {
                    Assert.IsFalse(false);
                }
            }

            Assert.IsNotNull(Chars);
        }
Esempio n. 7
0
        //Initialisiert sämtliche Daten die dieses Évent benötigt und holt sich die texturen und charactere aus dem loadContentHelper
        public void InitializeData()
        {
            StaticEnemies = new List<GUIElement>();
            int groupCount = 0;
            int enemyCount = 0;

            //Jeder Character erhält seine Initialisierung. Die AttackAnimations werden auf Inaktiv gesetzt,
            //Die Positio der Charactere wird festgelegt, sämtliche Icons die ein Character benötigt werden geladen
            foreach (PartyMember partyMember in this.fightCadre)
            {
                if (groupCount == 0)
                {
                    partyMember.AttackAnimation.active = false;
                    partyMember.Position = characterPosition_1;
                    this.fightCadre.ElementAt<Character>(0).LoadContent(partyMember.StandardAnimation, partyMember.Position);
                    partyMember1 = partyMember;
                    BleedIconCharacter1 = LoadContentHelper.BleedIcon;
                    BlessedIconCharacter1 = LoadContentHelper.BlessedIcon;
                    BurnedIconCharacter1 = LoadContentHelper.BurnIcon;
                    HasHaloIconCharacter1 = LoadContentHelper.HaloIcon;
                    MindblownIconCharacter1 = LoadContentHelper.MindblownIcon;
                    PoisenedIconCharacter1 = LoadContentHelper.PoisenIcon;
                    BleedIconCharacter1.PositionX = (int)partyMember1.Position.X + 25;
                    BleedIconCharacter1.PositionY = (int)partyMember1.Position.Y;
                    BlessedIconCharacter1.PositionX = (int)partyMember1.Position.X + 25;
                    BlessedIconCharacter1.PositionY = (int)partyMember1.Position.Y;
                    BurnedIconCharacter1.PositionX = (int)partyMember1.Position.X + 25;
                    BurnedIconCharacter1.PositionY = (int)partyMember1.Position.Y;
                    HasHaloIconCharacter1.PositionX = (int)partyMember1.Position.X + 25;
                    HasHaloIconCharacter1.PositionY = (int)partyMember1.Position.Y;
                    MindblownIconCharacter1.PositionX = (int)partyMember1.Position.X + 25;
                    MindblownIconCharacter1.PositionY = (int)partyMember1.Position.Y;
                    PoisenedIconCharacter1.PositionX = (int)partyMember1.Position.X + 25;
                    PoisenedIconCharacter1.PositionY = (int)partyMember1.Position.Y;
                }

                if (groupCount == 1)
                {
                    partyMember.AttackAnimation.active = false;
                    partyMember.Position = characterPosition_2;
                    this.fightCadre.ElementAt<Character>(1).LoadContent(partyMember.StandardAnimation, partyMember.Position);
                    partyMember2 = partyMember;
                    BleedIconCharacter2 = LoadContentHelper.BleedIcon2;
                    BlessedIconCharacter2 = LoadContentHelper.BlessedIcon2;
                    BurnedIconCharacter2 = LoadContentHelper.BurnIcon2;
                    HasHaloIconCharacter2 = LoadContentHelper.HaloIcon2;
                    MindblownIconCharacter2 = LoadContentHelper.MindblownIcon2;
                    PoisenedIconCharacter2 = LoadContentHelper.PoisenIcon2;
                    BleedIconCharacter2.PositionX = (int)partyMember2.Position.X + 25;
                    BleedIconCharacter2.PositionY = (int)partyMember2.Position.Y;
                    BlessedIconCharacter2.PositionX = (int)partyMember2.Position.X + 25;
                    BlessedIconCharacter2.PositionY = (int)partyMember2.Position.Y;
                    BurnedIconCharacter2.PositionX = (int)partyMember2.Position.X + 25;
                    BurnedIconCharacter2.PositionY = (int)partyMember2.Position.Y;
                    HasHaloIconCharacter2.PositionX = (int)partyMember2.Position.X + 25;
                    HasHaloIconCharacter2.PositionY = (int)partyMember2.Position.Y;
                    MindblownIconCharacter2.PositionX = (int)partyMember2.Position.X + 25;
                    MindblownIconCharacter2.PositionY = (int)partyMember2.Position.Y;
                    PoisenedIconCharacter2.PositionX = (int)partyMember2.Position.X + 25;
                    PoisenedIconCharacter2.PositionY = (int)partyMember2.Position.Y;
                }

                if (groupCount == 2)
                {
                    partyMember.AttackAnimation.active = false;
                    partyMember.Position = characterPosition_3;
                    this.fightCadre.ElementAt<Character>(2).LoadContent(partyMember.StandardAnimation, partyMember.Position);
                    partyMember3 = partyMember;
                    BleedIconCharacter3 = LoadContentHelper.BleedIcon3;
                    BlessedIconCharacter3 = LoadContentHelper.BlessedIcon3;
                    BurnedIconCharacter3 = LoadContentHelper.BurnIcon3;
                    HasHaloIconCharacter3 = LoadContentHelper.HaloIcon3;
                    MindblownIconCharacter3 = LoadContentHelper.MindblownIcon3;
                    PoisenedIconCharacter3 = LoadContentHelper.PoisenIcon3;
                    BleedIconCharacter3.PositionX = (int)partyMember3.Position.X + 25;
                    BleedIconCharacter3.PositionY = (int)partyMember3.Position.Y;
                    BlessedIconCharacter3.PositionX = (int)partyMember3.Position.X + 25;
                    BlessedIconCharacter3.PositionY = (int)partyMember3.Position.Y;
                    BurnedIconCharacter3.PositionX = (int)partyMember3.Position.X + 25;
                    BurnedIconCharacter3.PositionY = (int)partyMember3.Position.Y;
                    HasHaloIconCharacter3.PositionX = (int)partyMember3.Position.X + 25;
                    HasHaloIconCharacter3.PositionY = (int)partyMember3.Position.Y;
                    MindblownIconCharacter3.PositionX = (int)partyMember3.Position.X + 25;
                    MindblownIconCharacter3.PositionY = (int)partyMember3.Position.Y;
                    PoisenedIconCharacter3.PositionX = (int)partyMember3.Position.X + 25;
                    PoisenedIconCharacter3.PositionY = (int)partyMember3.Position.Y;
                }

                if (groupCount == 3)
                {
                    partyMember.AttackAnimation.active = false;
                    partyMember.Position = characterPosition_4;
                    this.fightCadre.ElementAt<Character>(3).LoadContent(partyMember.StandardAnimation, partyMember.Position);
                    partyMember4 = partyMember;
                    BleedIconCharacter4 = LoadContentHelper.BleedIcon4;
                    BlessedIconCharacter4 = LoadContentHelper.BlessedIcon4;
                    BurnedIconCharacter4 = LoadContentHelper.BurnIcon4;
                    HasHaloIconCharacter4 = LoadContentHelper.HaloIcon4;
                    MindblownIconCharacter4 = LoadContentHelper.MindblownIcon4;
                    PoisenedIconCharacter4 = LoadContentHelper.PoisenIcon4;
                    BleedIconCharacter4.PositionX = (int)partyMember4.Position.X + 25;
                    BleedIconCharacter4.PositionY = (int)partyMember4.Position.Y;
                    BlessedIconCharacter4.PositionX = (int)partyMember4.Position.X + 25;
                    BlessedIconCharacter4.PositionY = (int)partyMember4.Position.Y;
                    BurnedIconCharacter4.PositionX = (int)partyMember4.Position.X + 25;
                    BurnedIconCharacter4.PositionY = (int)partyMember4.Position.Y;
                    HasHaloIconCharacter4.PositionX = (int)partyMember4.Position.X + 25;
                    HasHaloIconCharacter4.PositionY = (int)partyMember4.Position.Y;
                    MindblownIconCharacter4.PositionX = (int)partyMember4.Position.X + 25;
                    MindblownIconCharacter4.PositionY = (int)partyMember4.Position.Y;
                    PoisenedIconCharacter4.PositionX = (int)partyMember4.Position.X + 25;
                    PoisenedIconCharacter4.PositionY = (int)partyMember4.Position.Y;
                }

                groupCount++;
            }

            foreach (Enemy enemy in this.Enemies)
            {
                // Sobald der Gegner eine Animation bestizt wird dies erkannt und die Animationen werden geladen
                if (enemy.isAnimated)
                {
                    if (enemyCount == 0)
                    {
                        enemy.AttackAnimation.active = false;
                        enemy.Position = enemyPosition_1;
                        enemy.LoadContent(enemy.StandardAnimation, enemy.Position);
                        enemy1 = enemy;
                        BleedIconEnemy1 = LoadContentHelper.BleedIcon5;
                        BlessedIconEnemy1 = LoadContentHelper.BlessedIcon5;
                        BurnedIconEnemy1 = LoadContentHelper.BurnIcon5;
                        HasHaloIconEnemy1 = LoadContentHelper.HaloIcon5;
                        MindblownIconEnemy1 = LoadContentHelper.MindblownIcon5;
                        PoisenedIconEnemy1 = LoadContentHelper.PoisenIcon5;
                        BleedIconEnemy1.PositionX = (int)enemy1.Position.X - 65;
                        BleedIconEnemy1.PositionY = (int)enemy1.Position.Y;
                        BlessedIconEnemy1.PositionX = (int)enemy1.Position.X - 65;
                        BlessedIconEnemy1.PositionY = (int)enemy1.Position.Y;
                        BurnedIconEnemy1.PositionX = (int)enemy1.Position.X - 65;
                        BurnedIconEnemy1.PositionY = (int)enemy1.Position.Y;
                        HasHaloIconEnemy1.PositionX = (int)enemy1.Position.X - 65;
                        HasHaloIconEnemy1.PositionY = (int)enemy1.Position.Y;
                        MindblownIconEnemy1.PositionX = (int)enemy1.Position.X - 65;
                        MindblownIconEnemy1.PositionY = (int)enemy1.Position.Y;
                        PoisenedIconEnemy1.PositionX = (int)enemy1.Position.X - 65;
                        PoisenedIconEnemy1.PositionY = (int)enemy1.Position.Y;
                    }
                    if (enemyCount == 1)
                    {
                        enemy.AttackAnimation.active = false;
                        enemy.Position = enemyPosition_2;
                        this.Enemies.ElementAt<Character>(1).LoadContent(enemy.StandardAnimation, enemy.Position);
                        enemy2 = enemy;
                        BleedIconEnemy2 = LoadContentHelper.BleedIcon6;
                        BlessedIconEnemy2 = LoadContentHelper.BlessedIcon6;
                        BurnedIconEnemy2 = LoadContentHelper.BurnIcon6;
                        HasHaloIconEnemy2 = LoadContentHelper.HaloIcon6;
                        MindblownIconEnemy2 = LoadContentHelper.MindblownIcon6;
                        PoisenedIconEnemy2 = LoadContentHelper.PoisenIcon6;
                        BleedIconEnemy2.PositionX = (int)enemy2.Position.X - 65;
                        BleedIconEnemy2.PositionY = (int)enemy2.Position.Y;
                        BlessedIconEnemy2.PositionX = (int)enemy2.Position.X - 65;
                        BlessedIconEnemy2.PositionY = (int)enemy2.Position.Y;
                        BurnedIconEnemy2.PositionX = (int)enemy2.Position.X - 65;
                        BurnedIconEnemy2.PositionY = (int)enemy2.Position.Y;
                        HasHaloIconEnemy2.PositionX = (int)enemy2.Position.X - 65;
                        HasHaloIconEnemy2.PositionY = (int)enemy2.Position.Y;
                        MindblownIconEnemy2.PositionX = (int)enemy2.Position.X - 65;
                        MindblownIconEnemy2.PositionY = (int)enemy2.Position.Y;
                        PoisenedIconEnemy2.PositionX = (int)enemy2.Position.X - 65;
                        PoisenedIconEnemy2.PositionY = (int)enemy2.Position.Y;
                    }

                    if (enemyCount == 2)
                    {
                        enemy.AttackAnimation.active = false;
                        enemy.Position = enemyPosition_3;
                        this.Enemies.ElementAt<Character>(2).LoadContent(enemy.StandardAnimation, enemy.Position);
                        enemy3 = enemy;
                        BleedIconEnemy3 = LoadContentHelper.BleedIcon7;
                        BlessedIconEnemy3 = LoadContentHelper.BlessedIcon7;
                        BurnedIconEnemy3 = LoadContentHelper.BurnIcon7;
                        HasHaloIconEnemy3 = LoadContentHelper.HaloIcon7;
                        MindblownIconEnemy3 = LoadContentHelper.MindblownIcon7;
                        PoisenedIconEnemy3 = LoadContentHelper.PoisenIcon7;
                        BleedIconEnemy3.PositionX = (int)enemy3.Position.X - 65;
                        BleedIconEnemy3.PositionY = (int)enemy3.Position.Y;
                        BlessedIconEnemy3.PositionX = (int)enemy3.Position.X - 65;
                        BlessedIconEnemy3.PositionY = (int)enemy3.Position.Y;
                        BurnedIconEnemy3.PositionX = (int)enemy3.Position.X - 65;
                        BurnedIconEnemy3.PositionY = (int)enemy3.Position.Y;
                        HasHaloIconEnemy3.PositionX = (int)enemy3.Position.X - 65;
                        HasHaloIconEnemy3.PositionY = (int)enemy3.Position.Y;
                        MindblownIconEnemy3.PositionX = (int)enemy3.Position.X - 65;
                        MindblownIconEnemy3.PositionY = (int)enemy3.Position.Y;
                        PoisenedIconEnemy3.PositionX = (int)enemy3.Position.X - 65;
                        PoisenedIconEnemy3.PositionY = (int)enemy3.Position.Y;
                    }

                    if (enemyCount == 3)
                    {
                        enemy.AttackAnimation.active = false;
                        enemy.Position = enemyPosition_4;
                        this.Enemies.ElementAt<Character>(3).LoadContent(enemy.StandardAnimation, enemy.Position);
                        enemy4 = enemy;
                        BleedIconEnemy4 = LoadContentHelper.BleedIcon8;
                        BlessedIconEnemy4 = LoadContentHelper.BlessedIcon8;
                        BurnedIconEnemy4 = LoadContentHelper.BurnIcon8;
                        HasHaloIconEnemy4 = LoadContentHelper.HaloIcon8;
                        MindblownIconEnemy4 = LoadContentHelper.MindblownIcon8;
                        PoisenedIconEnemy4 = LoadContentHelper.PoisenIcon8;
                        BleedIconEnemy4.PositionX = (int)enemy4.Position.X - 65;
                        BleedIconEnemy4.PositionY = (int)enemy4.Position.Y;
                        BlessedIconEnemy4.PositionX = (int)enemy4.Position.X - 65;
                        BlessedIconEnemy4.PositionY = (int)enemy4.Position.Y;
                        BurnedIconEnemy4.PositionX = (int)enemy4.Position.X - 65;
                        BurnedIconEnemy4.PositionY = (int)enemy4.Position.Y;
                        HasHaloIconEnemy4.PositionX = (int)enemy4.Position.X - 65;
                        HasHaloIconEnemy4.PositionY = (int)enemy4.Position.Y;
                        MindblownIconEnemy4.PositionX = (int)enemy4.Position.X - 65;
                        MindblownIconEnemy4.PositionY = (int)enemy4.Position.Y;
                        PoisenedIconEnemy4.PositionX = (int)enemy4.Position.X - 65;
                        PoisenedIconEnemy4.PositionY = (int)enemy4.Position.Y;
                    }

                    enemyCount++;
                }
                // Wenn der Gegner erstellt wird und es keine Animation für den Gegner gibt wird dem entsprechend nur ein Bild des gegeners geladen
                else
                {
                    if (enemyCount == 0)
                    {
                        enemy.AttackAnimation.active = false;
                        foreach (GUIElement staticEnemy in LoadContentHelper.AllStaticEnemies)
                        {
                            if (staticEnemy.AssetName == enemy.StaticEnemy.AssetName)
                            {
                                staticBoss = staticEnemy;
                                staticBoss.PositionX = (int)staticBossPosition.X;
                                staticBoss.PositionY = (int)staticBossPosition.Y;
                                StaticEnemies.Add(staticBoss);
                                BleedIconEnemy1 = LoadContentHelper.BleedIcon5;
                                BlessedIconEnemy1 = LoadContentHelper.BlessedIcon5;
                                BurnedIconEnemy1 = LoadContentHelper.BurnIcon5;
                                HasHaloIconEnemy1 = LoadContentHelper.HaloIcon5;
                                MindblownIconEnemy1 = LoadContentHelper.MindblownIcon5;
                                PoisenedIconEnemy1 = LoadContentHelper.PoisenIcon5;
                                BleedIconEnemy1.PositionX = (int)staticBossPosition.X - 30;
                                BleedIconEnemy1.PositionY = (int)staticBossPosition.Y;
                                BlessedIconEnemy1.PositionX = (int)staticBossPosition.X - 30;
                                BlessedIconEnemy1.PositionY = (int)staticBossPosition.Y;
                                BurnedIconEnemy1.PositionX = (int)staticBossPosition.X - 30;
                                BurnedIconEnemy1.PositionY = (int)staticBossPosition.Y;
                                HasHaloIconEnemy1.PositionX = (int)staticBossPosition.X - 30;
                                HasHaloIconEnemy1.PositionY = (int)staticBossPosition.Y;
                                MindblownIconEnemy1.PositionX = (int)staticBossPosition.X - 30;
                                MindblownIconEnemy1.PositionY = (int)staticBossPosition.Y;
                                PoisenedIconEnemy1.PositionX = (int)staticBossPosition.X - 30;
                                PoisenedIconEnemy1.PositionY = (int)staticBossPosition.Y;
                            }
                        }
                        enemy1 = enemy;
                    }

                    if (enemyCount == 1)
                    {
                        enemy.AttackAnimation.active = false;
                        foreach (GUIElement staticEnemy in LoadContentHelper.AllStaticEnemies)
                        {
                            if (staticEnemy.AssetName == enemy.StaticEnemy.AssetName)
                            {
                                staticMinion_1 = staticEnemy;
                                staticMinion_1.PositionX = (int)staticMinionPosition_1.X;
                                staticMinion_1.PositionY = (int)staticMinionPosition_1.Y;
                                StaticEnemies.Add(staticMinion_1);
                                BleedIconEnemy2 = LoadContentHelper.BleedIcon6;
                                BlessedIconEnemy2 = LoadContentHelper.BlessedIcon6;
                                BurnedIconEnemy2 = LoadContentHelper.BurnIcon6;
                                HasHaloIconEnemy2 = LoadContentHelper.HaloIcon6;
                                MindblownIconEnemy2 = LoadContentHelper.MindblownIcon6;
                                PoisenedIconEnemy2 = LoadContentHelper.PoisenIcon6;
                                BleedIconEnemy2.PositionX = (int)staticMinionPosition_1.X - 65;
                                BleedIconEnemy2.PositionY = (int)staticMinionPosition_1.Y;
                                BlessedIconEnemy2.PositionX = (int)staticMinionPosition_1.X - 65;
                                BlessedIconEnemy2.PositionY = (int)staticMinionPosition_1.Y;
                                BurnedIconEnemy2.PositionX = (int)staticMinionPosition_1.X - 65;
                                BurnedIconEnemy2.PositionY = (int)staticMinionPosition_1.Y;
                                HasHaloIconEnemy2.PositionX = (int)staticMinionPosition_1.X - 65;
                                HasHaloIconEnemy2.PositionY = (int)staticMinionPosition_1.Y;
                                MindblownIconEnemy2.PositionX = (int)staticMinionPosition_1.X - 65;
                                MindblownIconEnemy2.PositionY = (int)staticMinionPosition_1.Y;
                                PoisenedIconEnemy2.PositionX = (int)staticMinionPosition_1.X - 65;
                                PoisenedIconEnemy2.PositionY = (int)staticMinionPosition_1.Y;
                            }
                        }
                    }

                    if (enemyCount == 2)
                    {
                        enemy.AttackAnimation.active = false;
                        foreach (GUIElement staticEnemy in LoadContentHelper.AllStaticEnemies)
                        {
                            if (staticEnemy.AssetName == enemy.StaticEnemy.AssetName)
                            {
                                staticMinion_2 = staticEnemy;
                                staticMinion_2.PositionX = (int)staticMinionPosition_2.X;
                                staticMinion_2.PositionY = (int)staticMinionPosition_2.Y;
                                StaticEnemies.Add(staticMinion_2);
                                BleedIconEnemy3 = LoadContentHelper.BleedIcon7;
                                BlessedIconEnemy3 = LoadContentHelper.BlessedIcon7;
                                BurnedIconEnemy3 = LoadContentHelper.BurnIcon7;
                                HasHaloIconEnemy3 = LoadContentHelper.HaloIcon7;
                                MindblownIconEnemy3 = LoadContentHelper.MindblownIcon7;
                                PoisenedIconEnemy3 = LoadContentHelper.PoisenIcon7;
                                BleedIconEnemy3.PositionX = (int)staticMinionPosition_2.X - 65;
                                BleedIconEnemy3.PositionY = (int)staticMinionPosition_2.Y;
                                BlessedIconEnemy3.PositionX = (int)staticMinionPosition_2.X - 65;
                                BlessedIconEnemy3.PositionY = (int)staticMinionPosition_2.Y;
                                BurnedIconEnemy3.PositionX = (int)staticMinionPosition_2.X - 65;
                                BurnedIconEnemy3.PositionY = (int)staticMinionPosition_2.Y;
                                HasHaloIconEnemy3.PositionX = (int)staticMinionPosition_2.X - 65;
                                HasHaloIconEnemy3.PositionY = (int)staticMinionPosition_2.Y;
                                MindblownIconEnemy3.PositionX = (int)staticMinionPosition_2.X - 65;
                                MindblownIconEnemy3.PositionY = (int)staticMinionPosition_2.Y;
                                PoisenedIconEnemy3.PositionX = (int)staticMinionPosition_2.X - 65;
                                PoisenedIconEnemy3.PositionY = (int)staticMinionPosition_2.Y;
                            }
                        }
                    }
                    if (enemyCount == 3)
                    {
                        foreach (GUIElement staticEnemy in LoadContentHelper.AllStaticEnemies)
                        {
                            enemy.AttackAnimation.active = false;
                            if (staticEnemy.AssetName == enemy.StaticEnemy.AssetName)
                            {
                                staticMinion_3 = staticEnemy;
                                staticMinion_3.PositionX = (int)staticMinionPosition_3.X;
                                staticMinion_3.PositionY = (int)staticMinionPosition_3.Y;
                                StaticEnemies.Add(staticMinion_3);
                                BleedIconEnemy4 = LoadContentHelper.BleedIcon8;
                                BlessedIconEnemy4 = LoadContentHelper.BlessedIcon8;
                                BurnedIconEnemy4 = LoadContentHelper.BurnIcon8;
                                HasHaloIconEnemy4 = LoadContentHelper.HaloIcon8;
                                MindblownIconEnemy4 = LoadContentHelper.MindblownIcon8;
                                PoisenedIconEnemy4 = LoadContentHelper.PoisenIcon8;
                                BleedIconEnemy4.PositionX = (int)staticMinionPosition_3.X - 65;
                                BleedIconEnemy4.PositionY = (int)staticMinionPosition_3.Y;
                                BlessedIconEnemy4.PositionX = (int)staticMinionPosition_3.X - 65;
                                BlessedIconEnemy4.PositionY = (int)staticMinionPosition_3.Y;
                                BurnedIconEnemy4.PositionX = (int)staticMinionPosition_3.X - 65;
                                BurnedIconEnemy4.PositionY = (int)staticMinionPosition_3.Y;
                                HasHaloIconEnemy4.PositionX = (int)staticMinionPosition_3.X - 65;
                                HasHaloIconEnemy4.PositionY = (int)staticMinionPosition_3.Y;
                                MindblownIconEnemy4.PositionX = (int)staticMinionPosition_3.X - 65;
                                MindblownIconEnemy4.PositionY = (int)staticMinionPosition_3.Y;
                                PoisenedIconEnemy4.PositionX = (int)staticMinionPosition_3.X - 65;
                                PoisenedIconEnemy4.PositionY = (int)staticMinionPosition_3.Y;
                            }
                        }
                    }
                    enemyCount++;
                }

            }

            //Die Counter die zum Zählen der charactere und Skills sind werdeen auf 0 gesetzt
            int skillCounter = 0;
            int charCounter = 0;
            int enemieCounter = 0;

            //Nun werden alle Namen und Skills der Charactere Initialisiert. Diese werden später als Targets und Skills verwendet,
            //die ein Spieler auswählen kann um Skills zu wirken und das hierfür notwendige Ziel zu wähen.
            foreach (Character character in this.fightCadre)
            {

                if (character.GetType() == typeof(PartyMember) || character.GetType() == typeof(Player))
                {

                    if (charCounter == 0)
                    {
                        this.Character1Name = new TextElement(LoadContentHelper.AwesomeFont, character.Name, (int)this.targetPosition_1.X, (int)this.targetPosition_1.Y, true, LoadContentHelper.MouseIntersect);
                        this.Character1Name.tclickEvent += this.onClickTarget;
                        PartyNames.Add(Character1Name);
                        foreach (Skill skill in character.Skills)
                        {
                            if (skillCounter == 0)
                            {
                                this.character1skill1 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_1.X, (int)this.skillPosition_1.Y, true, LoadContentHelper.MouseIntersect);
                                this.character1skill1.tclickEvent += this.OnClickSkill;
                                Character_1_Skills.Add(character1skill1);
                            }
                            if (skillCounter == 1)
                            {
                                this.character1skill2 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_2.X, (int)this.skillPosition_2.Y, true, LoadContentHelper.MouseIntersect);
                                this.character1skill2.tclickEvent += this.OnClickSkill;
                                Character_1_Skills.Add(character1skill2);
                            }
                            if (skillCounter == 2)
                            {
                                this.character1skill3 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_3.X, (int)this.skillPosition_3.Y, true, LoadContentHelper.MouseIntersect);
                                this.character1skill3.tclickEvent += this.OnClickSkill;
                                Character_1_Skills.Add(character1skill3);
                            }
                            if (skillCounter == 3)
                            {
                                this.character1skill4 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_4.X, (int)this.skillPosition_4.Y, true, LoadContentHelper.MouseIntersect);
                                this.character1skill4.tclickEvent += this.OnClickSkill;
                                Character_1_Skills.Add(character1skill4);
                            }
                            skillCounter++;
                        }
                    }
                    if (charCounter == 1)
                    {
                        this.Character2Name = new TextElement(LoadContentHelper.AwesomeFont, character.Name, (int)this.targetPosition_2.X, (int)this.targetPosition_2.Y, true, LoadContentHelper.MouseIntersect);
                        this.Character2Name.tclickEvent += this.onClickTarget;
                        PartyNames.Add(Character2Name);
                        foreach (Skill skill in character.Skills)
                        {
                            if (skillCounter == 0)
                            {
                                this.character2skill1 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_1.X, (int)this.skillPosition_1.Y, true, LoadContentHelper.MouseIntersect);
                                this.character2skill1.tclickEvent += this.OnClickSkill;
                                Character_2_Skills.Add(character2skill1);
                            }
                            if (skillCounter == 1)
                            {
                                this.character2skill2 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_2.X, (int)this.skillPosition_2.Y, true, LoadContentHelper.MouseIntersect);
                                this.character2skill2.tclickEvent += this.OnClickSkill;
                                Character_2_Skills.Add(character2skill2);
                            }
                            if (skillCounter == 2)
                            {
                                this.character2skill3 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_3.X, (int)this.skillPosition_3.Y, true, LoadContentHelper.MouseIntersect);
                                this.character2skill3.tclickEvent += this.OnClickSkill;
                                Character_2_Skills.Add(character2skill3);
                            }
                            if (skillCounter == 3)
                            {
                                this.character2skill4 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_4.X, (int)this.skillPosition_4.Y, true, LoadContentHelper.MouseIntersect);
                                this.character2skill4.tclickEvent += this.OnClickSkill;
                                Character_2_Skills.Add(character2skill4);
                            }

                            skillCounter++;
                        }

                    }

                    if (charCounter == 2)
                    {
                        this.Character3Name = new TextElement(LoadContentHelper.AwesomeFont, character.Name, (int)this.targetPosition_3.X, (int)this.targetPosition_3.Y, true, LoadContentHelper.MouseIntersect);
                        this.Character3Name.tclickEvent += this.onClickTarget;
                        PartyNames.Add(Character3Name);
                        foreach (Skill skill in character.Skills)
                        {
                            if (skillCounter == 0)
                            {
                                this.character3skill1 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_1.X, (int)this.skillPosition_1.Y, true, LoadContentHelper.MouseIntersect);
                                this.character3skill1.tclickEvent += this.OnClickSkill;
                                Character_3_Skills.Add(character3skill1);
                            }
                            if (skillCounter == 1)
                            {
                                this.character3skill2 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_2.X, (int)this.skillPosition_2.Y, true, LoadContentHelper.MouseIntersect);
                                this.character3skill2.tclickEvent += this.OnClickSkill;
                                Character_3_Skills.Add(character3skill2);
                            }
                            if (skillCounter == 2)
                            {
                                this.character3skill3 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_3.X, (int)this.skillPosition_3.Y, true, LoadContentHelper.MouseIntersect);
                                this.character3skill3.tclickEvent += this.OnClickSkill;
                                Character_3_Skills.Add(character3skill3);
                            }
                            if (skillCounter == 3)
                            {
                                this.character3skill4 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_4.X, (int)this.skillPosition_4.Y, true, LoadContentHelper.MouseIntersect);
                                this.character3skill4.tclickEvent += this.OnClickSkill;
                                Character_3_Skills.Add(character3skill4);
                            }

                            skillCounter++;
                        }
                    }
                    if (charCounter == 3)
                    {
                        this.Character4Name = new TextElement(LoadContentHelper.AwesomeFont, character.Name, (int)this.targetPosition_4.X, (int)this.targetPosition_4.Y, true, LoadContentHelper.MouseIntersect);
                        this.Character4Name.tclickEvent += this.onClickTarget;
                        PartyNames.Add(Character4Name);
                        foreach (Skill skill in character.Skills)
                        {
                            if (skillCounter == 0)
                            {
                                this.character4skill1 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_1.X, (int)this.skillPosition_1.Y, true, LoadContentHelper.MouseIntersect);
                                this.character4skill1.tclickEvent += this.OnClickSkill;
                                Character_4_Skills.Add(character4skill1);
                            }
                            if (skillCounter == 1)
                            {
                                this.character4skill2 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_2.X, (int)this.skillPosition_2.Y, true, LoadContentHelper.MouseIntersect);
                                this.character4skill2.tclickEvent += this.OnClickSkill;
                                Character_4_Skills.Add(character4skill2);
                            }
                            if (skillCounter == 2)
                            {
                                this.character4skill3 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_3.X, (int)this.skillPosition_3.Y, true, LoadContentHelper.MouseIntersect);
                                this.character4skill3.tclickEvent += this.OnClickSkill;
                                Character_4_Skills.Add(character4skill3);
                            }
                            if (skillCounter == 3)
                            {
                                this.character4skill4 = new TextElement(LoadContentHelper.AwesomeFont, skill.Name, (int)this.skillPosition_4.X, (int)this.skillPosition_4.Y, true, LoadContentHelper.MouseIntersect);
                                this.character4skill4.tclickEvent += this.OnClickSkill;
                                Character_4_Skills.Add(character4skill4);
                            }
                            skillCounter++;
                        }
                    }
                    skillCounter = 0;
                    charCounter++;
                }
            }
            foreach (Enemy enemy in this.Enemies)
            {
                if (enemieCounter == 0)
                {
                    this.enemy1Name = new TextElement(LoadContentHelper.AwesomeFont, enemy.Name, (int)this.targetPosition_1.X, (int)this.targetPosition_1.Y, true, LoadContentHelper.MouseIntersect);
                    this.enemy1Name.tclickEvent += this.onClickTarget;
                    EnemyNames.Add(enemy1Name);
                }
                if (enemieCounter == 1)
                {
                    this.enemy2Name = new TextElement(LoadContentHelper.AwesomeFont, enemy.Name, (int)this.targetPosition_2.X, (int)this.targetPosition_2.Y, true, LoadContentHelper.MouseIntersect);
                    this.enemy2Name.tclickEvent += this.onClickTarget;
                    EnemyNames.Add(enemy2Name);
                }
                if (enemieCounter == 2)
                {
                    this.enemy3Name = new TextElement(LoadContentHelper.AwesomeFont, enemy.Name, (int)this.targetPosition_3.X, (int)this.targetPosition_3.Y, true, LoadContentHelper.MouseIntersect);
                    this.enemy3Name.tclickEvent += this.onClickTarget;
                    EnemyNames.Add(enemy3Name);
                }
                if (enemieCounter == 3)
                {
                    this.enemy4Name = new TextElement(LoadContentHelper.AwesomeFont, enemy.Name, (int)this.targetPosition_4.X, (int)this.targetPosition_4.Y, true, LoadContentHelper.MouseIntersect);
                    this.enemy4Name.tclickEvent += this.onClickTarget;
                    EnemyNames.Add(enemy4Name);
                }
                enemieCounter++;
            }

            //Die anderen Notwendigen Variablen werden zugewiesen wie SoundEffects, Events usw.
            Click = LoadContentHelper.Click;
            Punch = LoadContentHelper.Punch;
            Heal = LoadContentHelper.Heal;

            GameOver = new GameOverEvent(LoadContentHelper.NickTheme);
            battleEvaluation = new BattleEvaluationEvent(FightCadre, LoadContentHelper.NickTheme);

            CharacterStatBox = LoadContentHelper.CharacterStatBox;
            AttackHintBox = LoadContentHelper.AttackHintBox;
            AttackHintBox.PositionX = 0;
            AttackHintBox.PositionY = 10;
            skillBox = LoadContentHelper.SkillBox;
            skillBox.PositionX = 0;
            skillBox.PositionY = 458;

            CharacterStatBox.PositionX = 140;
            CharacterStatBox.PositionY = 30;

            this.attackSkill = new TextElement(LoadContentHelper.AwesomeFont, "Angriff", (int)this.attackSkillPosition.X, (int)this.attackSkillPosition.Y, true, LoadContentHelper.MouseIntersect);
            this.attackSkill.tclickEvent += OnClickSkill;
            this.restSkill = new TextElement(LoadContentHelper.AwesomeFont, "Ausruhen", (int)this.restSkillPosition.X, (int)this.restSkillPosition.Y, true, LoadContentHelper.MouseIntersect);
            this.restSkill.tclickEvent += OnClickSkill;

            Back = new TextElement(LoadContentHelper.AwesomeFont, "Zurück",(int)skillPosition_3.X, (int)skillPosition_3.Y, true, LoadContentHelper.MouseIntersect);
            Back.tclickEvent += OnClickElement;
            EnemyNames.Add(Back);

            //Die Heal und Hit Animationen werden Initialisiert
            hitAnimationStandard = LoadContentHelper.hitAnimation1;
            Hit1 = new Skill("PhysicalHit", 0, null, null, null, null);
            Hit1.LoadContent(hitAnimationStandard, new Vector2(0, 0));
            hitAnimationStandard.active = false;

            healAnimationStandard = LoadContentHelper.healAnimation1;
            Heal1 = new Skill("Heal", 0, null, null, null, null);
            Heal1.LoadContent(healAnimationStandard, new Vector2(0, 0));
            healAnimationStandard.active = false;

            hitAnimation2 = LoadContentHelper.hitAnimation2;
            Hit2 = new Skill("PhysicalHit", 0, null, null, null, null);
            Hit2.LoadContent(hitAnimation2, new Vector2(0, 0));
            hitAnimation2.active = false;

            healAnimation2 = LoadContentHelper.healAnimation2;
            Heal2 = new Skill("Heal", 0, null, null, null, null);
            Heal2.LoadContent(healAnimation2, new Vector2(0, 0));
            healAnimation2.active = false;

            hitAnimation3 = LoadContentHelper.hitAnimation3;
            Hit3 = new Skill("PhysicalHit", 0, null, null, null, null);
            Hit3.LoadContent(hitAnimation3, new Vector2(0, 0));
            hitAnimation3.active = false;

            healAnimation3 = LoadContentHelper.healAnimation3;
            Heal3 = new Skill("Heal", 0, null, null, null, null);
            Heal3.LoadContent(healAnimation3, new Vector2(0, 0));
            healAnimation3.active = false;

            hitAnimation4 = LoadContentHelper.hitAnimation4;
            Hit4 = new Skill("PhysicalHit", 0, null, null, null, null);
            Hit4.LoadContent(hitAnimation4, new Vector2(0, 0));
            hitAnimation4.active = false;

            healAnimation4 = LoadContentHelper.healAnimation4;
            Heal4 = new Skill("Heal", 0, null, null, null, null);
            Heal4.LoadContent(healAnimation4, new Vector2(0, 0));
            healAnimation4.active = false;

            //Attack und Rest Skills werden zu den SkillListen der Charactere hinzugefügt
            Character_1_Skills.Add(attackSkill);
            Character_1_Skills.Add(restSkill);
            Character_2_Skills.Add(attackSkill);
            Character_2_Skills.Add(restSkill);
            Character_3_Skills.Add(attackSkill);
            Character_3_Skills.Add(restSkill);
            Character_4_Skills.Add(attackSkill);
            Character_4_Skills.Add(restSkill);

            // Die Pfeile zum anzeigen des aktiven Characters werden initialisiert und die Position wird festgelegt
            if (partyMember1 != null)
            {
                ActivePartymember1Arrow = LoadContentHelper.activePartyMemberArrow1;
                ActivePartymember1Arrow.PositionX = (int)partyMember1.Position.X - 60;
                ActivePartymember1Arrow.PositionY = (int)partyMember1.Position.Y - 10;
            }
            if (partyMember2 != null)
            {
                ActivePartymember2Arrow = LoadContentHelper.activePartyMemberArrow2;
                ActivePartymember2Arrow.PositionX = (int)partyMember2.Position.X - 60;
                ActivePartymember2Arrow.PositionY = (int)partyMember2.Position.Y - 10;
            }
            if (partyMember3 != null)
            {
                ActivePartymember3Arrow = LoadContentHelper.activePartyMemberArrow3;
                ActivePartymember3Arrow.PositionX = (int)partyMember3.Position.X - 60;
                ActivePartymember3Arrow.PositionY = (int)partyMember3.Position.Y - 10;
            }
            if (partyMember4 != null)
            {
                ActivePartymember4Arrow = LoadContentHelper.activePartyMemberArrow4;
                ActivePartymember4Arrow.PositionX = (int)partyMember4.Position.X - 60;
                ActivePartymember4Arrow.PositionY = (int)partyMember4.Position.Y - 10;
            }
            if (enemy1 != null)
            {
                ActiveEnemy1Arrow = LoadContentHelper.activeEnemyArrow1;
                ActiveEnemy1Arrow.PositionX = (int)enemy1.Position.X + 45;
                ActiveEnemy1Arrow.PositionY = (int)enemy1.Position.Y - 10;
            }
            if (enemy2 != null)
            {
                ActiveEnemy2Arrow = LoadContentHelper.activeEnemyArrow2;
                ActiveEnemy2Arrow.PositionX = (int)enemy2.Position.X + 45;
                ActiveEnemy2Arrow.PositionY = (int)enemy2.Position.Y - 10;
            }
            if (enemy3 != null)
            {
                ActiveEnemy3Arrow = LoadContentHelper.activeEnemyArrow3;
                ActiveEnemy3Arrow.PositionX = (int)enemy3.Position.X + 45;
                ActiveEnemy3Arrow.PositionY = (int)enemy3.Position.Y - 10;
            }
            if (enemy4 != null)
            {
                ActiveEnemy4Arrow = LoadContentHelper.activeEnemyArrow4;
                ActiveEnemy4Arrow.PositionX = (int)enemy4.Position.X + 45;
                ActiveEnemy4Arrow.PositionY = (int)enemy4.Position.Y - 10;
            }

            //FightCader wird der Liste FightClub hinzugefügt
            foreach (Character character in this.fightCadre)
            {
                this.FightClub.Add(character);
            }

            //Enemies wird der Liste FightClub hinzugefügt
            foreach (Character character in this.Enemies)
            {
                this.FightClub.Add(character);
            }

            //Der BackgroundPath wird mit den vorhanden Backgrounds des LoadContentHelpers verglichen,
            //und der richtige Hintergrund wird zugewiesen
            foreach (GUIElement background in LoadContentHelper.AllBackgrounds)
            {
                if (background.AssetName == BackgroundPath)
                {
                    this.Background = background;
                }
            }

            // FightClub Member werden nach dem Initiative wert sortiert
            this.FightClub = this.FightClub.OrderBy(character => character.GetInitiative()).ToList();
            activeChar = FightClub.ElementAt<Character>(0);
        }