}
protected void attachEffect(Node n, Object template)
{
NamedNodeMap attrs = n.getAttributes();
StatsSet set = new StatsSet();
set.set("name", attrs.getNamedItem("name").getNodeValue());
set.set("object", template);
//TODO set.set("attachCond", attachCond);
if(attrs.getNamedItem("count") != null)
{
set.set("count", parseNumber(attrs.getNamedItem("count").getNodeValue()).intValue());
}
if(attrs.getNamedItem("time") != null)
{
set.set("time", parseNumber(attrs.getNamedItem("time").getNodeValue()).intValue());
}
set.set("value", attrs.getNamedItem("val") != null ? parseNumber(attrs.getNamedItem("val").getNodeValue()).doubleValue() : 0.);
set.set("abnormal", AbnormalEffect.NULL);
set.set("abnormal2", AbnormalEffect.NULL);
if(attrs.getNamedItem("abnormal") != null)
{
AbnormalEffect ae = AbnormalEffect.getByName(attrs.getNamedItem("abnormal").getNodeValue());
if(ae.isSpecial())
{
set.set("abnormal2", ae);
}
else
{
set.set("abnormal", ae);
}
}
if(attrs.getNamedItem("stackType") != null)
{
set.set("stackType", attrs.getNamedItem("stackType").getNodeValue());
}
if(attrs.getNamedItem("stackType2") != null)
{
set.set("stackType2", attrs.getNamedItem("stackType2").getNodeValue());
}
if(attrs.getNamedItem("stackOrder") != null)
{
set.set("stackOrder", parseNumber(attrs.getNamedItem("stackOrder").getNodeValue()).intValue());
}
if(attrs.getNamedItem("applyOnCaster") != null)
{
set.set("applyOnCaster", Boolean.valueOf(attrs.getNamedItem("applyOnCaster").getNodeValue()));
}
if(attrs.getNamedItem("displayId") != null)
{
set.set("displayId", parseNumber(attrs.getNamedItem("displayId").getNodeValue()).intValue());
}
if(attrs.getNamedItem("displayLevel") != null)
{
set.set("displayLevel", parseNumber(attrs.getNamedItem("displayLevel").getNodeValue()).intValue());
}
if(attrs.getNamedItem("cancelOnAction") != null)
{
set.set("cancelOnAction", Boolean.valueOf(attrs.getNamedItem("cancelOnAction").getNodeValue()));
}
if(attrs.getNamedItem("isOffensive") != null)
{
set.set("isOffensive", Boolean.valueOf(attrs.getNamedItem("isOffensive").getNodeValue()));
}
EffectTemplate lt = new EffectTemplate(set);
parseTemplate(n, lt);
if(template instanceof L2Skill)
{