Skip to content
Snippets Groups Projects
Commit e0593554 authored by logictc's avatar logictc Committed by Melledy
Browse files

implement persist energy

parent 7f7e82e7
Branches
Tags
No related merge requests found
......@@ -81,6 +81,7 @@ public class Avatar {
private int satiation; // ?
private int satiationPenalty; // ?
private float currentHp;
private float currentEnergy;
@Transient private final Int2ObjectMap<GameItem> equips;
@Transient private final Int2FloatOpenHashMap fightProp;
......@@ -149,7 +150,7 @@ public class Avatar {
this.recalcStats();
this.currentHp = getFightProperty(FightProperty.FIGHT_PROP_MAX_HP);
setFightProperty(FightProperty.FIGHT_PROP_CUR_HP, this.currentHp);
this.currentEnergy = 0f;
// Load handler
this.onLoad();
}
......@@ -358,6 +359,30 @@ public class Avatar {
this.currentHp = currentHp;
}
public void setCurrentEnergy() {
this.setCurrentEnergy(this.currentEnergy);
}
public void setCurrentEnergy(float currentEnergy) {
if (this.getSkillDepot() != null && this.getSkillDepot().getEnergySkillData() != null) {
ElementType element = this.getSkillDepot().getElementType();
this.setFightProperty(element.getMaxEnergyProp(), this.getSkillDepot().getEnergySkillData().getCostElemVal());
if (GAME_OPTIONS.energyUsage) {
this.setFightProperty(element.getCurEnergyProp(), currentEnergy);
}
else {
this.setFightProperty(element.getCurEnergyProp(), this.getSkillDepot().getEnergySkillData().getCostElemVal());
}
}
}
public void setCurrentEnergy(FightProperty curEnergyProp, float currentEnergy) {
this.setFightProperty(curEnergyProp, currentEnergy);
this.currentEnergy = currentEnergy;
this.save();
}
public Int2FloatOpenHashMap getFightProperties() {
return fightProp;
}
......@@ -516,17 +541,7 @@ public class Avatar {
}
// Set energy usage
if (this.getSkillDepot() != null && this.getSkillDepot().getEnergySkillData() != null) {
ElementType element = this.getSkillDepot().getElementType();
this.setFightProperty(element.getMaxEnergyProp(), this.getSkillDepot().getEnergySkillData().getCostElemVal());
if (GAME_OPTIONS.energyUsage) {
this.setFightProperty(element.getCurEnergyProp(), currentEnergy);
}
else {
this.setFightProperty(element.getCurEnergyProp(), this.getSkillDepot().getEnergySkillData().getCostElemVal());
}
}
setCurrentEnergy(currentEnergy);
// Artifacts
for (int slotId = 1; slotId <= 5; slotId++) {
......
......@@ -46,6 +46,7 @@ public class EntityAvatar extends GameEntity {
public EntityAvatar(Scene scene, Avatar avatar) {
super(scene);
this.avatar = avatar;
this.avatar.setCurrentEnergy();
this.id = getScene().getWorld().getNextEntityId(EntityIdType.AVATAR);
GameItem weapon = this.getAvatar().getWeapon();
......@@ -57,6 +58,7 @@ public class EntityAvatar extends GameEntity {
public EntityAvatar(Avatar avatar) {
super(null);
this.avatar = avatar;
this.avatar.setCurrentEnergy();
}
public Player getPlayer() {
......@@ -128,7 +130,7 @@ public class EntityAvatar extends GameEntity {
public void clearEnergy(PropChangeReason reason) {
FightProperty curEnergyProp = this.getAvatar().getSkillDepot().getElementType().getCurEnergyProp();
this.setFightProperty(curEnergyProp, 0);
this.avatar.setCurrentEnergy(curEnergyProp, 0);
this.getScene().broadcastPacket(new PacketAvatarFightPropUpdateNotify(this.getAvatar(), curEnergyProp));
this.getScene().broadcastPacket(new PacketEntityFightPropChangeReasonNotify(this, curEnergyProp, 0f, reason));
......@@ -158,7 +160,7 @@ public class EntityAvatar extends GameEntity {
// Set energy and notify.
if (newEnergy != curEnergy) {
this.setFightProperty(curEnergyProp, newEnergy);
this.avatar.setCurrentEnergy(curEnergyProp, newEnergy);
this.getScene().broadcastPacket(new PacketAvatarFightPropUpdateNotify(this.getAvatar(), curEnergyProp));
this.getScene().broadcastPacket(new PacketEntityFightPropChangeReasonNotify(this, curEnergyProp, newEnergy, reason));
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment