package packet_readers.lineage2.infos;
import org.apache.log4j.Logger;
import com.jds.jn.network.packets.DecryptedPacket;
import com.jds.jn.parser.datatree.DataSwitchBlock;
import com.jds.jn.parser.datatree.DataTreeNode;
import com.jds.jn.parser.datatree.VisualValuePart;
import packet_readers.lineage2.L2World;
/**
* @author VISTALL
* @date 2:29/01.10.2011 \
* <part name="object_id" type="d"/>
<part name="npc_id" type="d"/>
<part name="name" type="S"/>
<part name="attackable" type="d"/>
<part name="x" type="d"/>
<part name="y" type="d"/>
<part name="z" type="d"/>
<part name="h" type="d"/>
<part name="movement_multiplier" type="D"/>
<part name="attack_multiplier" type="D"/>
<part name="col_radius" type="D"/>
<part name="col_height" type="D"/>
<part name="current_hp" type="d"/>
<part name="max_hp" type="d"/>
<part name="type" type="d" id="0" />
<part name="special_effects" type="d"/>
*/
public class L2ServerObjectInfo extends L2DialogObject
{
private static final Logger LOGGER = Logger.getLogger(L2ServerObjectInfo.class);
private int _npcId;
private int _maxHp;
private int _type;
private int _statisticType = -1;
private int _poolId = -1;
private double _colRadius;
private double _colHeight;
private L2Loc _spawnLoc;
public L2ServerObjectInfo(DecryptedPacket packet)
{
_npcId = packet.getInt("npc_id");
_maxHp = packet.getInt("max_hp");
_type = packet.getInt("type");
_colHeight = packet.getDouble("col_height");
_colRadius = packet.getDouble("col_radius");
_spawnLoc = new L2Loc(packet);
switch(_type)
{
case 4:
break;
case 7:
for(DataTreeNode a : packet.getRootNode().getNodes())
{
if(a instanceof DataSwitchBlock)
{
DataSwitchBlock caseBlock = (DataSwitchBlock)a;
if(caseBlock.getCaseValue() == 7)
{
_statisticType = ((VisualValuePart) caseBlock.getPartByName("statistic-name-id")).getValueAsInt();
_poolId = ((VisualValuePart) caseBlock.getPartByName("pool-id")).getValueAsInt();
}
break;
}
}
break;
default:
LOGGER.warn("Unknown type: " + _type + "; object-id:" + packet.getInt(L2World.OBJECT_ID));
break;
}
}
public static Logger getLogger()
{
return LOGGER;
}
public int getNpcId()
{
return _npcId;
}
public int getMaxHp()
{
return _maxHp;
}
public int getType()
{
return _type;
}
public double getColRadius()
{
return _colRadius;
}
public double getColHeight()
{
return _colHeight;
}
public L2Loc getSpawnLoc()
{
return _spawnLoc;
}
public int getStatisticType()
{
return _statisticType;
}
public int getPoolId()
{
return _poolId;
}
}