Beispiel #1
0
        public TestEnemy(LevelState parentWorld, Vector2 position)
        {
            this.position = position;

            dimensions = new Vector2(48f, 48f);

            state = EnemyState.Moving;

            direction_facing = GlobalGameConstants.Direction.Right;

            velocity = new Vector2(0.0f, 0.0f);

            change_direction_time       = 0.0f;
            change_direction            = 0;
            changeDirectionIdleDuration = 300f;

            this.parentWorld = parentWorld;

            enemy_life          = 10;
            enemy_damage        = 1;
            damage_player_time  = 0.0f;
            knockback_magnitude = 1.0f;

            walk_down                       = AnimationLib.loadNewAnimationSet("zippyDown");
            walk_right                      = AnimationLib.loadNewAnimationSet("zippyRight");
            walk_up                         = AnimationLib.loadNewAnimationSet("zippyUp");
            current_skeleton                = walk_right;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("run");
            current_skeleton.Skeleton.FlipX = false;
            enemyAnim                       = AnimationLib.getFrameAnimationSet("enemyPic");
            animation_time                  = 0.0f;
        }
Beispiel #2
0
        public IdleChaseEnemy(LevelState parentWorld, Vector2 position)
        {
            this.position         = position;
            dimensions            = new Vector2(48.0f, 48.0f);
            velocity              = new Vector2(0.0f, 0.0f);
            enemy_damage          = 10;
            enemy_life            = 15;
            distance              = 0.0f;
            angle                 = 0.0f;
            angle1                = 0.0f;
            angle2                = 0.0f;
            knockback_magnitude   = 2.0f;
            disable_movement_time = 0.0f;

            direction_facing      = GlobalGameConstants.Direction.Right;
            change_direction_time = 0.0f;
            enemy_found           = false;
            state = EnemyState.Idle;

            component = new IdleSearch();

            this.parentWorld = parentWorld;

            walk_down                       = AnimationLib.loadNewAnimationSet("chaseDown");
            walk_right                      = AnimationLib.loadNewAnimationSet("chaseRight");
            walk_up                         = AnimationLib.loadNewAnimationSet("chaseUp");
            current_skeleton                = walk_right;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("idle");
            current_skeleton.Skeleton.FlipX = false;
            chaseAnim                       = AnimationLib.getFrameAnimationSet("chasePic");
            animation_time                  = 0.0f;
        }
        public BroodLord(LevelState parentWorld, Vector2 position)
        {
            this.parentWorld = parentWorld;
            this.position    = position;
            this.dimensions  = GlobalGameConstants.TileSize * 1.5f;
            this.velocity    = Vector2.Zero;

            minions = new BroodLing[minionCount];
            for (int i = 0; i < minionCount; i++)
            {
                minions[i] = new BroodLing(parentWorld, Vector2.Zero, this);
                parentWorld.EntityList.Add(minions[i]);
            }

            broodState = BroodLordState.Idle;

            enemy_life = 25;
            enemy_type = EnemyType.Alien;

            prob_item_drop    = 0.45;
            number_drop_items = 4;

            anim           = AnimationLib.loadNewAnimationSet("broodlord");
            anim.Animation = anim.Skeleton.Data.FindAnimation("idle");
            animation_time = 0;

            deadCushySoundTimer = 0;
        }
Beispiel #4
0
        public AlienChaser(LevelState parentWorld, Vector2 position)
        {
            this.parentWorld = parentWorld;
            this.position    = position;
            this.dimensions  = GlobalGameConstants.TileSize;

            enemy_type  = EnemyType.Alien;
            enemy_life  = 15;
            chaserState = SlowChaserState.Idle;

            direction_facing = GlobalGameConstants.Direction.Down;

            animation_time = 0.0f;

            konamiAlert = AnimationLib.getFrameAnimationSet("konamiPic");

            number_drop_items = 4;
            prob_item_drop    = 0.3f;

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("alienChaserUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("alienChaserDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("alienChaserRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("alienChaserRight");
            for (int i = 0; i < 4; i++)
            {
                directionAnims[i].Animation = directionAnims[i].Skeleton.Data.FindAnimation("run");
            }

            aggressionTime = 0.0f;
        }
Beispiel #5
0
        public GuardMech(LevelState parentWorld, float initial_x, float initial_y)
        {
            position       = new Vector2(initial_x, initial_y);
            melee_position = Vector2.Zero;
            dimensions     = new Vector2(96, 120);
            velocity       = new Vector2(0.8f, 0.0f);
            flame_position = Vector2.Zero;

            windup_timer = 0.0f;
            angle        = 0.0f;
            turret_angle = angle;

            enemy_life                      = 75;
            disable_movement                = false;
            disable_movement_time           = 0.0f;
            enemy_found                     = false;
            change_direction_time           = 0.0f;
            this.parentWorld                = parentWorld;
            enemy_type                      = EnemyType.Guard;
            change_direction_time_threshold = 3000.0f;
            direction_facing                = GlobalGameConstants.Direction.Right;

            prob_item_drop    = 0.6;
            number_drop_items = 5;

            component                = new MoveSearch();
            mech_state               = MechState.Moving;
            enemy_type               = EnemyType.Guard;
            velocity_speed           = 3.0f;
            entity_found             = null;
            death                    = false;
            tank_hull_animation_time = 0.0f;
            explode_timer            = 0.0f;
            rocket_angle             = 0.0f;

            grenade = new Grenades(Vector2.Zero, 0.0f);

            walk_down                       = AnimationLib.loadNewAnimationSet("tankTurret");
            current_skeleton                = walk_down;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("idle");
            current_skeleton.Skeleton.FlipX = false;
            animation_time                  = 0.0f;
            range_distance                  = 600.0f;

            tankAnim           = AnimationLib.getFrameAnimationSet("tank");
            tankDeadAnim       = AnimationLib.getFrameAnimationSet("tankDead");
            plasmaExplode      = AnimationLib.getFrameAnimationSet("plasmaExplodeLong");
            tankTurretDeadAnim = AnimationLib.getFrameAnimationSet("tankTurretDead");
            rocketProjectile   = AnimationLib.getFrameAnimationSet("rocketProjectile");
        }
        public BroodLing(LevelState parentWorld, Vector2 position, BroodLord lord)
        {
            minionState      = BroodLingState.Dead;
            this.parentWorld = parentWorld;
            this.dimensions  = GlobalGameConstants.TileSize * 0.6f;
            this.lord        = lord;

            enemy_life = 0;
            enemy_type = EnemyType.Alien;

            animation_time = 0;

            anim    = AnimationLib.loadNewAnimationSet("broodling");
            eggAnim = AnimationLib.getFrameAnimationSet("broodEgg");
        }
Beispiel #7
0
        public GuardSquadLeader(LevelState parentWorld, float initial_x, float initial_y)
        {
            position   = new Vector2(initial_x, initial_y);
            dimensions = new Vector2(48.0f, 48.0f);
            velocity   = new Vector2(1.0f, 0f);

            component        = new MoveSearch();
            this.parentWorld = parentWorld;

            populateSquadMates();

            direction_facing = GlobalGameConstants.Direction.Right;
            state            = SquadLeaderState.Patrol;

            follow_point_1 = new Vector2((float)(CenterPoint.X + 64 * Math.Cos(-3 * Math.PI / 4)), (float)(CenterPoint.Y + 64 * Math.Sin(-3 * Math.PI / 4)));
            if (squad_mates[0] != null)
            {
                squad_mates[0].Follow_Point = follow_point_1;
            }
            if (squad_mates[1] != null)
            {
                squad_mates[1].Follow_Point = follow_point_2;
            }

            enemy_life                      = 30;
            enemy_damage                    = 5;
            disable_movement                = false;
            disable_movement_time           = 0.0f;
            enemy_found                     = false;
            change_direction_time           = 0.0f;
            range_distance                  = 400.0f;
            change_direction_time_threshold = 5000.0f;
            enemy_type                      = EnemyType.Guard;
            death        = false;
            windup_timer = 0.0f;

            prob_item_drop    = 0.4;
            number_drop_items = 4;

            walk_down                       = AnimationLib.loadNewAnimationSet("squadLeaderDown");
            walk_right                      = AnimationLib.loadNewAnimationSet("squadLeaderRight");
            walk_up                         = AnimationLib.loadNewAnimationSet("squadLeaderUp");
            current_skeleton                = walk_right;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("run");
            current_skeleton.Skeleton.FlipX = false;
            animation_time                  = 0.0f;
        }
Beispiel #8
0
        public MutantAcidSpitter(LevelState parentWorld, float initial_x, float initial_y)
        {
            position       = new Vector2(initial_x, initial_y);
            velocity_speed = 2.0f;
            velocity       = new Vector2(velocity_speed, 0);
            dimensions     = new Vector2(48.0f, 48.0f);

            enemy_damage                    = 4;
            enemy_life                      = 5;
            windup_timer                    = 0.0f;
            spitter_count                   = 0;
            change_direction_time           = 0.0f;
            change_direction_time_threshold = 1000.0f;
            angle          = 0.0f;
            range_distance = 500.0f;

            prob_item_drop    = 0.3;
            number_drop_items = 4;

            state            = SpitterState.Search;
            this.parentWorld = parentWorld;
            direction_facing = GlobalGameConstants.Direction.Right;
            enemy_type       = EnemyType.Alien;
            entity_found     = null;
            acid_pool        = AnimationLib.getFrameAnimationSet("acidPool");

            for (int i = 0; i < size_of_spit_array; i++)
            {
                projectile[i]        = new SpitProjectile(new Vector2(0, 0), 0);
                projectile[i].active = false;
            }

            death = false;

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("acidSpitterUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("acidSpitterDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("acidSpitterRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("acidSpitterRight");

            for (int i = 0; i < 4; i++)
            {
                directionAnims[i].Animation = directionAnims[i].Skeleton.Data.FindAnimation("run");
            }
        }
        public ChargerMutantEnemy(LevelState parentWorld, Vector2 position)
        {
            this.position = position;
            dimensions    = new Vector2(32f, 96.0f);
            velocity      = Vector2.Zero;

            disable_movement      = false;
            disable_movement_time = 0.0f;
            windup_timer          = 0.0f;
            knockback_magnitude   = 8.0f;
            enemy_damage          = 15;
            enemy_life            = 20;
            enemy_found           = false;
            change_direction_time = 0.0f;
            range_distance        = 300.0f;
            charge_timer          = 0.0f;
            alert_timer           = 0.0f;
            range_distance        = 600f;
            sound_timer           = 0.0f;
            play_sound            = true;

            prob_item_drop    = 0.6;
            number_drop_items = 5;

            entity_found = null;
            state        = ChargerState.search;
            enemy_type   = EnemyType.Prisoner;
            component    = new IdleSearch();

            sound_alert = false;

            direction_facing = (GlobalGameConstants.Direction)(Game1.rand.Next() % 4);

            this.parentWorld = parentWorld;

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("chargerUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("chargerDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("chargerRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("chargerRight");
            for (int i = 0; i < 4; i++)
            {
                directionAnims[i].Animation = directionAnims[i].Skeleton.Data.FindAnimation("idle");
            }
        }
        public MolotovEnemy(LevelState parentWorld, Vector2 position)
        {
            this.parentWorld = parentWorld;
            this.position    = position;
            this.dimensions  = GlobalGameConstants.TileSize;

            entity_found = null;

            molotovState     = MolotovState.MoveWait;
            moveWaitStepping = false;
            moveWaitTimer    = 0.0f;

            flame        = new MolotovFlame(position);
            flame.active = false;

            this.enemy_type = EnemyType.Prisoner;

            direction_facing = (GlobalGameConstants.Direction)(Game1.rand.Next() % 4);

            range_distance = 400.0f;

            health = 15;

            prob_item_drop    = 0.3;
            number_drop_items = 3;

            templateAnim   = AnimationLib.getFrameAnimationSet("molotov");
            flameAnim      = AnimationLib.getFrameAnimationSet("molotovFlame");
            animation_time = 0.0f;

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("molotovUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("molotovDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("molotovRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("molotovRight");

            for (int i = 0; i < 4; i++)
            {
                directionAnims[i].Animation = directionAnims[i].Skeleton.Data.FindAnimation("run");
            }

            enemy_type = EnemyType.Prisoner;
        }
        public BallMutant(LevelState parentWorld, float initial_x, float initial_y)
        {
            position        = new Vector2(initial_x, initial_y);
            dimensions      = new Vector2(48f, 48f);
            velocity        = Vector2.Zero;
            ball_coordinate = Vector2.Zero;

            state            = mutantBallState.Search;
            component        = new IdleSearch();
            direction_facing = GlobalGameConstants.Direction.Right;

            radius = 0.0f;
            angle  = 0.0f;
            change_direction_time = 0.0f;
            agressive_timer       = 0.0f;
            distance            = 0.0f;
            alert_timer         = 0.0f;
            knockback_magnitude = 5.0f;
            range_distance      = 250.0f;

            this.parentWorld = parentWorld;

            death = false;

            enemy_damage = 5;
            enemy_life   = 5;
            enemy_type   = EnemyType.Alien;

            prob_item_drop    = 0.4;
            number_drop_items = 4;

            walk_down                       = AnimationLib.loadNewAnimationSet("ballMutantUp");
            walk_right                      = AnimationLib.loadNewAnimationSet("ballMutantRight");
            walk_up                         = AnimationLib.loadNewAnimationSet("ballMutantUp");
            current_skeleton                = walk_right;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("run");
            current_skeleton.Skeleton.FlipX = false;
            //chaseAnim = AnimationLib.getFrameAnimationSet("chasePic");
            animation_time = 0.0f;

            entity_found = null;

            chain_ball = AnimationLib.getFrameAnimationSet("snakeB");
        }
        public PatrolGuard(LevelState parentWorld, Vector2 position)
        {
            this.parentWorld = parentWorld;
            this.position    = position;
            this.dimensions  = GlobalGameConstants.TileSize;

            bulletAnim = AnimationLib.getFrameAnimationSet("testBullet");

            deadCushySoundTimer = 0;

            bullets = new GunBullet[bulletSupply];
            for (int i = 0; i < bulletSupply; i++)
            {
                bullets[i].active = false;
            }

            direction_facing = GlobalGameConstants.Direction.Down;
            guardState       = PatrolGuardState.MoveWait;
            enemy_type       = EnemyType.Guard;

            prob_item_drop    = 0.3;
            number_drop_items = 3;

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("patrolUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("patrolDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("patrolRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("patrolRight");
            for (int i = 0; i < 4; i++)
            {
                directionAnims[i].Animation = directionAnims[i].Skeleton.Data.FindAnimation("run");
            }

            health = 15;

            //calculate the center of the chunk you're placed in
            chunkCenter.X = (((int)((position.X / (GlobalGameConstants.TileSize.X)) / GlobalGameConstants.TilesPerRoomWide)) * GlobalGameConstants.TilesPerRoomWide * GlobalGameConstants.TileSize.X) + ((GlobalGameConstants.TilesPerRoomWide / 2) * GlobalGameConstants.TileSize.X);
            chunkCenter.Y = (((int)((position.Y / (GlobalGameConstants.TileSize.Y)) / GlobalGameConstants.TilesPerRoomHigh)) * GlobalGameConstants.TilesPerRoomHigh * GlobalGameConstants.TileSize.Y) + ((GlobalGameConstants.TilesPerRoomHigh / 2) * GlobalGameConstants.TileSize.Y);

            retreatTimer = 0;
        }
        public HookPrisonerEnemy(LevelState parentWorld, float initial_x, float initial_y)
        {
            position         = new Vector2(initial_x, initial_y);
            dimensions       = new Vector2(32f, 90.0f);
            velocity         = Vector2.Zero;
            chain_velocity   = Vector2.Zero;
            chain_dimensions = new Vector2(10.0f, 10.0f);
            chain_position   = position;

            disable_movement      = false;
            disable_movement_time = 0.0f;
            knockback_magnitude   = 10.0f;
            enemy_damage          = 20;
            enemy_life            = 25;
            enemy_found           = false;
            change_direction_time = 0.0f;
            range_distance        = 300.0f;
            angle          = 0.0f;
            animation_time = 0.0f;

            prob_item_drop    = 0.5;
            number_drop_items = 5;

            state      = ChainState.Moving;
            enemy_type = EnemyType.Prisoner;
            component  = new MoveSearch();
            en_chained = null;
            death      = false;

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("hookUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("hookDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("hookRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("hookRight");

            hook = AnimationLib.getFrameAnimationSet("hook");

            this.parentWorld = parentWorld;
        }
        public ChaseEnemy(LevelState parentWorld, float initial_x, float initial_y)
        {
            this.position  = new Vector2(initial_x, initial_y);
            enemy_speed    = 2.0f;
            velocity       = new Vector2(0.0f, -1.0f * enemy_speed);
            dimensions     = new Vector2(48f, 48f);
            sword_hitbox   = new Vector2(48f, 48f);
            sword_position = position;

            state                 = ChaseState.search;
            chaseComponent        = new Chase();
            searchComponent       = new MoveSearch();
            component             = searchComponent;
            direction_facing      = GlobalGameConstants.Direction.Up;
            change_direction_time = 0.0f;
            this.parentWorld      = parentWorld;
            enemy_found           = false;
            player_in_range       = false;
            chase_target          = null;
            play_sound            = true;

            enemy_type          = EnemyType.Prisoner;
            enemy_damage        = 1;
            enemy_life          = 15;
            knockback_magnitude = 5.0f;
            wind_anim           = 0.0f;
            number_drop_items   = 3;
            prob_item_drop      = 0.3;

            walk_down                       = AnimationLib.loadNewAnimationSet("chaseDown");
            walk_right                      = AnimationLib.loadNewAnimationSet("chaseRight");
            walk_up                         = AnimationLib.loadNewAnimationSet("chaseUp");
            current_skeleton                = walk_up;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("run");
            current_skeleton.Skeleton.FlipX = false;
            chaseAnim                       = AnimationLib.getFrameAnimationSet("chasePic");
            animation_time                  = 0.0f;
        }
Beispiel #15
0
        public GuardSquadSoldiers(LevelState parentWorld, float initial_x, float initial_y)
        {
            position   = new Vector2(initial_x, initial_y);
            dimensions = new Vector2(48.0f, 48.0f);
            velocity   = new Vector2(0.0f, 0.0f);

            enemy_damage          = 20;
            enemy_life            = 30;
            knockback_magnitude   = 2.0f;
            disable_movement      = false;
            disable_movement_time = 0.0f;
            enemy_found           = false;
            change_direction_time = 0.0f;
            range_distance        = 300.0f;
            wind_up_timer         = 0.0f;
            bullet_count          = 0;
            bullet_timer          = 0.0f;
            firing_timer          = 0.0f;
            sight_angle1          = 1.047f;
            sight_angle2          = 2.094f;

            reset_state_flag = false;
            this.parentWorld = parentWorld;
            change_direction_time_threshold = 4000.0f;
            enemy_type = EnemyType.Guard;

            prob_item_drop    = 0.6;
            number_drop_items = 5;

            walk_down                       = AnimationLib.loadNewAnimationSet("squadSoldierDown");
            walk_right                      = AnimationLib.loadNewAnimationSet("squadSoldierRight");
            walk_up                         = AnimationLib.loadNewAnimationSet("squadSoldierUp");
            current_skeleton                = walk_right;
            current_skeleton.Animation      = current_skeleton.Skeleton.Data.FindAnimation("run");
            current_skeleton.Skeleton.FlipX = false;
            animation_time                  = 0.0f;
        }
        public ShopKeeper(LevelState parentWorld, Vector2 position)
        {
            this.parentWorld = parentWorld;
            this.position    = position;
            this.velocity    = Vector2.Zero;
            this.dimensions  = GlobalGameConstants.TileSize;

            this.direction_facing = GlobalGameConstants.Direction.Down;

            greetingMessage = "Welcome to " + CampaignLobbyState.randomNames[Game1.rand.Next() % CampaignLobbyState.randomNames.Length] + "'s shop!";
            playerInRange   = false;

            state = ShopKeeperState.Normal;

            health              = 40;
            projectile          = new FireBall(new Vector2(-10, -10), 0.0f);
            projectile.active   = false;
            fireballDelayPassed = 0.0f;

            switchItemPressed = false;

            shopKeeperFrameAnimationTest = AnimationLib.getFrameAnimationSet("fireball");
            buyPic         = AnimationLib.getFrameAnimationSet("buyPic");
            leftBuyButton  = AnimationLib.getFrameAnimationSet("gamepadLB");
            rightBuyButton = AnimationLib.getFrameAnimationSet("gamepadRB");

            //test shop data for now
            {
                for (int i = 0; i < 3; i++)
                {
                    int rValue = Game1.rand.Next() % 14;
                    if (rValue == 9)
                    {
                        rValue = 4;
                    }                                // casting an int to item enum; no index for 9

                    itemsForSale[i] = (GlobalGameConstants.itemType)rValue;
                }

                for (int i = 0; i < 3; i++)
                {
                    itemPrices[i] = GlobalGameConstants.WeaponDictionary.weaponInfo[(int)itemsForSale[i]].price;
                    itemIcons[i]  = GlobalGameConstants.WeaponDictionary.weaponInfo[(int)itemsForSale[i]].pickupImage;
                }
            }

            items[0] = new Pickup(parentWorld, new Vector2(-500, -500), itemsForSale[0]);
            items[1] = new Pickup(parentWorld, new Vector2(-500, -500), itemsForSale[1]);
            items[2] = new Pickup(parentWorld, new Vector2(-500, -500), itemsForSale[2]);
            parentWorld.EntityList.AddRange(items);

            directionAnims = new AnimationLib.SpineAnimationSet[4];
            directionAnims[(int)GlobalGameConstants.Direction.Up]   = AnimationLib.loadNewAnimationSet("shopUp");
            directionAnims[(int)GlobalGameConstants.Direction.Down] = AnimationLib.loadNewAnimationSet("shopDown");
            directionAnims[(int)GlobalGameConstants.Direction.Left] = AnimationLib.loadNewAnimationSet("shopRight");
            directionAnims[(int)GlobalGameConstants.Direction.Left].Skeleton.FlipX = true;
            directionAnims[(int)GlobalGameConstants.Direction.Right] = AnimationLib.loadNewAnimationSet("shopRight");
            for (int i = 0; i < 4; i++)
            {
                directionAnims[i].Animation = directionAnims[i].Skeleton.Data.FindAnimation("idle");
            }

            for (int i = 0; i < 3; i++)
            {
                InGameGUI.prices[i].active      = true;
                InGameGUI.prices[i].description = GlobalGameConstants.WeaponDictionary.weaponInfo[(int)itemsForSale[i]].name;
                InGameGUI.prices[i].price       = GlobalGameConstants.WeaponDictionary.weaponInfo[(int)itemsForSale[i]].price.ToString();
                InGameGUI.prices[i].position    = position + new Vector2((-3 * GlobalGameConstants.TileSize.X) + (i * 3f * GlobalGameConstants.TileSize.X), (2.5f * GlobalGameConstants.TileSize.Y)) - (Game1.tenbyFive14.MeasureString(InGameGUI.prices[i].price) / 2) + new Vector2(0, 16);
            }
        }
        public Player(LevelState parentWorld, float initial_x, float initial_y, InputDevice2.PPG_Player index)
        {
            position = new Vector2(initial_x, initial_y);

            dimensions = new Vector2(32.0f, 58.5f);

            velocity = Vector2.Zero;

            if (index == InputDevice2.PPG_Player.Player_1)
            {
                Player_Right_Item = getItemWhenLoading(GameCampaign.Player_Right_Item);
                Player_Left_Item  = getItemWhenLoading(GameCampaign.Player_Left_Item);
            }
            else if (index == InputDevice2.PPG_Player.Player_2)
            {
                Player_Right_Item = getItemWhenLoading(GameCampaign.Player2_Item_1);
                Player_Left_Item  = getItemWhenLoading(GameCampaign.Player2_Item_2);
            }

            state = playerState.Moving;

            disable_movement = false;

            direction_facing = GlobalGameConstants.Direction.Down;

            this.parentWorld = parentWorld;

            if (index == InputDevice2.PPG_Player.Player_1)
            {
                if (GameCampaign.PlayerColor == 0)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("jensenDown");
                    walk_right = AnimationLib.loadNewAnimationSet("jensenRight");
                    walk_left  = AnimationLib.loadNewAnimationSet("jensenRight");
                    walk_up    = AnimationLib.loadNewAnimationSet("jensenUp");
                }
                else if (GameCampaign.PlayerColor == 1)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("jensenDown_RED");
                    walk_right = AnimationLib.loadNewAnimationSet("jensenRight_RED");
                    walk_left  = AnimationLib.loadNewAnimationSet("jensenRight_RED");
                    walk_up    = AnimationLib.loadNewAnimationSet("jensenUp_RED");
                }
                else if (GameCampaign.PlayerColor == 2)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("jensenDown_PURPLE");
                    walk_right = AnimationLib.loadNewAnimationSet("jensenRight_PURPLE");
                    walk_left  = AnimationLib.loadNewAnimationSet("jensenRight_PURPLE");
                    walk_up    = AnimationLib.loadNewAnimationSet("jensenUp_PURPLE");
                }
                else if (GameCampaign.PlayerColor == 3)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("jensenDown_BLUE");
                    walk_right = AnimationLib.loadNewAnimationSet("jensenRight_BLUE");
                    walk_left  = AnimationLib.loadNewAnimationSet("jensenRight_BLUE");
                    walk_up    = AnimationLib.loadNewAnimationSet("jensenUp_BLUE");
                }
                else if (GameCampaign.PlayerColor == 4)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("jensenDown_CYAN");
                    walk_right = AnimationLib.loadNewAnimationSet("jensenRight_CYAN");
                    walk_left  = AnimationLib.loadNewAnimationSet("jensenRight_CYAN");
                    walk_up    = AnimationLib.loadNewAnimationSet("jensenUp_CYAN");
                }
                else if (GameCampaign.PlayerColor == 5)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("jensenDown_BROWN");
                    walk_right = AnimationLib.loadNewAnimationSet("jensenRight_BROWN");
                    walk_left  = AnimationLib.loadNewAnimationSet("jensenRight_BROWN");
                    walk_up    = AnimationLib.loadNewAnimationSet("jensenUp_BROWN");
                }
            }
            else if (index == InputDevice2.PPG_Player.Player_2)
            {
                if (GameCampaign.Player2Color == 0)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("femaleJensenDown");
                    walk_right = AnimationLib.loadNewAnimationSet("femaleJensenRight");
                    walk_left  = AnimationLib.loadNewAnimationSet("femaleJensenRight");
                    walk_up    = AnimationLib.loadNewAnimationSet("femaleJensenUp");
                }
                else if (GameCampaign.Player2Color == 1)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("femaleJensenDown_RED");
                    walk_right = AnimationLib.loadNewAnimationSet("femaleJensenRight_RED");
                    walk_left  = AnimationLib.loadNewAnimationSet("femaleJensenRight_RED");
                    walk_up    = AnimationLib.loadNewAnimationSet("femaleJensenUp_RED");
                }
                else if (GameCampaign.Player2Color == 2)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("femaleJensenDown_PURPLE");
                    walk_right = AnimationLib.loadNewAnimationSet("femaleJensenRight_PURPLE");
                    walk_left  = AnimationLib.loadNewAnimationSet("femaleJensenRight_PURPLE");
                    walk_up    = AnimationLib.loadNewAnimationSet("femaleJensenUp_PURPLE");
                }
                else if (GameCampaign.Player2Color == 3)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("femaleJensenDown_BLUE");
                    walk_right = AnimationLib.loadNewAnimationSet("femaleJensenRight_BLUE");
                    walk_left  = AnimationLib.loadNewAnimationSet("femaleJensenRight_BLUE");
                    walk_up    = AnimationLib.loadNewAnimationSet("femaleJensenUp_BLUE");
                }
                else if (GameCampaign.Player2Color == 4)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("femaleJensenDown_CYAN");
                    walk_right = AnimationLib.loadNewAnimationSet("femaleJensenRight_CYAN");
                    walk_left  = AnimationLib.loadNewAnimationSet("femaleJensenRight_CYAN");
                    walk_up    = AnimationLib.loadNewAnimationSet("femaleJensenUp_CYAN");
                }
                else if (GameCampaign.Player2Color == 5)
                {
                    walk_down  = AnimationLib.loadNewAnimationSet("femaleJensenDown_BROWN");
                    walk_right = AnimationLib.loadNewAnimationSet("femaleJensenRight_BROWN");
                    walk_left  = AnimationLib.loadNewAnimationSet("femaleJensenRight_BROWN");
                    walk_up    = AnimationLib.loadNewAnimationSet("femaleJensenUp_BROWN");
                }
            }

            remove_from_list           = false;
            current_skeleton           = walk_right;
            current_skeleton.Animation = current_skeleton.Skeleton.Data.FindAnimation("run");

            death = false;

            enemy_type = EnemyType.Player;

            this.index = index;

            setAnimationWeapons(walk_down, GlobalGameConstants.Direction.Right);
            setAnimationWeapons(walk_right, GlobalGameConstants.Direction.Right);
            setAnimationWeapons(walk_left, GlobalGameConstants.Direction.Left);
            setAnimationWeapons(walk_up, GlobalGameConstants.Direction.Right);
        }