package com.sslab.pokemon;
import com.sslab.pokemon.data.PokemonIndividualData;
import com.sslab.pokemon.data.PokemonSpeciesData;
import com.sslab.pokemon.data.PokemonValueData;
import com.sslab.pokemon.sprite.PokemonSprite;
import com.sun.prism.*;
import javax.swing.*;
import java.awt.*;
import java.awt.Graphics;
import java.awt.event.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringJoiner;
/**
* Created by jerry on 2017/3/19.
*/
public class PokeGen {
private JPanel currentSelectedPanel
; private ArrayList<JTextField> statFields;
private String nickName
= nickNameField.
getText(); private String[] dataslot0
={"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"0"};//hp,atk,def,spatk,spdef,speed,nickname,unsaved_flag private String[] dataslot1
={"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"0"}; private String[] dataslot2
={"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"0"}; private String[] dataslot3
={"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"0"}; private String[] dataslot4
={"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"0"}; private String[] dataslot5
={"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"0"};
private int indexofslot=-1;
private int id = 803;
//private String[] type;
Pokedex pokedex;
HashMap
<JPanel, PokemonIndividualData
> pokemonMap
; private ArrayList
<String[]> dataslot
; private ArrayList
<String[]> type
; public PokeGen() {
dataslot = new ArrayList<>();
statFields = new ArrayList<>();
type = new ArrayList<>();
statFields.add(nickNameField);
statFields.add(hpField);
statFields.add(atkField);
statFields.add(defField);
statFields.add(spAtkField);
statFields.add(spDefField);
statFields.add(speedField);
dataslot.add(dataslot0);
dataslot.add(dataslot1);
dataslot.add(dataslot2);
dataslot.add(dataslot3);
dataslot.add(dataslot4);
dataslot.add(dataslot5);
type.add(type0);
type.add(type1);
type.add(type2);
type.add(type3);
type.add(type4);
type.add(type5);
/*
String hp = hpField.getText();
String atk = atkField.getText();
String def = defField.getText();
String spAtk = spAtkField.getText();
String spdef = spDefField.getText();
String speed = speedField.getText();
System.out.println(hp);
System.out.println(atk);
System.out.println(def);
System.out.println(spAtk);
System.out.println(spdef);
System.out.println(speed);
*/
pokedex = new Pokedex("bin/pokemonData.json");
for(int i=0;i<pokedex.getPokemonSize();i++)
{
speciesComboBox.addItem(pokedex.getPokemonData(i).getId()+": "+pokedex.getPokemonData(i).getSpeciesName());
}
/*
Integer hpint = Integer.parseInt(hp);
Integer atkint = Integer.parseInt(atk);
Integer defint = Integer.parseInt(def);
Integer spAtkint = Integer.parseInt(spAtk);
Integer spDefint = Integer.parseInt(spdef);
Integer speedint = Integer.parseInt(speed);
*/
/*
Integer hpint = 0;
Integer atkint = 0;
Integer defint = 0;
Integer spAtkint = 0;
Integer spDefint = 0;
Integer speedint = 0;*/
//int[] valuedataArray = {hpint,atkint,defint,spAtkint,spDefint,speedint};
//PokemonValueData add = new PokemonValueData(valuedataArray);
//pokedex.addNewPokemon(id,nickName,valuedataArray,type);
@Override
try {
if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0]=hpField.getText();
dataslot.get(indexofslot)[1]=atkField.getText();
dataslot.get(indexofslot)[2]=defField.getText();
dataslot.get(indexofslot)[3]=spAtkField.getText();
dataslot.get(indexofslot)[4]=spDefField.getText();
dataslot.get(indexofslot)[5]=speedField.getText();
dataslot.get(indexofslot)[6]=nickNameField.getText();
dataslot.get(indexofslot)[7]="1";
System.
out.
println("indexofslot: "+indexofslot
); }
for(int i=0;i<6;i++)
{
boolean unchange=true;
for(int j=0;j<7;j++)
{
if(!dataslot.get(i)[j].equals("-1"))
{
unchange=false;
}
}
System.
out.
println(dataslot.
get(i
)[6]+" : "+dataslot.
get(i
)[7]); if((!dataslot.get(i)[0].equals("-1"))&&dataslot.get(i)[7].equals("1"))
{
hp=dataslot.get(i)[0];
atk=dataslot.get(i)[1];
def=dataslot.get(i)[2];
spAtk=dataslot.get(i)[3];
spdef=dataslot.get(i)[4];
speed=dataslot.get(i)[5];
nickName=dataslot.get(i)[6];
dataslot.get(i)[7]="0";
}
else continue;
spAtkint
= Integer.
parseInt(spAtk
); spDefint
= Integer.
parseInt(spdef
); speedint
= Integer.
parseInt(speed
); int[] valuedataArray = {hpint,atkint,defint,spAtkint,spDefint,speedint};
pokedex.addNewPokemon(id,nickName,valuedataArray,type.get(i));
id=id+1;
}
/*
nickName = nickNameField.getText();
hp = hpField.getText();
atk = atkField.getText();
def = defField.getText();
spAtk = spAtkField.getText();
spdef = spDefField.getText();
speed = speedField.getText();
hpint = Integer.parseInt(hp);
atkint = Integer.parseInt(atk);
defint = Integer.parseInt(def);
spAtkint = Integer.parseInt(spAtk);
spDefint = Integer.parseInt(spdef);
speedint = Integer.parseInt(speed);
int[] valuedataArray = {hpint,atkint,defint,spAtkint,spDefint,speedint};
pokedex.addNewPokemon(id,nickName,valuedataArray,type);
id=id+1;
*/
pokedex.saveFile("bin/morris_new_pokemon.json");
e1.printStackTrace();
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
@Override
}
@Override
}
@Override
}
@Override
}
@Override
}
});
speciesComboBox.setSelectedIndex(0);
@Override
/*
int id = speciesComboBox.getSelectedIndex();
String a = String.valueOf(pokedex.getPokemonData(id).getSpeciesValue().getValArray()[0]);
hpField.setText(a);
String b= String.valueOf(pokedex.getPokemonData(id).getSpeciesValue().getValArray()[1]);
atkField.setText(b);
String c= String.valueOf(pokedex.getPokemonData(id).getSpeciesValue().getValArray()[2]);
defField.setText(c);
String d= String.valueOf(pokedex.getPokemonData(id).getSpeciesValue().getValArray()[3]);
spAtkField.setText(d);
String f= String.valueOf(pokedex.getPokemonData(id).getSpeciesValue().getValArray()[4]);
spDefField.setText(f);
String g= String.valueOf(pokedex.getPokemonData(id).getSpeciesValue().getValArray()[5]);
speedField.setText(g);
*/
int id = speciesComboBox.getSelectedIndex();
//type = pokedex.getPokemonData(id).getType2();
if(indexofslot!=-1)
{
if(indexofslot==0)
{
type0=pokedex.getPokemonData(id).getType2();
}
else if(indexofslot==1)
{
type1=pokedex.getPokemonData(id).getType2();
}
else if(indexofslot==2)
{
type2=pokedex.getPokemonData(id).getType2();
}
else if(indexofslot==3)
{
type3=pokedex.getPokemonData(id).getType2();
}
else if(indexofslot==4)
{
type4=pokedex.getPokemonData(id).getType2();
}
else if(indexofslot==5)
{
type5=pokedex.getPokemonData(id).getType2();
}
}
if(currentSelectedPanel.equals(slot0))
{
setPokemonIcon(id,s0lb);
}
else if(currentSelectedPanel.equals(slot1))
{
setPokemonIcon(id,s1lb);
}
else if(currentSelectedPanel.equals(slot2))
{
setPokemonIcon(id,s2lb);
}
else if(currentSelectedPanel.equals(slot3))
{
setPokemonIcon(id,s3lb);
}
else if(currentSelectedPanel.equals(slot4))
{
setPokemonIcon(id,s4lb);
}
else if(currentSelectedPanel.equals(slot5))
{
setPokemonIcon(id,s5lb);
}
}
});
@Override
currentSelectedPanel = slot0;
System.
out.
println("Now you are clicking slot0"); if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0] = hpField.getText();
dataslot.get(indexofslot)[1] = atkField.getText();
dataslot.get(indexofslot)[2] = defField.getText();
dataslot.get(indexofslot)[3] = spAtkField.getText();
dataslot.get(indexofslot)[4] = spDefField.getText();
dataslot.get(indexofslot)[5] = speedField.getText();
dataslot.get(indexofslot)[6] = nickNameField.getText();
dataslot.get(indexofslot)[7] = "0";
}
indexofslot=0;
if(!dataslot.get(indexofslot)[0].equals("-1"))
{
nickNameField.setText(dataslot.get(indexofslot)[6]);
hpField.setText(dataslot.get(indexofslot)[0]);
atkField.setText(dataslot.get(indexofslot)[1]);
defField.setText(dataslot.get(indexofslot)[2]);
spAtkField.setText(dataslot.get(indexofslot)[3]);
spDefField.setText(dataslot.get(indexofslot)[4]);
speedField.setText(dataslot.get(indexofslot)[5]);
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
@Override
currentSelectedPanel = slot1;
System.
out.
println("Now you are clicking slot1");
if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0] = hpField.getText();
dataslot.get(indexofslot)[1] = atkField.getText();
dataslot.get(indexofslot)[2] = defField.getText();
dataslot.get(indexofslot)[3] = spAtkField.getText();
dataslot.get(indexofslot)[4] = spDefField.getText();
dataslot.get(indexofslot)[5] = speedField.getText();
dataslot.get(indexofslot)[6] = nickNameField.getText();
dataslot.get(indexofslot)[7] = "0";
}
indexofslot=1;
if(!dataslot.get(indexofslot)[0].equals("-1"))
{
nickNameField.setText(dataslot.get(indexofslot)[6]);
hpField.setText(dataslot.get(indexofslot)[0]);
atkField.setText(dataslot.get(indexofslot)[1]);
defField.setText(dataslot.get(indexofslot)[2]);
spAtkField.setText(dataslot.get(indexofslot)[3]);
spDefField.setText(dataslot.get(indexofslot)[4]);
speedField.setText(dataslot.get(indexofslot)[5]);
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
@Override
currentSelectedPanel = slot2;
System.
out.
println("Now you are clicking slot2");
if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0] = hpField.getText();
dataslot.get(indexofslot)[1] = atkField.getText();
dataslot.get(indexofslot)[2] = defField.getText();
dataslot.get(indexofslot)[3] = spAtkField.getText();
dataslot.get(indexofslot)[4] = spDefField.getText();
dataslot.get(indexofslot)[5] = speedField.getText();
dataslot.get(indexofslot)[6] = nickNameField.getText();
dataslot.get(indexofslot)[7] = "0";
}
indexofslot=2;
if(!dataslot.get(indexofslot)[0].equals("-1"))
{
nickNameField.setText(dataslot.get(indexofslot)[6]);
hpField.setText(dataslot.get(indexofslot)[0]);
atkField.setText(dataslot.get(indexofslot)[1]);
defField.setText(dataslot.get(indexofslot)[2]);
spAtkField.setText(dataslot.get(indexofslot)[3]);
spDefField.setText(dataslot.get(indexofslot)[4]);
speedField.setText(dataslot.get(indexofslot)[5]);
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
@Override
currentSelectedPanel = slot3;
System.
out.
println("Now you are clicking slot3");
if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0] = hpField.getText();
dataslot.get(indexofslot)[1] = atkField.getText();
dataslot.get(indexofslot)[2] = defField.getText();
dataslot.get(indexofslot)[3] = spAtkField.getText();
dataslot.get(indexofslot)[4] = spDefField.getText();
dataslot.get(indexofslot)[5] = speedField.getText();
dataslot.get(indexofslot)[6] = nickNameField.getText();
dataslot.get(indexofslot)[7] = "0";
}
indexofslot=3;
if(!dataslot.get(indexofslot)[0].equals("-1"))
{
nickNameField.setText(dataslot.get(indexofslot)[6]);
hpField.setText(dataslot.get(indexofslot)[0]);
atkField.setText(dataslot.get(indexofslot)[1]);
defField.setText(dataslot.get(indexofslot)[2]);
spAtkField.setText(dataslot.get(indexofslot)[3]);
spDefField.setText(dataslot.get(indexofslot)[4]);
speedField.setText(dataslot.get(indexofslot)[5]);
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
@Override
currentSelectedPanel = slot4;
System.
out.
println("Now you are clicking slot4");
if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0] = hpField.getText();
dataslot.get(indexofslot)[1] = atkField.getText();
dataslot.get(indexofslot)[2] = defField.getText();
dataslot.get(indexofslot)[3] = spAtkField.getText();
dataslot.get(indexofslot)[4] = spDefField.getText();
dataslot.get(indexofslot)[5] = speedField.getText();
dataslot.get(indexofslot)[6] = nickNameField.getText();
dataslot.get(indexofslot)[7] = "0";
}
indexofslot=4;
if(!dataslot.get(indexofslot)[0].equals("-1"))
{
nickNameField.setText(dataslot.get(indexofslot)[6]);
hpField.setText(dataslot.get(indexofslot)[0]);
atkField.setText(dataslot.get(indexofslot)[1]);
defField.setText(dataslot.get(indexofslot)[2]);
spAtkField.setText(dataslot.get(indexofslot)[3]);
spDefField.setText(dataslot.get(indexofslot)[4]);
speedField.setText(dataslot.get(indexofslot)[5]);
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
@Override
currentSelectedPanel = slot5;
System.
out.
println("Now you are clicking slot5");
if(indexofslot!=-1)
{
dataslot.get(indexofslot)[0] = hpField.getText();
dataslot.get(indexofslot)[1] = atkField.getText();
dataslot.get(indexofslot)[2] = defField.getText();
dataslot.get(indexofslot)[3] = spAtkField.getText();
dataslot.get(indexofslot)[4] = spDefField.getText();
dataslot.get(indexofslot)[5] = speedField.getText();
dataslot.get(indexofslot)[6] = nickNameField.getText();
dataslot.get(indexofslot)[7] = "0";
}
indexofslot=5;
if(!dataslot.get(indexofslot)[0].equals("-1"))
{
nickNameField.setText(dataslot.get(indexofslot)[6]);
hpField.setText(dataslot.get(indexofslot)[0]);
atkField.setText(dataslot.get(indexofslot)[1]);
defField.setText(dataslot.get(indexofslot)[2]);
spAtkField.setText(dataslot.get(indexofslot)[3]);
spDefField.setText(dataslot.get(indexofslot)[4]);
speedField.setText(dataslot.get(indexofslot)[5]);
}
}
@Override
}
@Override
}
@Override
}
@Override
}
});
}
public void setPokemon
(JPanel panel
) {
}
public void loadPokemon
(JPanel panel
) {
}
public static void main
(String[] args
) { frame.setContentPane(new PokeGen().root);
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); frame.pack();
frame.setVisible(true);
}
private void setPokemonIcon
(int id,
JLabel label
) {
label.setIcon(icon);
}
}