Browse Source

allow 5th slot in r8 TOL + wall health upgrade for r8 trees

lakebane
FatBoy-DOTC 1 week ago
parent
commit
b71bb60669
  1. 14
      src/engine/jobs/UpgradeBuildingJob.java
  2. 9
      src/engine/net/client/handlers/PlaceAssetMsgHandler.java
  3. 15
      src/engine/objects/Building.java

14
src/engine/jobs/UpgradeBuildingJob.java

@ -1,7 +1,9 @@
package engine.jobs; package engine.jobs;
import engine.gameManager.ZoneManager;
import engine.job.AbstractScheduleJob; import engine.job.AbstractScheduleJob;
import engine.objects.Building; import engine.objects.Building;
import engine.objects.City;
import org.pmw.tinylog.Logger; import org.pmw.tinylog.Logger;
/* /*
@ -41,6 +43,18 @@ public class UpgradeBuildingJob extends AbstractScheduleJob {
rankingBuilding.setRank(rankingBuilding.getRank() + 1); rankingBuilding.setRank(rankingBuilding.getRank() + 1);
if(rankingBuilding.getBlueprint().isWallPiece()){
City cityObject = ZoneManager.getCityAtLocation(rankingBuilding.loc);
if(cityObject.getTOL().getRank() == 8) {
if (rankingBuilding.getBlueprint() != null && rankingBuilding.getBlueprint().getBuildingGroup() != null && rankingBuilding.getBlueprint().isWallPiece()) {
float currentHealthRatio = rankingBuilding.getCurrentHitpoints() / rankingBuilding.healthMax;
float newMax = rankingBuilding.healthMax * 1.1f;
rankingBuilding.setMaxHitPoints(newMax);
rankingBuilding.setHealth(rankingBuilding.healthMax * currentHealthRatio);
}
}
}
// Reload the object // Reload the object

9
src/engine/net/client/handlers/PlaceAssetMsgHandler.java

@ -1148,6 +1148,15 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
wallPiece.setProtectionState(ProtectionState.PROTECTED); wallPiece.setProtectionState(ProtectionState.PROTECTED);
PlaceAssetMsg.sendPlaceAssetConfirmWall(origin, serverZone); PlaceAssetMsg.sendPlaceAssetConfirmWall(origin, serverZone);
//walls in R8 city are immediately granted extra HP by 10%
if(cityObject.getTOL().getRank() == 8) {
if (wallPiece.getBlueprint() != null && wallPiece.getBlueprint().getBuildingGroup() != null && wallPiece.getBlueprint().isWallPiece()) {
float currentHealthRatio = wallPiece.getCurrentHitpoints() / wallPiece.healthMax;
float newMax = wallPiece.healthMax * 1.1f;
wallPiece.setMaxHitPoints(newMax);
wallPiece.setHealth(wallPiece.healthMax * currentHealthRatio);
}
}
} }
// Deduct gold from character's inventory // Deduct gold from character's inventory

15
src/engine/objects/Building.java

@ -166,8 +166,19 @@ public class Building extends AbstractWorldObject {
if (this.blueprintUUID != 0) if (this.blueprintUUID != 0)
this.meshUUID = blueprint.getMeshForRank(rank); this.meshUUID = blueprint.getMeshForRank(rank);
this.healthMax = blueprint.getMaxHealth(this.rank); if(this.getBlueprint() != null && this.getBlueprint().getBuildingGroup() != null && this.getBlueprint().isWallPiece()){
City cityObject = ZoneManager.getCityAtLocation(this.loc);
if(cityObject.getTOL().getRank() == 8) {
float currentHealthRatio = this.getCurrentHitpoints() / this.healthMax;
float newMax = this.healthMax * 1.1f;
this.setMaxHitPoints(newMax);
this.setHealth(this.healthMax * currentHealthRatio);
}else {
this.healthMax = blueprint.getMaxHealth(this.rank);
}
} else {
this.healthMax = blueprint.getMaxHealth(this.rank);
}
// If this object has no blueprint but is a blueprint // If this object has no blueprint but is a blueprint
// mesh then set it's current health to max health // mesh then set it's current health to max health

Loading…
Cancel
Save