Stronghold variations

This commit is contained in:
2024-07-08 20:41:16 -05:00
parent 33789adadc
commit a9a9bd0a3d
7 changed files with 290 additions and 148 deletions
+4 -4
View File
@@ -91,17 +91,17 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
protected Resists resists = new Resists("Genric");
protected ConcurrentHashMap<String, JobContainer> timers;
protected ConcurrentHashMap<String, Long> timestamps;
protected int atrHandOne;
public int atrHandOne;
protected int atrHandTwo;
protected int minDamageHandOne;
protected int maxDamageHandOne;
public int minDamageHandOne;
public int maxDamageHandOne;
protected int minDamageHandTwo;
protected int maxDamageHandTwo;
protected float rangeHandOne;
protected float rangeHandTwo;
protected float speedHandOne;
protected float speedHandTwo;
protected int defenseRating;
public int defenseRating;
protected boolean isActive; // <-Do not use this for deleting character!
protected float altitude = 0; // 0=on terrain, 1=tier 1, 2=tier 2, etc.
protected ConcurrentHashMap<Integer, JobContainer> recycleTimers;
-102
View File
@@ -658,106 +658,4 @@ public class Mine extends AbstractGameObject {
_playerMemory.removeAll(toRemove);
}
public void StartStronghold(){
//remove buildings
Building tower = BuildingManager.getBuilding(this.buildingID);
if(tower == null)
return;
this.isStronghold = true;
this.strongholdMobs = new ArrayList<>();
this.oldBuildings = new HashMap<>();
Zone mineZone = ZoneManager.findSmallestZone(tower.loc);
for(Building building : mineZone.zoneBuildingSet){
oldBuildings.put(building.getObjectUUID(),building.meshUUID);
building.setMeshUUID(407650);
building.setMeshScale(new Vector3f(0,0,0));
InterestManager.setObjectDirty(building);
WorldGrid.updateObject(building);
}
//update tower to become stronghold mesh
tower.setMeshUUID(423600);
tower.setMeshScale(new Vector3f(1,1,1));
InterestManager.setObjectDirty(tower);
WorldGrid.updateObject(tower);
//create elite mobs
for(int i = 0; i < 10; i++){
Mob guard = Mob.createMob(14315, Vector3fImmutable.getRandomPointOnCircle(tower.loc,30),Guild.getErrantGuild(),true,mineZone,null,0, "Elite Guardian",65);
if(guard != null){
guard.setLevel((short)65);
guard.setResists(new Resists("Elite"));
guard.healthMax *= 2;
guard.setHealth(guard.healthMax);
guard.spawnTime = 1000000000;
guard.BehaviourType = Enum.MobBehaviourType.Aggro;
guard.maxDamageHandOne *= 2;
guard.minDamageHandOne *= 2;
guard.atrHandOne *= 2;
guard.defenseRating *= 2;
InterestManager.setObjectDirty(guard);
this.strongholdMobs.add(guard);
LootManager.GenerateStrongholdLoot(guard,false);
}
if(guard!= null && guard.level < 60)
guard.despawn();
}
//create stronghold commander
Mob commander = Mob.createMob(14293, tower.loc,Guild.getErrantGuild(),true,mineZone,null,0, "Guardian Commander",75);
if(commander != null){
commander.setLevel((short)75);
commander.setResists(new Resists("Elite"));
commander.healthMax = 50000;
commander.setHealth(commander.healthMax);
commander.spawnTime = 1000000000;
commander.BehaviourType = Enum.MobBehaviourType.Aggro;
commander.maxDamageHandOne = 1500;
commander.minDamageHandOne = 3500;
commander.atrHandOne = 3500;
commander.defenseRating = 3500;
commander.mobPowers.put(429413547,40);
commander.mobPowers.put(429032838,40);
commander.mobPowers.put(57584498,40);
InterestManager.setObjectDirty(commander);
this.strongholdMobs.add(commander);
LootManager.GenerateStrongholdLoot(commander,true);
}
this.setActive(true);
tower.setProtectionState(Enum.ProtectionState.PROTECTED);
}
public void EndStronghold(){
//restore the buildings
Building tower = BuildingManager.getBuilding(this.buildingID);
if(tower == null)
return;
this.isStronghold = false;
//get rid of the mobs
for(Mob mob : this.strongholdMobs) {
mob.despawn();
mob.removeFromCache();
}
//restore the buildings
Zone mineZone = ZoneManager.findSmallestZone(tower.loc);
for(Building building : mineZone.zoneBuildingSet){
if(this.oldBuildings.containsKey(building.getObjectUUID())) {
building.setMeshUUID(this.oldBuildings.get(building.getObjectUUID()));
building.setMeshScale(new Vector3f(1, 1, 1));
}
}
//update tower to become Mine Tower again
tower.setMeshUUID(1500100);
this.setActive(false);
tower.setProtectionState(Enum.ProtectionState.NPC);
}
}
+1
View File
@@ -101,6 +101,7 @@ public class Mob extends AbstractIntelligenceAgent {
private DeferredPowerJob weaponPower;
private DateTime upgradeDateTime = null;
private boolean lootSync = false;
public boolean StrongholdCommander = false;
/**