mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-10-10 00:13:42 -04:00
116 lines
2.5 KiB
Java
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;
|
|
}
|
|
}
|