示例#1
0
        // Contains definitions of all animations for every character in the game.
        private void PopulateLists()
        {
            // What type of game object am I?
            switch (this.mObjectType)
            {
                case ObjectType.DRAGON:
                    {

                        //I'm a DRAGON, so define my DRAGON animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Dragon/DragonFlyingLeft", 4, 1, 4, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Dragon/DragonFlyingRight", 4, 1, 4, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Dragon/DragonIdleLeft", 20, 1, 20, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Dragon/DragonIdleRight", 20, 1, 20, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Dragon/DragonAttackLeft", 10, 1, 10, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Dragon/DragonAttackRight", 10, 1, 10, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Dragon/DragonDeathLeft", 10, 1, 10, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Dragon/DragonDeathRight", 10, 1, 10, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        this.mCombatType = CombatType.MELEE;
                    }
                    break;
                case ObjectType.CLERIC:
                    {

                        //I'm a CLERIC, so define my CLERIC animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Cleric/ClericWalkingLeft", 4, 1, 4, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Cleric/ClericWalkingRight", 4, 1, 4, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Cleric/ClericIdleLeft", 1, 1, 1, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Cleric/ClericIdleRight", 1, 1, 1, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Cleric/ClericHealLeft", 3, 1, 3, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Cleric/ClericHealRight", 3, 1, 3, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Cleric/ClericDeathLeft", 15, 1, 15, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Cleric/ClericDeathRight", 15, 1, 15, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.HEALER;

                    }
                    break;

                case ObjectType.BERSERKER:
                    {

                        //I'm a BERSERKER, so define my BERSERKER animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Berzerker/BerzerkerWalkingLeft", 7, 1, 7, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Berzerker/BerzerkerWalkingRight", 7, 1, 7, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Berzerker/BerzerkerIdleLeft", 6, 1, 6, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Berzerker/BerzerkerIdleRight", 6, 1, 6, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Berzerker/BerzerkerAttackLeft", 5, 1, 5, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Berzerker/BerzerkerAttackRight", 5, 1, 5, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Berzerker/BerzerkerDyingLeft", 6, 1, 6, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Berzerker/BerzerkerDyingRight", 6, 1, 6, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.MELEE;
                    }
                    break;
                // THIS IS AXE THROWER
                case ObjectType.AXE_THROWER:
                    {

                        //I'm a AXE_THROWER, so define my AXE_THROWER animations.
                        Animation MoveLeft = new Animation("Sprites/Units/AxeThrower/AxeThrowerWalkingLeft", 7, 1, 7, 200);
                        Animation MoveRight = new Animation("Sprites/Units/AxeThrower/AxeThrowerWalkingRight", 7, 1, 7, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/AxeThrower/AxeThrowerIdleLeft", 3, 1, 3, 200);
                        Animation IdleRight = new Animation("Sprites/Units/AxeThrower/AxeThrowerIdleRight", 3, 1, 3, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/AxeThrower/AxeThrowerAttackLeft", 6, 1, 6, 200);
                        Animation AttackRight = new Animation("Sprites/Units/AxeThrower/AxeThrowerAttackRight", 6, 1, 6, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/AxeThrower/AxeThrowerDyingLeft", 3, 1, 3, 200);
                        Animation DeathRight = new Animation("Sprites/Units/AxeThrower/AxeThrowerDyingRight", 3, 1, 3, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.RANGED;

                    }
                    break;
                case ObjectType.FIRE_MAGE:
                    {

                        //I'm a FIRE_MAGE, so define my FIRE_MAGE animations.
                        Animation MoveLeft = new Animation("Sprites/Units/FireMage/FireWalkingLeft", 14, 1, 14, 200);
                        Animation MoveRight = new Animation("Sprites/Units/FireMage/FireWalkingRight", 14, 1, 14, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/FireMage/FireIdleLeft", 15, 1, 15, 200);
                        Animation IdleRight = new Animation("Sprites/Units/FireMage/FireIdleRight", 15, 1, 15, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/FireMage/FireAttackLeft", 6, 1, 6, 200);
                        Animation AttackRight = new Animation("Sprites/Units/FireMage/FireAttackRight", 6, 1, 6, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/FireMage/FireDyingLeft", 1, 1, 1, 200);
                        Animation DeathRight = new Animation("Sprites/Units/FireMage/FireDyingRight", 1, 1, 1, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.RANGED;

                    }
                    break;
                case ObjectType.NECROMANCER:
                    {

                        //I'm a NECROMANCER, so define my NECROMANCER animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Necro/NecroWalkingLeft", 6, 1, 6, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Necro/NecroWalkingRight", 6, 1, 6, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Necro/NecroIdleLeft", 1, 1, 1, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Necro/NecroIdleRight", 1, 1, 1, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Necro/NecroAttackingLeft", 4, 1, 4, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Necro/NecroAttackingRight", 4, 1, 4, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Necro/NecroDyingLeft", 8, 1, 8, 100);
                        Animation DeathRight = new Animation("Sprites/Units/Necro/NecroDyingRight", 8, 1, 8, 100);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.RANGED;
                    }
                    break;

                case ObjectType.WOLF:
                    {

                        //I'm a WOLF, so define my WOLF animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Wolf/WolfWalkingLeft", 8, 1, 8, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Wolf/WolfWalkingRight", 8, 1, 8, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Wolf/WolfIdleLeft", 14, 1, 14, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Wolf/WolfIdleRight", 14, 1, 14, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Wolf/WolfAttackLeft", 4, 1, 4, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Wolf/WolfAttackRight", 4, 1, 4, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Wolf/WolfDyingLeft", 4, 1, 4, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Wolf/WolfDyingRight", 4, 1, 4, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.MELEE;
                    }
                    break;
                case ObjectType.ARCANE_MAGE:
                    {

                        //I'm a ARCANE_MAGE, so define my ARCANE_MAGE animations.
                        Animation MoveLeft = new Animation("Sprites/Units/ArcaneMage/ArcaneWalkingLeft", 6, 1, 6, 200);
                        Animation MoveRight = new Animation("Sprites/Units/ArcaneMage/ArcaneWalkingRight", 6, 1, 6, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/ArcaneMage/ArcaneIdleLeft", 1, 1, 1, 200);
                        Animation IdleRight = new Animation("Sprites/Units/ArcaneMage/ArcaneIdleRight", 1, 1, 1, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/ArcaneMage/ArcaneAttackLeft", 4, 1, 4, 200);
                        Animation AttackRight = new Animation("Sprites/Units/ArcaneMage/ArcaneAttackRight", 4, 1, 4, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/ArcaneMage/ArcaneMageDeathLeft", 9, 1, 9, 200);
                        Animation DeathRight = new Animation("Sprites/Units/ArcaneMage/ArcaneMageDeathRight", 9, 1, 9, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.RANGED;
                    }
                    break;

                //TODO: THIS IS IMP
                case ObjectType.IMP:
                    {

                        //I'm a IMP, so define my IMP animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Imp/ImpWalkingLeft", 4, 1, 4, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Imp/ImpWalkingRight", 4, 1, 4, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Imp/ImpAttackingLeft", 4, 1, 4, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Imp/ImpAttackingRight", 4, 1, 4, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Imp/ImpDyingLeft", 14, 1, 14, 150);
                        Animation DeathRight = new Animation("Sprites/Units/Imp/ImpDyingRight", 14, 1, 14, 150);
                        Animation IdleLeft = new Animation("Sprites/Units/Imp/ImpIdleLeft", 1, 1, 1, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Imp/ImpIdleRight", 1, 1, 1, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.MELEE;
                    }
                    break;
                case ObjectType.GOG:
                    {

                        //I'm a GOG, so define my GOG animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Gog/GogWalkingLeft", 5, 1, 5, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Gog/GogWalkingRight", 5, 1, 5, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Gog/GogAttackingLeft", 3, 1, 3, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Gog/GogAttackingRight", 3, 1, 3, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Gog/GogDyingLeft", 15, 1, 15, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Gog/GogDyingRight", 15, 1, 15, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Gog/GogWalkingLeft", 0, 1, 1, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Gog/GogWalkingRight", 0, 1, 1, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.RANGED;

                    }
                    break;

                // THIS IS BANSHEE
                case ObjectType.BANSHEE:
                    {

                        //I'm a BANSHEE, so define my BANSHEE animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Banshee/BansheeWalkingLeft", 6, 1, 6, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Banshee/BansheeWalkingRight", 6, 1, 6, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Banshee/BansheeAttackingLeft", 2, 1, 2, 100);
                        Animation AttackRight = new Animation("Sprites/Units/Banshee/BansheeAttackingLeft", 2, 1, 2, 100);
                        Animation DeathLeft = new Animation("Sprites/Units/Banshee/BansheeDeathLeft", 5, 1, 5, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Banshee/BansheeDeathRight", 5, 1, 5, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Banshee/BansheeAttackingLeft", 0, 1, 1, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Banshee/BansheeAttackingRight", 0, 1, 1, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.RANGED;
                    }
                    break;
                // TODO: THIS IS REAPER
                case ObjectType.REAPER:
                    {

                        //I'm a REAPER, so define my REAPER animations.
                        Animation MoveLeft = new Animation("Sprites/Units/Reaper/ReaperWalkingLeft", 9, 1, 9, 200);
                        Animation MoveRight = new Animation("Sprites/Units/Reaper/ReaperWalkingRight", 9, 1, 9, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/Reaper/ReaperAttackingLeft", 6, 1, 6, 200);
                        Animation AttackRight = new Animation("Sprites/Units/Reaper/ReaperAttackingRight", 6, 1, 6, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/Reaper/ReaperDyingLeft", 16, 2, 16, 200);
                        Animation DeathRight = new Animation("Sprites/Units/Reaper/ReaperDyingRight", 16, 2, 16, 200);
                        Animation IdleLeft = new Animation("Sprites/Units/Reaper/ReaperWalkingLeft", 9, 1, 9, 200);
                        Animation IdleRight = new Animation("Sprites/Units/Reaper/ReaperWalkingRight", 9, 1, 9, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);
                        mCombatType = CombatType.MELEE;
                    }
                    break;
                case ObjectType.DOOM_HOUND:
                    {

                        //I'm a DOOM_HOUND, so define my DOOM_HOUND animations.
                        Animation MoveLeft = new Animation("Sprites/Units/DoomHound/DoomHoundWalkLeft", 10, 1, 10, 200);
                        Animation MoveRight = new Animation("Sprites/Units/DoomHound/DoomHoundWalkRight", 10, 1, 10, 200);
                        Animation AttackLeft = new Animation("Sprites/Units/DoomHound/DoomHoundAttackLeft", 8, 1, 8, 200);
                        Animation AttackRight = new Animation("Sprites/Units/DoomHound/DoomHoundAttackRight", 8, 1, 8, 200);
                        Animation DeathLeft = new Animation("Sprites/Units/DoomHound/DoomHoundDeathLeft", 6, 1, 6, 150);
                        Animation DeathRight = new Animation("Sprites/Units/DoomHound/DoomHoundDeathRight", 6, 1, 6, 150);
                        Animation IdleLeft = new Animation("Sprites/Units/DoomHound/DoomHoundWalkLeft", 10, 1, 10, 200);
                        Animation IdleRight = new Animation("Sprites/Units/DoomHound/DoomHoundWalkRight", 10, 1, 10, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);

                        mCombatType = CombatType.MELEE;
                    }
                    break;
                case ObjectType.HERO:
                    {

                        //I'm a HERO, so define my HERO animations.
                        Animation MoveLeft = new Animation("Sprites/Hero/HeroWalkingLeft", 4, 1, 4, 200);
                        Animation MoveRight = new Animation("Sprites/Hero/HeroWalkingRight", 4, 1, 4, 200);
                        Animation IdleLeft = new Animation("Sprites/Hero/HeroIdleLeft", 12, 1, 12, 200);
                        Animation IdleRight = new Animation("Sprites/Hero/HeroIdleRight", 12, 1, 12, 200);
                        Animation AttackLeft = new Animation("Sprites/Hero/HeroAttackingLeft", 4, 1, 4, 200);
                        Animation AttackRight = new Animation("Sprites/Hero/HeroAttackingRight", 4, 1, 4, 200);
                        Animation DeathLeft = new Animation("Sprites/Hero/HeroDyingLeft", 10, 1, 10, 150);
                        Animation DeathRight = new Animation("Sprites/Hero/HeroDyingRight", 10, 1, 10, 150);
                        Animation CastBattleCryLeft = new Animation("Sprites/Hero/HeroCastBattleCryLeft", 11, 0, 11, 200);
                        Animation CastBattleCryRight = new Animation("Sprites/Hero/HeroCastBattleCryRight", 11, 0, 11, 200);
                        Animation CastIntimidateLeft = new Animation("Sprites/Hero/HeroCastIntimidateLeft", 11, 0, 11, 200);
                        Animation CastIntimidateRight = new Animation("Sprites/Hero/HeroCastIntimidateRight", 11, 0, 11, 200);

                        // Populate my list of animations. All game objects will populate animations in a consistant order.
                        // Move will always be at index 0. IDLE_LEFT will always be at index 1, etc.
                        mUnitAnimationList.Add(MoveLeft);
                        mUnitAnimationList.Add(MoveRight);
                        mUnitAnimationList.Add(IdleLeft);
                        mUnitAnimationList.Add(IdleRight);
                        mUnitAnimationList.Add(AttackLeft);
                        mUnitAnimationList.Add(AttackRight);
                        mUnitAnimationList.Add(DeathLeft);
                        mUnitAnimationList.Add(DeathRight);
                        mUnitAnimationList.Add(CastBattleCryLeft);
                        mUnitAnimationList.Add(CastBattleCryRight);
                        mUnitAnimationList.Add(CastIntimidateLeft);
                        mUnitAnimationList.Add(CastIntimidateRight);

                        mCombatType = CombatType.MELEE;
                    }
                    break;
                case ObjectType.ORC_CASTLE:
                    {
                        Animation Castle = new Animation("Sprites/Structures/OrcCastle2", 1, 1, 1, 100000);
                        // Animation Castle = new Animation("Sprites/Castle/NecromancerStructure", 10, 1, 10, 500);
                        mUnitAnimationList.Add(Castle);

                    }
                    break;
                case ObjectType.DRAGON_CAVE:
                    {
                        Animation Structure = new Animation("Sprites/Structures/DragonCave", 9, 1, 9, 500);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.ABBEY:
                    {
                        Animation Structure = new Animation("Sprites/Structures/Abbey", 20, 1, 20, 200);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.BONEPIT:
                    {
                        Animation Structure = new Animation("Sprites/Structures/BonePit", 10, 1, 10, 200);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.FIRE_TEMPLE:
                    {
                        Animation Structure = new Animation("Sprites/Structures/FireTemple", 9, 1, 9, 200);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.WOLFPEN:
                    {
                        Animation Structure = new Animation("Sprites/Structures/WolfPen", 1, 1, 1, 100000);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.LIBRARY:
                    {
                        Animation Structure = new Animation("Sprites/Structures/Library", 21, 1, 21, 100000);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.ARMORY:
                    {
                        Animation Structure = new Animation("Sprites/Structures/Armory", 1, 1, 1, 100000);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.BARRACKS:
                    {
                        Animation Structure = new Animation("Sprites/Structures/Barracks", 1, 1, 1, 100000);

                        mUnitAnimationList.Add(Structure);

                    }
                    break;
                case ObjectType.FIRE_MAGE_PROJECTILE:
                    {

                        //Give me my axe I can throw at my foes!
                        Animation CastLeft = new Animation("Sprites/Units/FireMage/FireballLeft", 5, 1, 5, 200);
                        Animation CastRight = new Animation("Sprites/Units/FireMage/FireballRight", 5, 1, 5, 200);

                        mProjectileAnimationList.Add(CastLeft);
                        mProjectileAnimationList.Add(CastRight);
                    }
                    break;
                case ObjectType.GOG_PROJECTILE:
                    {

                        //Give me my axe I can throw at my foes!
                        Animation CastLeft = new Animation("Sprites/Units/Gog/FireballLeft", 5, 1, 5, 100);
                        Animation CastRight = new Animation("Sprites/Units/Gog/FireballRight", 5, 1, 5, 100);

                        mProjectileAnimationList.Add(CastLeft);
                        mProjectileAnimationList.Add(CastRight);
                    }
                    break;
                case ObjectType.NECROMANCER_PROJECTILE:
                    {

                        //Give me my axe I can throw at my foes!
                        Animation CastLeft = new Animation("Sprites/Units/Necro/SkullChompLeft", 8, 1, 8, 200);
                        Animation CastRight = new Animation("Sprites/Units/Necro/SkullChompRight", 8, 1, 8, 200);

                        mProjectileAnimationList.Add(CastLeft);
                        mProjectileAnimationList.Add(CastRight);
                    }
                    break;
                //TODO: THIS IS A BANSHEE PROJECTILE
                case ObjectType.BANSHEE_PROJECTILE:
                    {
                        //Give me my axe I can throw at my foes!
                        Animation CastLeft = new Animation("Sprites/Units/Banshee/SkullLeft", 4, 1, 4, 150);
                        Animation CastRight = new Animation("Sprites/Units/Banshee/SkullRight", 4, 1, 4, 150);
                        mProjectileAnimationList.Add(CastLeft);
                        mProjectileAnimationList.Add(CastRight);
                    }
                    break;
                case ObjectType.ARCANE_MAGE_PROJECTILE:
                    {

                        //Give me my axe I can throw at my foes!
                        Animation CastLeft = new Animation("Sprites/Units/ArcaneMage/ArcaneOrbLeft", 5, 1, 5, 200);
                        Animation CastRight = new Animation("Sprites/Units/ArcaneMage/ArcaneOrbRight", 5, 1, 5, 200);
                        mProjectileAnimationList.Add(CastLeft);
                        mProjectileAnimationList.Add(CastRight);
                    }
                    break;
                // THIS IS AN AXE THROWER PROJECTILE
                case ObjectType.AXE_THROWER_PROJECTILE:
                    {

                        //Give me my axe I can throw at my foes!
                        Animation CastLeft = new Animation("Sprites/Units/AxeThrower/AxeThrowerSpellLeft", 12, 1, 12, 100);
                        Animation CastRight = new Animation("Sprites/Units/AxeThrower/AxeThrowerSpellRight", 12, 1, 12, 100);

                        mProjectileAnimationList.Add(CastLeft);
                        mProjectileAnimationList.Add(CastRight);
                    }
                    break;
                case ObjectType.GOLD:
                    //TODO:
                    Animation GoldAnimation = new Animation("Sprites/ItemDrops/COIN", 59, 1, 59, 50);

                    mItemDropAnimation = GoldAnimation;

                    break;
                case ObjectType.HEALTH:
                    Animation HealthDropAnimation = new Animation("Sprites/ItemDrops/HealthPickupAnimation", 15, 1, 15, 200);

                    mItemDropAnimation = HealthDropAnimation;

                    break;
                default:
                    throw new ArgumentOutOfRangeException();
                    break;
            }
        }
示例#2
0
 public void AddAnimation(Animation animation)
 {
     mAnimationList.Add(animation);
     SetAnimation();
     mSprite.LoadContent();
 }