Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ca9c7288c7 |
@@ -777,7 +777,7 @@ public enum BuildingManager {
|
||||
int newMeshUUID;
|
||||
boolean success;
|
||||
|
||||
// If this building has no blueprint then set rank and exit immediately.
|
||||
// If this building has no blueprint then set rank and exit immediatly.
|
||||
|
||||
if (building.blueprintUUID == 0 || building.getBlueprint() != null && building.getBlueprint().getBuildingGroup().equals(BuildingGroup.MINE)) {
|
||||
building.rank = rank;
|
||||
|
||||
@@ -221,16 +221,6 @@ public enum CombatManager {
|
||||
|
||||
if (inRange) {
|
||||
|
||||
if(attacker.getObjectType().equals(mbEnums.GameObjectType.PlayerCharacter)){
|
||||
if(!attacker.getTimestamps().contains(slot.name()+"Attack")){
|
||||
attacker.getTimestamps().put(slot.name()+"Attack", System.currentTimeMillis() - 1000);
|
||||
} else if(System.currentTimeMillis() < attacker.getTimestamps().get(slot.name()+"Attack") + delay){
|
||||
setAutoAttackJob(attacker,slot,delay);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//handle retaliate
|
||||
if (AbstractCharacter.IsAbstractCharacter(target)) {
|
||||
if (((AbstractCharacter) target).combatTarget == null || !((AbstractCharacter) target).combatTarget.isAlive()) {
|
||||
|
||||
@@ -265,12 +265,12 @@ public enum ForgeManager implements Runnable {
|
||||
|
||||
// Assign a prefix and suffix to this item if random rolled
|
||||
|
||||
if (workOrder.prefixToken == 0 && workOrder.vendor.getItemModTable().contains((template.modTable)))
|
||||
if (workOrder.prefixToken == 0)
|
||||
forgedItem.prefixToken = calcRandomMod(workOrder.vendor, mbEnums.ItemModType.PREFIX, template.modTable);
|
||||
else
|
||||
forgedItem.prefixToken = workOrder.prefixToken;
|
||||
|
||||
if (workOrder.suffixToken == 0 && workOrder.vendor.getItemModTable().contains((template.modTable)))
|
||||
if (workOrder.suffixToken == 0)
|
||||
forgedItem.suffixToken = calcRandomMod(workOrder.vendor, mbEnums.ItemModType.SUFFIX, template.modTable);
|
||||
else
|
||||
forgedItem.suffixToken = workOrder.suffixToken;
|
||||
|
||||
@@ -102,7 +102,7 @@ public enum ItemManager {
|
||||
if (characterSkill == null)
|
||||
return false;
|
||||
|
||||
if (characterSkill.getModifiedAmountBeforeMods() >= required_value)
|
||||
if (characterSkill.getModifiedAmountBeforeMods() > required_value)
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
@@ -135,8 +135,7 @@ public class WorkOrder implements Delayed {
|
||||
if (!workOrder.vendor.charItemManager.hasRoomInventory(template.item_wt))
|
||||
return 30; //30: That person cannot carry that item
|
||||
|
||||
if ((workOrder.prefixToken != 0 || workOrder.suffixToken != 0) &&
|
||||
!workOrder.vendor.getItemModTable().contains((template.modTable)))
|
||||
if (!workOrder.vendor.getItemModTable().contains((template.modTable)))
|
||||
return 59; //59: This hireling does not have this formula
|
||||
|
||||
if (!Warehouse.calcCostOverrun(workOrder).isEmpty())
|
||||
|
||||
@@ -2727,7 +2727,7 @@ public class mbEnums {
|
||||
ANTIMONY(1580014, 1256147265, 452320058, 1000, 10),
|
||||
AZOTH(1580012, -1205326951, 78329697, 2000, 20),
|
||||
BLOODSTONE(1580020, -1912381716, -1569826353, 500, 5),
|
||||
BRONZEWOOD(1580006, -519681813, 1334770447, 1000, 30),
|
||||
BRONZEWOOD(1580006, -519681813, 1334770447, 500, 10),
|
||||
COAL(1580008, -1672872311, 2559427, 3000, 30),
|
||||
DIAMOND(1580010, 1540225085, -1730704107, 2000, 20),
|
||||
GALVOR(1580017, -1683992404, -1596311545, 2000, 5),
|
||||
|
||||
@@ -102,9 +102,6 @@ public class InviteToSubHandler extends AbstractClientMsgHandler {
|
||||
//source guild is limited to 7 subs
|
||||
//TODO this should be based on TOL rank
|
||||
|
||||
//cannot be subbed into a nation if you already have your own sub guilds
|
||||
if(targetGuild.getSubGuildList() != null && targetGuild.getSubGuildList().size() > 0)
|
||||
return true;
|
||||
|
||||
if (!sourceGuild.canSubAGuild(targetGuild)) {
|
||||
sendChat(source, "This Guild can't be subbed.");
|
||||
|
||||
@@ -54,7 +54,7 @@ public class PetAttackMsgHandler extends AbstractClientMsgHandler {
|
||||
pet.setCombatTarget(PlayerCharacter.getPlayerCharacter(msg.getTargetID()));
|
||||
|
||||
switch (msg.getTargetType()) {
|
||||
case 52: //player character
|
||||
case 53: //player character
|
||||
pet.setCombatTarget(PlayerCharacter.getPlayerCharacter(msg.getTargetID()));
|
||||
break;
|
||||
case 37://mob
|
||||
|
||||
@@ -505,11 +505,6 @@ public class Building extends AbstractWorldObject {
|
||||
return;
|
||||
}
|
||||
|
||||
if (city.destroyed.get() == true) {
|
||||
Logger.error(city.getName() + "derankk called on destroyed city");
|
||||
return;
|
||||
}
|
||||
|
||||
bane = city.getBane();
|
||||
|
||||
// We need to collect the spires and shrines on the citygrid in case
|
||||
@@ -597,13 +592,6 @@ public class Building extends AbstractWorldObject {
|
||||
return;
|
||||
}
|
||||
|
||||
if (city.destroyed.get() == true) {
|
||||
Logger.error(city.getName() + "attempt to destroy a destroyed city");
|
||||
return;
|
||||
}
|
||||
|
||||
city.destroyed.set(true);
|
||||
|
||||
// Must remove a bane before considering destruction of a TOL
|
||||
|
||||
if (bane != null) {
|
||||
|
||||
@@ -1400,7 +1400,6 @@ public class CharacterItemManager {
|
||||
|
||||
if (!ItemManager.validForSkills(item, pc.getSkills())) {
|
||||
this.forceToInventory(slot, item, pc, initialized);
|
||||
this.equipped.remove(slot);
|
||||
pc.applyBonuses();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,6 @@ import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
public class City extends AbstractWorldObject {
|
||||
@@ -81,7 +80,6 @@ public class City extends AbstractWorldObject {
|
||||
private String hash;
|
||||
public Warehouse warehouse;
|
||||
public Realm realm;
|
||||
public AtomicBoolean destroyed = new AtomicBoolean(false);
|
||||
|
||||
/**
|
||||
* ResultSet Constructor
|
||||
@@ -1106,7 +1104,7 @@ public class City extends AbstractWorldObject {
|
||||
|
||||
Thread destroyCityThread = new Thread(new DestroyCityThread(this));
|
||||
|
||||
destroyCityThread.setName("destroyCity: " + this.getName());
|
||||
destroyCityThread.setName("destroyCity:" + this.getName());
|
||||
destroyCityThread.start();
|
||||
}
|
||||
|
||||
@@ -1114,7 +1112,7 @@ public class City extends AbstractWorldObject {
|
||||
|
||||
Thread transferCityThread = new Thread(new TransferCityThread(this, newOwner));
|
||||
|
||||
transferCityThread.setName("TransferCity: " + this.getName());
|
||||
transferCityThread.setName("TransferCity:" + this.getName());
|
||||
transferCityThread.start();
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,8 @@ public class DestroyCityThread implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
Building tol = null;
|
||||
|
||||
// Build list of buildings within this parent zone
|
||||
|
||||
for (Building cityBuilding : cityZone.zoneBuildingSet) {
|
||||
@@ -98,6 +100,13 @@ public class DestroyCityThread implements Runnable {
|
||||
if (cityBuilding.getBlueprint().getBuildingGroup().equals(mbEnums.BuildingGroup.BANESTONE))
|
||||
continue;
|
||||
|
||||
// TOL is processed after all other structures in the city zone
|
||||
|
||||
if (cityBuilding.getBlueprint().getBuildingGroup().equals(mbEnums.BuildingGroup.TOL)) {
|
||||
tol = cityBuilding;
|
||||
continue;
|
||||
}
|
||||
|
||||
// All buildings are moved to a location relative
|
||||
// to their new parent zone
|
||||
|
||||
@@ -137,6 +146,11 @@ public class DestroyCityThread implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
// Destroy the tol
|
||||
|
||||
if (tol != null)
|
||||
BuildingManager.setRank(tol, -1);
|
||||
|
||||
if (city.realm != null)
|
||||
city.realm.removeCity(city.getObjectUUID());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user