int TEXT=4;
int RARITY=5;
String[] textTags={"Name", "Cost:", "Type:", "Pow/Tgh:", "Rules Text:", "Set/Rarity:"};
Card card= new Card();
int currentTag=-1;
String dbg = "";
while ((line = rd.readLine()) != null)
{
if (line.indexOf("class=\"textspoiler\"")!=-1) save=true;
if (line.indexOf("</div>")!=-1) save=false;
// Process line...
if (save)
{
boolean goOn = true;
for (int i=0; i< dontLike.length;i++)
{
if (line.indexOf(dontLike[i])!=-1) {goOn=false;break;}
}
if (goOn)
{
for (int i=0; i< textTags.length;i++)
{
if (line.indexOf(textTags[i])!=-1) {currentTag=i; goOn=false; break;}
}
}
if (goOn)
{
if (NAME==currentTag)
{
dbg = "";
String id = line.substring(line.indexOf("multiverseid=")+13);
id = id.substring(0, id.indexOf("\""));
String name = line.substring(line.indexOf(">")+1);
name = name.substring(0, name.indexOf("<"));
card = new Card();
card.getData().setId(id);
card.getData().setCardName(name);
card.getData().setSetName(setName);
dbg+="Card: "+name +"("+id+")\n";
currentTag=-1;
}
if (COST==currentTag)
{
String cost = line.trim();
cost = csa.util.UtilityString.replace(cost, "G", "{G}");
cost = csa.util.UtilityString.replace(cost, "B", "{B}");
cost = csa.util.UtilityString.replace(cost, "W", "{W}");
cost = csa.util.UtilityString.replace(cost, "R", "{R}");
cost = csa.util.UtilityString.replace(cost, "U", "{U}");
cost = csa.util.UtilityString.replace(cost, "X", "{X}");
cost = csa.util.UtilityString.replace(cost, "1", "{1}");
cost = csa.util.UtilityString.replace(cost, "2", "{2}");
cost = csa.util.UtilityString.replace(cost, "3", "{3}");
cost = csa.util.UtilityString.replace(cost, "4", "{4}");
cost = csa.util.UtilityString.replace(cost, "5", "{5}");
cost = csa.util.UtilityString.replace(cost, "6", "{6}");
cost = csa.util.UtilityString.replace(cost, "7", "{7}");
cost = csa.util.UtilityString.replace(cost, "8", "{8}");
cost = csa.util.UtilityString.replace(cost, "9", "{9}");
card.getData().setMana(cost);
dbg+="Cost: "+cost+"\n";
currentTag=-1;
}
if (TYPE==currentTag)
{
String type = line.trim();
int typeEnd=-1;
int subtypeStart=-1;
for (int i=0;i<type.length();i++)
{
if (((int) (type.charAt(i))) >250)
{
typeEnd=i-1;
for (int c=i;c<type.length();c++)
{
if (((int) (type.charAt(c))) == 32)
{
subtypeStart=c;
break;
}
}
break;
}
}
if (typeEnd!=-1)
{
card.getData().setType(type.substring(0, typeEnd).trim());
dbg+="Type: "+type.substring(0, typeEnd).trim()+" ";
}
else
{
card.getData().setType(type);
dbg+="Type: "+type+" ";
}
if (subtypeStart!=-1)
{
String subType = type.substring(subtypeStart).trim();
card.getData().setSubtype(subType.trim());
dbg+="SubType: "+subType.trim()+"\n";
}
currentTag=-1;
}
if (POW==currentTag)
{
String powerToughness = line.trim();
if (powerToughness.length()==0)
{
card.getData().setPower("");
card.getData().setToughness("");
}
else
{
powerToughness = csa.util.UtilityString.replace(powerToughness, "(", "");
powerToughness = csa.util.UtilityString.replace(powerToughness, ")", "");
String power = powerToughness.substring(0, powerToughness.indexOf("/"));
String toughness = powerToughness.substring(powerToughness.indexOf("/")+1);
card.getData().setPower(power);
card.getData().setToughness(toughness);
}
dbg+="Pow/Tough: "+card.getData().getPower()+"/"+card.getData().getToughness()+"\n";
currentTag=-1;
}
if (TEXT==currentTag)
{
String text = line.trim();
text = csa.util.UtilityString.replace(text, "<br />", " ");
card.addText(text);
}
if (RARITY==currentTag)
{
dbg+="Text: "+card.getText()+"\n";
//setName
String r="";
String rarity = line.substring(line.indexOf(setName)+setName.length());
int l = rarity.length();
if (rarity.indexOf(",")!=-1) l = rarity.indexOf(",");
rarity = rarity.substring(0, l);
if (rarity.indexOf("Common") != -1) r="C";
if (rarity.indexOf("Uncommon") != -1) r="U";
if (rarity.indexOf("Rare") != -1) r="R";
if (rarity.indexOf("Land") != -1) r="L";
card.getData().setRarity(r);
if (card.getType().equalsIgnoreCase("Basic Land"))
{
if (card.getText().indexOf("{T}") == -1)
card.addfText("{T}:");
}
dbg+="Rarity: "+r+"\n";
dbg+="----\n";
boolean done = false;
if ( (card.getData().getId().equals("4409")) // black Portal
|| (card.getData().getId().equals("4410"))
|| (card.getData().getId().equals("4411"))
|| (card.getData().getId().equals("4412"))
)
{
card.getData().setId("4409");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4410");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4411");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4412");
mLoadedCardSet.addCard(card.deepCardClone());
done = true;
}
if ( (card.getData().getId().equals("4416")) // green Portal
|| (card.getData().getId().equals("4415"))
|| (card.getData().getId().equals("4414"))
|| (card.getData().getId().equals("4413"))
)
{
card.getData().setId("4416");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4415");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4414");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4413");
mLoadedCardSet.addCard(card.deepCardClone());
done = true;
}
if ( (card.getData().getId().equals("4417")) // red Portal
|| (card.getData().getId().equals("4418"))
|| (card.getData().getId().equals("4419"))
|| (card.getData().getId().equals("4420"))
)
{
card.getData().setId("4417");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4418");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4419");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4420");
mLoadedCardSet.addCard(card.deepCardClone());
done = true;
}
if ( (card.getData().getId().equals("4421")) // red Portal
|| (card.getData().getId().equals("4422"))
|| (card.getData().getId().equals("4423"))
|| (card.getData().getId().equals("4424"))
)
{
card.getData().setId("4421");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4422");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4423");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4424");
mLoadedCardSet.addCard(card.deepCardClone());
done = true;
}
if ( (card.getData().getId().equals("4425")) // white Portal
|| (card.getData().getId().equals("4426"))
|| (card.getData().getId().equals("4427"))
|| (card.getData().getId().equals("4428"))
)
{
card.getData().setId("4425");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4426");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4427");
mLoadedCardSet.addCard(card.deepCardClone());
card.getData().setId("4428");
mLoadedCardSet.addCard(card.deepCardClone());
done = true;
}
if (!done)
mLoadedCardSet.addCard(card);