public PlayerCursor(int playernumber, CursorPosition pos, ControlSet contr, string tokenloc, string slotloc, Vector2 corner)
 {
     this.Position = pos;
     this.control = contr;
     Token = new Texture(tokenloc);
     Slot = new Texture(slotloc, false);
     this.Corner = corner;
     this.PlayerNumber = playernumber;
     State = CursorState.PokemonSelect;
 }
        public void Initialize()
        {
            /* Pokemon Slots */
            PokemonSlots = new PokemonSlot[SlotXCount, SlotYCount];
            for (int x = 0; x < SlotXCount; x++) {
                for (int y = 0; y < SlotYCount; y++) {
                    PokemonSlots[x, y] = new PokemonSlot();
                    PokemonSlots[x, y].Size = SlotSize;
                    PokemonSlots[x, y].Position = new Vector2(((SlotSize.X + SlotSeperation.X) * x) + SlotOffset.X,
                                                              ((SlotSize.Y + SlotSeperation.Y) * y) + SlotOffset.Y);
                }
            }

            //Portraits
            int xslot = 0;
            int yslot = 0;
            foreach (var kvp in PokemonManager.Pokemons) {
                string Name = kvp.Key;
                Pokemon pokemon = kvp.Value;
                Animation2D anim = new Animation2D(pokemon.Animation);
                anim.state.SetAnimation("idle", true);
                PokemonSlots[xslot, yslot].Pokemon = pokemon;
                PokemonSlots[xslot, yslot].Animation = anim;

                if (++xslot >= SlotXCount) {
                    xslot = 0;
                    yslot++;
                }
            }

            CursorPosition p1c = new CursorPosition(0, 0, SlotXCount - 1, SlotYCount - 1);
            CursorPosition p2c = new CursorPosition(4, 0, SlotXCount - 1, SlotYCount - 1);
            if (preselect) {
                for (int x = 0; x < SlotXCount; x++) {
                    for (int y = 0; y < SlotYCount; y++) {
                        if (PokemonSlots[x, y].Pokemon == null) {
                            continue;
                        }

                        if (PokemonSlots[x, y].Pokemon.Name == player1pre) {
                            p1c.X = x;
                            p1c.Y = y;
                        }

                        if (PokemonSlots[x, y].Pokemon.Name == player2pre) {
                            p2c.X = x;
                            p2c.Y = y;
                        }
                    }
                }
            }

            cursors = new PlayerCursor[2];
            cursors[0] = new PlayerCursor(0, p1c, Controls.Player1, @"Data\Pokeball.png", @"Data\RedSlot.png", new Vector2(0, 1));
            cursors[1] = new PlayerCursor(1, p2c, Controls.Player2, @"Data\Greatball.png", @"Data\BlueSlot.png", new Vector2(1, 1));

            Camera = new Camera2D();
            Camera.OnRender += new GraphicsManager.Renderer(Draw);

            MoveLists[0] = new MoveList();
            MoveLists[1] = new MoveList();
        }