Files
Holocore/src/resources/objects/weapon/WeaponObject.java
T

116 lines
2.5 KiB
Java

package resources.objects.weapon;
import network.packets.swg.zone.baselines.Baseline.BaselineType;
import resources.network.BaselineBuilder;
import resources.network.BaselineBuilder.Encodable;
import resources.objects.tangible.TangibleObject;
import resources.player.Player;
public class WeaponObject extends TangibleObject implements Encodable{
private static final long serialVersionUID = 1L;
private float attackSpeed = 0.5f;
private float maxRange = 5f;
private int type = WeaponType.UNARMED;
public WeaponObject(long objectId) {
super(objectId);
setComplexity(0);
}
public float getAttackSpeed() {
return attackSpeed;
}
public void setAttackSpeed(float attackSpeed) {
this.attackSpeed = attackSpeed;
}
public float getMaxRange() {
return maxRange;
}
public void setMaxRange(float maxRange) {
this.maxRange = maxRange;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
protected void createObject(Player target) {
super.sendSceneCreateObject(target);
BaselineBuilder bb = new BaselineBuilder(this, BaselineType.WEAO, 3);
createBaseline3(target, bb);
bb.sendTo(target);
bb = new BaselineBuilder(this, BaselineType.WEAO, 6);
createBaseline6(target, bb);
bb.sendTo(target);
}
public void createBaseline3(Player target, BaselineBuilder bb) {
super.createBaseline3(target, bb);
bb.addFloat(attackSpeed);
bb.addInt(0); // accuracy (pre-nge)
bb.addInt(0); // unknown
bb.addFloat(maxRange);
bb.addInt(1); // unknown (set to 1 for default weapon)
bb.addInt(0); // weapon particle effect?
bb.addInt(0); // weapon particle effect color?
bb.incremeantOperandCount(7);
}
public void createBaseline6(Player target, BaselineBuilder bb) {
super.createBaseline6(target, bb);
bb.addInt(type);
bb.incremeantOperandCount(1);
}
public void createBaseline8(Player target, BaselineBuilder bb) {
super.createBaseline8(target, bb);
}
public void createBaseline9(Player target, BaselineBuilder bb) {
super.createBaseline9(target, bb);
}
@Override
public byte[] encode() {
BaselineBuilder bb = new BaselineBuilder(this, BaselineType.WEAO, 3);
createBaseline3(null, bb);
byte[] data3 = bb.buildAsBaselinePacket();
bb = new BaselineBuilder(this, BaselineType.WEAO, 6);
createBaseline6(null, bb);
byte[] data6 = bb.buildAsBaselinePacket();
byte[] ret = new byte[data3.length + data6.length];
System.arraycopy(data3, 0, ret, 0, data3.length);
System.arraycopy(data6, 0, ret, data3.length, data6.length);
return ret;
}
}