Пример #1
0
 public Enemy(string charName, Classes className, int level, GUIElement staticEnemy, Animation standardAnimation, Animation attackAnimation, Animation deathAnimation, bool isAnimated)
     : base(charName, className, level, standardAnimation, attackAnimation, deathAnimation)
 {
     this.isAnimated = isAnimated;
     this.StaticEnemy = staticEnemy;
     LoadSkillHelperClass.AddSkillsForEnemy(this);
 }
Пример #2
0
        //Konstruktor
        public Character(string charName, Classes className, int level, Animation standardAnimation, Animation attackAnimation, Animation deathAnimation)
        {
            this.Name = charName;
            this.Class = className;
            this.Level = level;
            this.SetInitiative();

            this.ChangeAttributes(AttributesHelperClass.SetAttributes());

            for (int i = Level; i > 0; i--)
            {
                this.ChangeAttributes(AttributesHelperClass.LevelUpAttributes(this.Class));
            }

            this.SetFightAttributes();

            this.Skills = new List<Skill>();
            this.Statuseffects = new List<IStatuseffect>();

            if (standardAnimation != null && attackAnimation != null && deathAnimation != null)
            {
                this.StandardAnimation = standardAnimation;
                this.AttackAnimation = attackAnimation;
                this.DeathAnimation = deathAnimation;
            }
            else
            {
                StandardAnimation = LoadContentHelper.PlaceHolderForStatics;
                AttackAnimation = LoadContentHelper.PlaceHolderForStatics;
                DeathAnimation = LoadContentHelper.PlaceHolderForStatics;
            }
            LoadSkillHelperClass.AddStandardSkills(this);
            this.IsMindBlown = false;
        }
Пример #3
0
 public void SetAnimation(Animation animation)
 {
     this.Animation = animation;
 }
Пример #4
0
 public void LoadContent(Animation animation, Vector2 position)
 {
     this.animation = animation;
     this.position = position;
 }
Пример #5
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);
        }