Compare commits

..

19 Commits

Author SHA1 Message Date
MagicBot 2a0e8782af Framework for workorder creation. 2023-10-23 14:56:19 -04:00
MagicBot 63fa98486b Framework for workorder creation. 2023-10-23 14:40:15 -04:00
MagicBot 2ca54f3cfa Extra parens removed 2023-10-23 14:12:20 -04:00
MagicBot dad615db2b Long cast needed 2023-10-23 14:00:12 -04:00
MagicBot 134838072d getCity() updated for object 2023-10-23 05:45:03 -04:00
MagicBot 6484e7eb93 Merge remote-tracking branch 'origin/magicbox-1.5.2' into feature-workorder
# Conflicts:
#	src/engine/mobileAI/Threads/MobRespawnThread.java
2023-10-23 05:39:46 -04:00
MagicBot 32d71d72d1 Collection for work orders defined 2023-10-21 07:56:01 -04:00
MagicBot db015f7007 Merge remote-tracking branch 'origin/magicbox-1.5.2' into feature-workorder 2023-10-21 07:45:40 -04:00
MagicBot a0066bce20 Added id to workOrder 2023-09-13 13:09:31 -04:00
MagicBot 8c2adb760c Comment updates 2023-09-13 12:56:37 -04:00
MagicBot 8aca1a1810 Comment updates 2023-09-13 12:54:19 -04:00
MagicBot 2d4a604709 More work on new manager. 2023-09-13 12:52:55 -04:00
MagicBot 7b3741fc60 Header added 2023-09-13 12:48:09 -04:00
MagicBot 903470e7ae default time for testing 2023-09-13 11:48:02 -04:00
MagicBot 0e190b21e1 More work fleshing out new ForgeManager 2023-09-13 11:45:58 -04:00
MagicBot b6be8815a3 ForgeManager manager created. 2023-09-13 11:41:47 -04:00
MagicBot d8235954d2 Header added 2023-09-13 11:17:06 -04:00
MagicBot 37ca8c90e2 Squiggly cleanup in thread. 2023-09-13 11:13:35 -04:00
MagicBot b70a076cb2 Data class defined. 2023-09-13 11:04:29 -04:00
29 changed files with 1156 additions and 629 deletions
+14 -7
View File
@@ -25,7 +25,6 @@ public class Terrain {
public Vector2f cell_size = new Vector2f(); public Vector2f cell_size = new Vector2f();
public Vector2f cell_count = new Vector2f(); public Vector2f cell_count = new Vector2f();
public float terrain_scale; public float terrain_scale;
public Vector2f blend_values = new Vector2f();
public Vector2f blend_ratio = new Vector2f(); public Vector2f blend_ratio = new Vector2f();
public int heightmap; public int heightmap;
Zone zone; Zone zone;
@@ -63,14 +62,22 @@ public class Terrain {
// the blending area between child and parent terrains when // the blending area between child and parent terrains when
// they are stitched together. // they are stitched together.
this.blend_values.x = this.zone.template.max_blend; float max_blend = this.zone.template.max_blend;
this.blend_values.y = this.zone.template.min_blend; float min_blend = this.zone.template.min_blend;
Vector2f major_blend = new Vector2f(this.blend_values.x / this.zone.major_radius, // Zones with a zero blend inherit from their parent terrain
this.blend_values.y / this.zone.major_radius);
Vector2f minor_blend = new Vector2f(this.blend_values.x / this.zone.minor_radius, if (this.zone.template.max_blend == 0) {
this.blend_values.y / this.zone.minor_radius); Zone parentZone = this.getNextZoneWithTerrain(this.zone.parent);
max_blend = parentZone.template.max_blend;
min_blend = parentZone.template.min_blend;
}
Vector2f major_blend = new Vector2f(max_blend / this.zone.major_radius,
min_blend / this.zone.major_radius);
Vector2f minor_blend = new Vector2f(max_blend / this.zone.minor_radius,
min_blend / this.zone.minor_radius);
if (major_blend.y > 0.4f) if (major_blend.y > 0.4f)
blend_ratio.x = major_blend.y; blend_ratio.x = major_blend.y;
@@ -34,19 +34,16 @@ public class dbCityHandler extends dbHandlerBase {
case "zone": case "zone":
Zone zone = new Zone(rs); Zone zone = new Zone(rs);
DbManager.addToCache(zone); DbManager.addToCache(zone);
zone.runAfterLoad();
list.add(zone); list.add(zone);
break; break;
case "building": case "building":
Building building = new Building(rs); Building building = new Building(rs);
DbManager.addToCache(building); DbManager.addToCache(building);
building.runAfterLoad();
list.add(building); list.add(building);
break; break;
case "city": case "city":
City city = new City(rs); City city = new City(rs);
DbManager.addToCache(city); DbManager.addToCache(city);
city.runAfterLoad();
list.add(city); list.add(city);
break; break;
} }
+25 -25
View File
@@ -109,7 +109,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_locks`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_locks`=? WHERE `UID` = ?")) {
preparedStatement.setLong(1, locks); preparedStatement.setLong(1, locks);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -125,7 +125,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_gold`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_gold`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -141,7 +141,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_stone`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_stone`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -157,7 +157,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_truesteel`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_truesteel`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -173,7 +173,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_iron`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_iron`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -189,7 +189,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_adamant`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_adamant`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -205,7 +205,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_lumber`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_lumber`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -221,7 +221,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_oak`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_oak`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -237,7 +237,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_bronzewood`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_bronzewood`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -253,7 +253,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_mandrake`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_mandrake`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -269,7 +269,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_coal`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_coal`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -285,7 +285,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_agate`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_agate`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -301,7 +301,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_diamond`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_diamond`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -317,7 +317,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_onyx`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_onyx`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -333,7 +333,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_azoth`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_azoth`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -349,7 +349,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_orichalk`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_orichalk`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -365,7 +365,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_antimony`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_antimony`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -381,7 +381,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_sulfur`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_sulfur`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -397,7 +397,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_quicksilver`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_quicksilver`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -413,7 +413,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_galvor`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_galvor`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -429,7 +429,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_wormwood`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_wormwood`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -445,7 +445,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_obsidian`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_obsidian`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -461,7 +461,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_bloodstone`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_bloodstone`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -477,7 +477,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_mithril`=? WHERE `UID` = ?")) { PreparedStatement preparedStatement = connection.prepareStatement("UPDATE `obj_warehouse` SET `warehouse_mithril`=? WHERE `UID` = ?")) {
preparedStatement.setInt(1, amount); preparedStatement.setInt(1, amount);
preparedStatement.setInt(2, wh.UID); preparedStatement.setInt(2, wh.getUID());
return (preparedStatement.executeUpdate() > 0); return (preparedStatement.executeUpdate() > 0);
@@ -545,7 +545,7 @@ public class dbWarehouseHandler extends dbHandlerBase {
while (rs.next()) { while (rs.next()) {
warehouse = new Warehouse(rs); warehouse = new Warehouse(rs);
warehouse.runAfterLoad(); warehouse.runAfterLoad();
Warehouse.loadAllTransactions(warehouse); warehouse.loadAllTransactions();
} }
} catch (SQLException e) { } catch (SQLException e) {
+29 -6
View File
@@ -10,15 +10,18 @@
package engine.devcmd.cmds; package engine.devcmd.cmds;
import engine.Enum; import engine.Enum;
import engine.Enum.GameObjectType;
import engine.devcmd.AbstractDevCmd; import engine.devcmd.AbstractDevCmd;
import engine.gameManager.ChatManager; import engine.gameManager.ChatManager;
import engine.gameManager.DbManager;
import engine.gameManager.ZoneManager; import engine.gameManager.ZoneManager;
import engine.objects.AbstractGameObject; import engine.math.Vector3fImmutable;
import engine.objects.Mob; import engine.objects.*;
import engine.objects.PlayerCharacter;
import engine.objects.Zone;
import org.pmw.tinylog.Logger; import org.pmw.tinylog.Logger;
/**
* @author Eighty
*/
public class AddMobCmd extends AbstractDevCmd { public class AddMobCmd extends AbstractDevCmd {
public AddMobCmd() { public AddMobCmd() {
@@ -35,8 +38,27 @@ public class AddMobCmd extends AbstractDevCmd {
Zone zone = ZoneManager.findSmallestZone(pc.getLoc()); Zone zone = ZoneManager.findSmallestZone(pc.getLoc());
int loadID; if (words[0].equals("all")) {
for (AbstractGameObject mobbaseAGO : DbManager.getList(GameObjectType.MobBase)) {
MobBase mb = (MobBase) mobbaseAGO;
int loadID = mb.getObjectUUID();
Mob mob = Mob.createMob(loadID, Vector3fImmutable.getRandomPointInCircle(pc.getLoc(), 100),
null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE);
if (mob != null) {
mob.updateDatabase();
this.setResult(String.valueOf(mob.getDBID()));
} else {
throwbackError(pc, "Failed to create mob of type " + loadID);
Logger.error("Failed to create mob of type "
+ loadID);
}
}
return;
}
int loadID;
try { try {
loadID = Integer.parseInt(words[0]); loadID = Integer.parseInt(words[0]);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
@@ -50,6 +72,7 @@ public class AddMobCmd extends AbstractDevCmd {
return; // NaN return; // NaN
} }
if (zone == null) { if (zone == null) {
throwbackError(pc, "Failed to find zone to place mob in."); throwbackError(pc, "Failed to find zone to place mob in.");
return; return;
@@ -60,9 +83,9 @@ public class AddMobCmd extends AbstractDevCmd {
return; return;
} }
Mob mob = Mob.createMob(loadID, pc.getLoc(), Mob mob = Mob.createMob(loadID, pc.getLoc(),
null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE); null, zone, null, null, "", 1, Enum.AIAgentType.MOBILE);
if (mob != null) { if (mob != null) {
mob.updateDatabase(); mob.updateDatabase();
ChatManager.chatSayInfo(pc, ChatManager.chatSayInfo(pc,
+7 -21
View File
@@ -49,33 +49,19 @@ public class GetHeightCmd extends AbstractDevCmd {
float blendedHeight = Terrain.getWorldHeight(currentZone, playerCharacter.getLoc()); float blendedHeight = Terrain.getWorldHeight(currentZone, playerCharacter.getLoc());
Vector2f terrainCell = heightmapZone.terrain.getTerrainCell(childZoneLoc); Vector2f gridSquare = heightmapZone.terrain.getTerrainCell(childZoneLoc);
Vector2f cell_offset = new Vector2f(terrainCell.x % 1, terrainCell.y % 1); gridSquare.x = (float) Math.floor(gridSquare.x);
gridSquare.y = (float) Math.floor(gridSquare.y);
terrainCell.x = (float) Math.floor(terrainCell.x);
terrainCell.y = (float) Math.floor(terrainCell.y);
short top_left_pixel = heightmapZone.terrain.terrain_pixel_data[(int) terrainCell.x][(int) terrainCell.y];
short top_right_pixel = heightmapZone.terrain.terrain_pixel_data[(int) terrainCell.x + 1][(int) terrainCell.y];
short bottom_left_pixel = heightmapZone.terrain.terrain_pixel_data[(int) terrainCell.x][(int) terrainCell.y + 1];
short bottom_right_pixel = heightmapZone.terrain.terrain_pixel_data[(int) terrainCell.x + 1][(int) terrainCell.y + 1];
this.throwbackInfo(playerCharacter, "Current Zone : " + currentZone.zoneName); this.throwbackInfo(playerCharacter, "Current Zone : " + currentZone.zoneName);
this.throwbackInfo(playerCharacter, "Heightmap Zone : " + heightmapZone.zoneName); this.throwbackInfo(playerCharacter, "Heightmap Zone : " + heightmapZone.zoneName);
this.throwbackInfo(playerCharacter, "Parent Zone: " + parentZone.zoneName); this.throwbackInfo(playerCharacter, "Parent Zone: " + parentZone.zoneName);
this.throwbackInfo(playerCharacter, "Player loc: " + "[" + playerCharacter.loc.x + "]" + "[" + playerCharacter.loc.y + "]" + "[" + playerCharacter.loc.z + "]"); this.throwbackInfo(playerCharacter, "Grid : " + "[" + gridSquare.x + "]" + "[" + gridSquare.y + "]");
this.throwbackInfo(playerCharacter, "offset: " + "[" + childZoneOffset.x + "]" + "[" + childZoneOffset.y + "]");
this.throwbackInfo(playerCharacter, "Terrain Cell : " + "[" + terrainCell.x + "]" + "[" + terrainCell.y + "]");
this.throwbackInfo(playerCharacter, "Cell Offset : " + "[" + cell_offset.x + "]" + "[" + cell_offset.y + "]");
this.throwbackInfo(playerCharacter, "Pixels : " + "[" + top_left_pixel + "]" + "[" + top_right_pixel + "]");
this.throwbackInfo(playerCharacter, "Pixels : " + "[" + bottom_left_pixel + "]" + "[" + bottom_right_pixel + "]");
this.throwbackInfo(playerCharacter, "Child Zone Offset: " + "[" + childZoneOffset.x + "]" + "[" + childZoneOffset.y + "]");
this.throwbackInfo(playerCharacter, "Normalized offset: " + "[" + normalizedOffset.x + "]" + "[" + normalizedOffset.y + "]"); this.throwbackInfo(playerCharacter, "Normalized offset: " + "[" + normalizedOffset.x + "]" + "[" + normalizedOffset.y + "]");
this.throwbackInfo(playerCharacter, "template blend Values: (max/min): " + heightmapZone.template.max_blend + " /" + heightmapZone.template.min_blend); this.throwbackInfo(playerCharacter, "Heightmap blend Values: max/min" + heightmapZone.template.min_blend + " /" + heightmapZone.template.max_blend);
this.throwbackInfo(playerCharacter, "terrain values (max/min): " + heightmapZone.terrain.blend_values.x + " /" + heightmapZone.terrain.blend_values.y); this.throwbackInfo(playerCharacter, "Parent blend Values: nax/min" + parentZone.template.min_blend + " /" + parentZone.template.max_blend);
this.throwbackInfo(playerCharacter, "Blend coefficient: " + heightmapZone.terrain.getTerrainBlendCoefficient(childZoneOffset)); this.throwbackInfo(playerCharacter, "Blend coefficient: " + heightmapZone.terrain.getTerrainBlendCoefficient(childZoneOffset));
this.throwbackInfo(playerCharacter, "------------"); this.throwbackInfo(playerCharacter, "------------");
+4 -1
View File
@@ -13,7 +13,10 @@ import engine.Enum.BuildingGroup;
import engine.Enum.DbObjectType; import engine.Enum.DbObjectType;
import engine.InterestManagement.WorldGrid; import engine.InterestManagement.WorldGrid;
import engine.devcmd.AbstractDevCmd; import engine.devcmd.AbstractDevCmd;
import engine.gameManager.*; import engine.gameManager.BuildingManager;
import engine.gameManager.ChatManager;
import engine.gameManager.DbManager;
import engine.gameManager.ZoneManager;
import engine.math.Vector3fImmutable; import engine.math.Vector3fImmutable;
import engine.objects.*; import engine.objects.*;
+4 -4
View File
@@ -234,15 +234,15 @@ public enum BuildingManager {
ChatManager.chatSystemInfo(player, "You can not carry any more of that item."); ChatManager.chatSystemInfo(player, "You can not carry any more of that item.");
return false; return false;
} }
if (warehouse.resources.get(resourceBase) == null) if (warehouse.getResources().get(resourceBase) == null)
continue; continue;
int resourceAmount = warehouse.resources.get(resourceBase); int resourceAmount = warehouse.getResources().get(resourceBase);
if (resourceAmount <= 0) if (resourceAmount <= 0)
continue; continue;
if (Warehouse.loot(warehouse, player, resourceBase, resourceAmount, true)) if (warehouse.loot(player, resourceBase, resourceAmount, true))
ChatManager.chatInfoInfo(player, "You have looted " + resourceAmount + ' ' + resourceBase.getName()); ChatManager.chatInfoInfo(player, "You have looted " + resourceAmount + ' ' + resourceBase.getName());
} }
break; break;
@@ -545,7 +545,7 @@ public enum BuildingManager {
NPC npc = null; NPC npc = null;
npc = NPC.createNPC(pirateName, NpcID.getObjectUUID(), NpcLoc, building.getGuild(), zone, (short) rank, building); npc = NPC.createNPC(pirateName, NpcID.getObjectUUID(), NpcLoc, null, zone, (short) rank, building);
if (npc == null) if (npc == null)
return false; return false;
+67
View File
@@ -0,0 +1,67 @@
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.gameManager;
import engine.loot.WorkOrder;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.DelayQueue;
import java.util.concurrent.atomic.AtomicInteger;
public enum ForgeManager implements Runnable {
FORGE_MANAGER;
private final BlockingQueue<WorkOrder> workQueue = new DelayQueue();
public static final AtomicInteger workOrder = new AtomicInteger(0);
@Override
public void run() {
while (true) {
try {
WorkOrder workOrder = workQueue.take();
// Fulfill workOrder
for (int i = 0; i < workOrder.slotCount; ++i) {
// Create workOrder items; one for each slot
// assigned to this workOrder.
// if Prefix and suffix are null random roll item
// otherwise roll what was asked for
workOrder.itemCount = workOrder.itemCount - 1;
}
if (workOrder.itemCount == 0) {
workOrder.runCompleted = true;
// Remove this workOrder from any slots on vendor
continue;
}
// Resubmit workOrder
workOrder.completionTime = System.currentTimeMillis() + 10000;
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
+28 -33
View File
@@ -45,27 +45,22 @@ public enum MaintenanceManager {
// Deduct upkeep and build list of buildings // Deduct upkeep and build list of buildings
// which did not have funds available // which did not have funds available
try { for (Building building : maintList) {
for (Building building : maintList)
if (chargeUpkeep(building) == false) if (chargeUpkeep(building) == false)
derankList.add(building); derankList.add(building);
} catch (Exception e) {
Logger.error(e);
} }
// Reset maintenance dates for these buildings // Reset maintenance dates for these buildings
for (Building building : maintList) for (Building building : maintList) {
setMaintDateTime(building, LocalDateTime.now().plusDays(7)); setMaintDateTime(building, LocalDateTime.now().plusDays(7));
}
// Derak or destroy buildings that did not // Derak or destroy buildings that did not
// have funds available. // have funds available.
try { for (Building building : derankList)
for (Building building : derankList) building.destroyOrDerank(null);
building.destroyOrDerank(null);
} catch (Exception e) {
Logger.error(e);
}
Logger.info("Structures: " + buildingList.size() + " Maint: " + maintList.size() + " Derank: " + derankList.size()); Logger.info("Structures: " + buildingList.size() + " Maint: " + maintList.size() + " Derank: " + derankList.size());
} }
@@ -184,7 +179,7 @@ public enum MaintenanceManager {
if ((overDraft > 0)) if ((overDraft > 0))
if ((building.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.SHRINE) == false) && if ((building.getBlueprint().getBuildingGroup().equals(Enum.BuildingGroup.SHRINE) == false) &&
(warehouse != null) && building.assetIsProtected() == true && (warehouse != null) && building.assetIsProtected() == true &&
(warehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) >= overDraft) { (warehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) >= overDraft) {
hasFunds = true; hasFunds = true;
} }
@@ -199,22 +194,22 @@ public enum MaintenanceManager {
hasResources = false; hasResources = false;
else { else {
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000)); resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
if (resourceValue < 1500) if (resourceValue < 1500)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004)); resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
if (resourceValue < 1500) if (resourceValue < 1500)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017)); resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
if (resourceValue < 5) if (resourceValue < 5)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018)); resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
if (resourceValue < 5) if (resourceValue < 5)
hasResources = false; hasResources = false;
@@ -247,11 +242,11 @@ public enum MaintenanceManager {
if (overDraft > 0) { if (overDraft > 0) {
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7)); resourceValue = warehouse.getResources().get(Warehouse.goldIB);
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - overDraft) == true) { if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - overDraft) == true) {
warehouse.resources.put(ItemBase.getItemBase(7), resourceValue - overDraft); warehouse.getResources().put(Warehouse.goldIB, resourceValue - overDraft);
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, overDraft); warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, overDraft);
} else { } else {
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return true; return true;
@@ -267,11 +262,11 @@ public enum MaintenanceManager {
// Withdraw Stone // Withdraw Stone
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000)); resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 1500) == true) { if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 1500) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580000), resourceValue - 1500); warehouse.getResources().put(Warehouse.stoneIB, resourceValue - 1500);
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 1500); warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 1500);
} else { } else {
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return true; return true;
@@ -279,11 +274,11 @@ public enum MaintenanceManager {
// Withdraw Lumber // Withdraw Lumber
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004)); resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 1500) == true) { if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 1500) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580004), resourceValue - 1500); warehouse.getResources().put(Warehouse.lumberIB, resourceValue - 1500);
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 1500); warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 1500);
} else { } else {
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return true; return true;
@@ -291,21 +286,21 @@ public enum MaintenanceManager {
// Withdraw Galvor // Withdraw Galvor
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017)); resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 5) == true) { if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 5) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580017), resourceValue - 5); warehouse.getResources().put(Warehouse.galvorIB, resourceValue - 5);
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 5); warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 5);
} else { } else {
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return true; return true;
} }
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018)); resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 5) == true) { if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 5) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580018), resourceValue - 5); warehouse.getResources().put(Warehouse.wormwoodIB, resourceValue - 5);
Warehouse.AddTransactionToWarehouse(warehouse, Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 5); warehouse.AddTransactionToWarehouse(Enum.GameObjectType.Building, building.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 5);
} else { } else {
Logger.error("wyrmwood update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("wyrmwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
} }
+52
View File
@@ -0,0 +1,52 @@
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.loot;
import engine.gameManager.ForgeManager;
import engine.objects.NPC;
import org.jetbrains.annotations.NotNull;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
import static java.lang.Math.toIntExact;
public class WorkOrder implements Delayed {
public int workOrder;
public NPC vendor;
public int slotCount;
public int itemCount;
public int itemBase;
public String itemName;
public int prefixToken;
public int suffixToken;
public boolean isRandom;
public long completionTime;
public boolean runCompleted;
public WorkOrder() {
this.workOrder = ForgeManager.workOrder.incrementAndGet();
this.completionTime = System.currentTimeMillis() + 10000;
}
@Override
public long getDelay(TimeUnit unit) {
long timeRemaining = completionTime - System.currentTimeMillis();
return unit.convert(timeRemaining, TimeUnit.MILLISECONDS);
}
@Override
public int compareTo(@NotNull Delayed o) {
return toIntExact(this.completionTime - ((WorkOrder) o).completionTime);
}
}
+3 -3
View File
@@ -939,16 +939,16 @@ public class MobAI {
//dont scan self. //dont scan self.
if (mob.equals(awoMob)) if (mob.equals(awoMob) || (mob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)) == true)
continue; continue;
Mob aggroMob = (Mob) awoMob; Mob aggroMob = (Mob) awoMob;
//don't attack other guards //don't attack other guards
if (aggroMob.isGuard() == true)
if ((aggroMob.agentType.equals(Enum.AIAgentType.GUARDCAPTAIN)))
continue; continue;
//don't attack pets
if (aggroMob.agentType.equals(Enum.AIAgentType.PET)) if (aggroMob.agentType.equals(Enum.AIAgentType.PET))
continue; continue;
+22 -11
View File
@@ -1,11 +1,18 @@
// ·. · · · · .
// · ·
// · ·
//
// · · ·
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.mobileAI.Threads; package engine.mobileAI.Threads;
import engine.gameManager.ConfigManager; import engine.gameManager.ConfigManager;
import engine.mobileAI.MobAI;
import engine.gameManager.ZoneManager; import engine.gameManager.ZoneManager;
import engine.mobileAI.MobAI;
import engine.objects.Mob; import engine.objects.Mob;
import engine.objects.Zone; import engine.objects.Zone;
import engine.server.MBServerStatics;
import org.pmw.tinylog.Logger; import org.pmw.tinylog.Logger;
public class MobAIThread implements Runnable{ public class MobAIThread implements Runnable{
@@ -14,23 +21,27 @@ public class MobAIThread implements Runnable{
public static int AI_PULSE_MOB_THRESHOLD = 200; public static int AI_PULSE_MOB_THRESHOLD = 200;
public static int AI_PATROL_DIVISOR = 15; public static int AI_PATROL_DIVISOR = 15;
public static float AI_CAST_FREQUENCY; public static float AI_CAST_FREQUENCY;
// Thread constructor // Thread constructor
public MobAIThread() { public MobAIThread() {
Logger.info(" MobAIThread thread has started!");
//cache config value for mobile casting delay
AI_CAST_FREQUENCY = Float.parseFloat(ConfigManager.MB_AI_CAST_FREQUENCY.getValue());
AI_BASE_AGGRO_RANGE = (int) (60 * Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue()));
} }
@Override @Override
public void run() { public void run() {
//cache config value for mobile casting delay
AI_CAST_FREQUENCY = Float.parseFloat(ConfigManager.MB_AI_CAST_FREQUENCY.getValue()); Logger.info(" MobAIThread thread has started!");
AI_BASE_AGGRO_RANGE = (int)(60 * Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue()));
while (true) { while (true) {
for (Zone zone : ZoneManager.getAllZones()) {
for (Mob mob : zone.zoneMobSet) {
for (Zone zone : ZoneManager.getAllZones())
for (Mob mob : zone.zoneMobSet)
try { try {
if (mob != null) if (mob != null)
MobAI.DetermineAction(mob); MobAI.DetermineAction(mob);
@@ -38,10 +49,10 @@ public class MobAIThread implements Runnable{
Logger.error("Mob: " + mob.getName() + " UUID: " + mob.getObjectUUID() + " ERROR: " + e); Logger.error("Mob: " + mob.getName() + " UUID: " + mob.getObjectUUID() + " ERROR: " + e);
e.printStackTrace(); e.printStackTrace();
} }
}
}
} }
} }
public static void startAIThread() { public static void startAIThread() {
Thread aiThread; Thread aiThread;
aiThread = new Thread(new MobAIThread()); aiThread = new Thread(new MobAIThread());
@@ -16,6 +16,7 @@ import engine.Enum.ItemType;
import engine.exception.MsgSendException; import engine.exception.MsgSendException;
import engine.gameManager.ChatManager; import engine.gameManager.ChatManager;
import engine.gameManager.DbManager; import engine.gameManager.DbManager;
import engine.loot.WorkOrder;
import engine.net.Dispatch; import engine.net.Dispatch;
import engine.net.DispatchMessage; import engine.net.DispatchMessage;
import engine.net.client.ClientConnection; import engine.net.client.ClientConnection;
@@ -455,9 +456,18 @@ public class ItemProductionMsgHandler extends AbstractClientMsgHandler {
switch (msg.getActionType()) { switch (msg.getActionType()) {
case ACTION_PRODUCE: case ACTION_PRODUCE:
boolean isRandom = false;
if (msg.getUnknown03() != 0 && msg.getpToken() == 0 && msg.getsToken() == 0) boolean isRandom = msg.getUnknown03() != 0 && msg.getpToken() == 0 && msg.getsToken() == 0;
isRandom = true;
WorkOrder workOrder = new WorkOrder();
workOrder.vendor = vendorNPC;
workOrder.isRandom = isRandom;
workOrder.itemBase = msg.getItemUUID();
workOrder.itemCount = msg.getTotalProduction();
workOrder.prefixToken = msg.getpToken();
workOrder.suffixToken = msg.getsToken();
workOrder.itemName = msg.getName();
//Create Multiple Item Function.. Fill all empty slots //Create Multiple Item Function.. Fill all empty slots
if (msg.isMultiple()) { if (msg.isMultiple()) {
int emptySlots = vendorNPC.getRank() - vendorNPC.getRolling().size(); int emptySlots = vendorNPC.getRank() - vendorNPC.getRolling().size();
@@ -171,7 +171,7 @@ public class ManageCityAssetMsgHandler extends AbstractClientMsgHandler {
if (warehouse == null) if (warehouse == null)
return true; return true;
if (Warehouse.isEmpty(warehouse)) { if (warehouse.isEmpty()) {
ErrorPopupMsg.sendErrorPopup(player, 167); // no more resources. ErrorPopupMsg.sendErrorPopup(player, 167); // no more resources.
return true; return true;
} }
@@ -437,13 +437,13 @@ public class MerchantMsgHandler extends AbstractClientMsgHandler {
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
break; break;
case 17: case 17:
Warehouse.warehouseWithdraw(msg, player, npc); Warehouse.warehouseWithdraw(msg, player, npc, origin);
break; break;
case 18: case 18:
Warehouse.warehouseDeposit(msg, player, npc); Warehouse.warehouseDeposit(msg, player, npc, origin);
break; break;
case 19: case 19:
Warehouse.warehouseLock(msg, player, npc); Warehouse.warehouseLock(msg, player, npc, origin);
break; break;
} }
@@ -98,27 +98,27 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
return false; return false;
} }
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7)); resourceValue = warehouse.getResources().get(Warehouse.goldIB);
if (resourceValue < 5000000) if (resourceValue < 5000000)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000)); resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
if (resourceValue < 8000) if (resourceValue < 8000)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004)); resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
if (resourceValue < 8000) if (resourceValue < 8000)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017)); resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
if (resourceValue < 15) if (resourceValue < 15)
hasResources = false; hasResources = false;
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018)); resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
if (resourceValue < 15) if (resourceValue < 15)
hasResources = false; hasResources = false;
@@ -130,51 +130,51 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
// Remove resources from warehouse before claiming realm // Remove resources from warehouse before claiming realm
resourceValue = warehouse.resources.get(ItemBase.getItemBase(7)); resourceValue = warehouse.getResources().get(Warehouse.goldIB);
if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - 5000000) == true) { if (DbManager.WarehouseQueries.updateGold(warehouse, resourceValue - 5000000) == true) {
warehouse.resources.put(ItemBase.getItemBase(7), resourceValue - 5000000); warehouse.getResources().put(Warehouse.goldIB, resourceValue - 5000000);
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, 5000000); warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GOLD, 5000000);
} else { } else {
Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("gold update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return false; return false;
} }
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580000)); resourceValue = warehouse.getResources().get(Warehouse.stoneIB);
if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 8000) == true) { if (DbManager.WarehouseQueries.updateStone(warehouse, resourceValue - 8000) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580000), resourceValue - 8000); warehouse.getResources().put(Warehouse.stoneIB, resourceValue - 8000);
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 8000); warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.STONE, 8000);
} else { } else {
Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("stone update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return false; return false;
} }
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580004)); resourceValue = warehouse.getResources().get(Warehouse.lumberIB);
if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 8000) == true) { if (DbManager.WarehouseQueries.updateLumber(warehouse, resourceValue - 8000) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580004), resourceValue - 8000); warehouse.getResources().put(Warehouse.lumberIB, resourceValue - 8000);
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 8000); warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.LUMBER, 8000);
} else { } else {
Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("lumber update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return false; return false;
} }
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580017)); resourceValue = warehouse.getResources().get(Warehouse.galvorIB);
if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 15) == true) { if (DbManager.WarehouseQueries.updateGalvor(warehouse, resourceValue - 15) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580017), resourceValue - 15); warehouse.getResources().put(Warehouse.galvorIB, resourceValue - 15);
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 15); warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.GALVOR, 15);
} else { } else {
Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("galvor update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return false; return false;
} }
resourceValue = warehouse.resources.get(ItemBase.getItemBase(1580018)); resourceValue = warehouse.getResources().get(Warehouse.wormwoodIB);
if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 15) == true) { if (DbManager.WarehouseQueries.updateWormwood(warehouse, resourceValue - 15) == true) {
warehouse.resources.put(ItemBase.getItemBase(1580018), resourceValue - 15); warehouse.getResources().put(Warehouse.wormwoodIB, resourceValue - 15);
Warehouse.AddTransactionToWarehouse(warehouse, engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 15); warehouse.AddTransactionToWarehouse(engine.Enum.GameObjectType.Building, tol.getObjectUUID(), Enum.TransactionType.WITHDRAWL, Resource.WORMWOOD, 15);
} else { } else {
Logger.error("wormwood update failed for warehouse of UUID:" + warehouse.getObjectUUID()); Logger.error("wormwood update failed for warehouse of UUID:" + warehouse.getObjectUUID());
return false; return false;
@@ -766,6 +766,8 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
cityObjectMap.put(gameObject.getObjectType(), gameObject); cityObjectMap.put(gameObject.getObjectType(), gameObject);
treeObject = (Building) cityObjectMap.get(GameObjectType.Building); treeObject = (Building) cityObjectMap.get(GameObjectType.Building);
treeObject.runAfterLoad();
cityObject = (City) cityObjectMap.get(GameObjectType.City); cityObject = (City) cityObjectMap.get(GameObjectType.City);
zoneObject = (Zone) cityObjectMap.get(GameObjectType.Zone); zoneObject = (Zone) cityObjectMap.get(GameObjectType.Zone);
@@ -797,10 +799,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
City.lastCityUpdate = System.currentTimeMillis(); City.lastCityUpdate = System.currentTimeMillis();
treeObject.setLoc(treeObject.getLoc()); treeObject.setLoc(treeObject.getLoc());
// As this is a new static object set it's dirtyFlag
// so players already near it will have the object loaded.
InterestManager.setObjectDirty(treeObject); InterestManager.setObjectDirty(treeObject);
serverRealm.addCity(cityObject.getObjectUUID()); serverRealm.addCity(cityObject.getObjectUUID());
@@ -111,7 +111,7 @@ public class TaxCityMsgHandler extends AbstractClientMsgHandler {
ViewResourcesMessage vrm = new ViewResourcesMessage(player); ViewResourcesMessage vrm = new ViewResourcesMessage(player);
vrm.setGuild(building.getGuild()); vrm.setGuild(building.getGuild());
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().buildingUID)); vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().getBuildingUID()));
vrm.configure(); vrm.configure();
Dispatch dispatch = Dispatch.borrow(player, msg); Dispatch dispatch = Dispatch.borrow(player, msg);
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
@@ -61,13 +61,13 @@ public class ArcViewAssetTransactionsMsg extends ClientNetMsg {
public void configure() { public void configure() {
warehouseBuilding = BuildingManager.getBuilding(this.warehouse.buildingUID); warehouseBuilding = BuildingManager.getBuilding(this.warehouse.getBuildingUID());
transactions = new ArrayList<>(50); transactions = new ArrayList<>(50);
if (this.warehouse.transactions.size() > 150) { if (this.warehouse.getTransactions().size() > 150) {
transactions.addAll(this.warehouse.transactions.subList(this.warehouse.transactions.size() - 150, this.warehouse.transactions.size())); transactions.addAll(this.warehouse.getTransactions().subList(this.warehouse.getTransactions().size() - 150, this.warehouse.getTransactions().size()));
} else } else
transactions = this.warehouse.transactions; transactions = this.warehouse.getTransactions();
} }
@@ -78,7 +78,7 @@ public class ArcViewAssetTransactionsMsg extends ClientNetMsg {
protected void _serialize(ByteBufferWriter writer) throws SerializationException { protected void _serialize(ByteBufferWriter writer) throws SerializationException {
writer.putInt(this.transactionID); writer.putInt(this.transactionID);
writer.putInt(this.warehouse.buildingUID); writer.putInt(this.warehouse.getBuildingUID());
writer.putInt(transactions.size()); //list Size writer.putInt(transactions.size()); //list Size
for (Transaction transaction : transactions) { for (Transaction transaction : transactions) {
@@ -124,7 +124,7 @@ public class ArcViewAssetTransactionsMsg extends ClientNetMsg {
writer.putInt(transaction.getTargetUUID()); //ID writer.putInt(transaction.getTargetUUID()); //ID
writer.putString(name); //Name of depositer/withdrawler or mine name writer.putString(name); //Name of depositer/withdrawler or mine name
writer.putInt(GameObjectType.Building.ordinal()); //Type writer.putInt(GameObjectType.Building.ordinal()); //Type
writer.putInt(warehouse.buildingUID); //ID writer.putInt(warehouse.getBuildingUID()); //ID
writer.putString(warehouseBuilding.getName()); //warehouse writer.putString(warehouseBuilding.getName()); //warehouse
writer.putInt(transaction.getTransactionType().getID()); //79,80 withdrew, 81 mine produced, 82 deposit writer.putInt(transaction.getTransactionType().getID()); //79,80 withdrew, 81 mine produced, 82 deposit
writer.putInt(transaction.getAmount()); //amount writer.putInt(transaction.getAmount()); //amount
@@ -89,23 +89,23 @@ public class ViewResourcesMessage extends ClientNetMsg {
@Override @Override
protected void _serialize(ByteBufferWriter writer) { protected void _serialize(ByteBufferWriter writer) {
writer.putInt(warehouseObject.resources.size()); writer.putInt(warehouseObject.getResources().size());
for (ItemBase ib : (warehouseObject.resources.keySet())) { for (ItemBase ib : (warehouseObject.getResources().keySet())) {
writer.putInt(ib.getHashID()); writer.putInt(ib.getHashID());
writer.putInt((warehouseObject.resources.get(ib))); writer.putInt((warehouseObject.getResources().get(ib)));
if (Warehouse.isResourceLocked(warehouseObject, ib) == true) if (warehouseObject.isResourceLocked(ib) == true)
writer.put((byte) 1); writer.put((byte) 1);
else else
writer.put((byte) 0); writer.put((byte) 0);
} }
writer.putInt(warehouseObject.resources.size()); writer.putInt(warehouseObject.getResources().size());
for (ItemBase ib : warehouseObject.resources.keySet()) { for (ItemBase ib : warehouseObject.getResources().keySet()) {
writer.putInt(ib.getHashID()); writer.putInt(ib.getHashID());
writer.putInt(0); //available? writer.putInt(0); //available?
writer.putInt(Warehouse.getMaxResources().get(ib.getUUID())); //max? writer.putInt(Warehouse.getMaxResources().get(ib.getUUID())); //max?
+6 -29
View File
@@ -287,30 +287,7 @@ public class Building extends AbstractWorldObject {
public final City getCity() { public final City getCity() {
if (this.parentZone == null) return ZoneManager.getCityAtLocation(this.getLoc());
return null;
if (this.getBlueprint() != null && this.getBlueprint().isSiegeEquip() && this.protectionState.equals(ProtectionState.PROTECTED)) {
if (this.getGuild() != null) {
if (this.getGuild().getOwnedCity() != null) {
if (this.getLoc().isInsideCircle(this.getGuild().getOwnedCity().getLoc(), CityBoundsType.ZONE.halfExtents))
return this.getGuild().getOwnedCity();
} else {
Bane bane = Bane.getBaneByAttackerGuild(this.getGuild());
if (bane != null) {
if (bane.getCity() != null) {
if (this.getLoc().isInsideCircle(bane.getCity().getLoc(), CityBoundsType.ZONE.halfExtents))
return bane.getCity();
}
}
}
}
}
if (this.parentZone.guild_zone == false)
return null;
return City.getCity(this.parentZone.playerCityUUID);
} }
@@ -1429,18 +1406,18 @@ public class Building extends AbstractWorldObject {
if (this.getCity().getWarehouse() == null) if (this.getCity().getWarehouse() == null)
return amount; return amount;
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) >= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) if (this.getCity().getWarehouse().getResources().get(ItemBase.getGoldItemBase()) >= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()))
return amount; return amount;
int profitAmount = (int) (amount * (taxAmount * .01f)); int profitAmount = (int) (amount * (taxAmount * .01f));
if (this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()) + profitAmount <= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) { if (this.getCity().getWarehouse().getResources().get(ItemBase.getGoldItemBase()) + profitAmount <= Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID())) {
Warehouse.depositProfitTax(ItemBase.getGoldItemBase(), profitAmount, this,this.getCity().getWarehouse()); this.getCity().getWarehouse().depositProfitTax(ItemBase.getGoldItemBase(), profitAmount, this);
return amount - profitAmount; return amount - profitAmount;
} }
//overDrafting //overDrafting
int warehouseDeposit = Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()) - this.getCity().getWarehouse().resources.get(ItemBase.getGoldItemBase()); int warehouseDeposit = Warehouse.getMaxResources().get(ItemBase.getGoldItemBase().getUUID()) - this.getCity().getWarehouse().getResources().get(ItemBase.getGoldItemBase());
Warehouse.depositProfitTax(ItemBase.getGoldItemBase(), warehouseDeposit, this,this.getCity().getWarehouse()); this.getCity().getWarehouse().depositProfitTax(ItemBase.getGoldItemBase(), warehouseDeposit, this);
return amount - warehouseDeposit; return amount - warehouseDeposit;
} }
+6 -3
View File
@@ -12,7 +12,10 @@ package engine.objects;
import engine.Enum; import engine.Enum;
import engine.Enum.GameObjectType; import engine.Enum.GameObjectType;
import engine.Enum.ItemType; import engine.Enum.ItemType;
import engine.gameManager.*; import engine.gameManager.BuildingManager;
import engine.gameManager.ChatManager;
import engine.gameManager.ConfigManager;
import engine.gameManager.DbManager;
import engine.math.Vector3fImmutable; import engine.math.Vector3fImmutable;
import engine.net.Dispatch; import engine.net.Dispatch;
import engine.net.DispatchMessage; import engine.net.DispatchMessage;
@@ -342,13 +345,13 @@ public class CharacterItemManager {
Warehouse warehouse = (Warehouse) object; Warehouse warehouse = (Warehouse) object;
if (amount < 0) { if (amount < 0) {
if (!Warehouse.deposit((PlayerCharacter) this.absCharacter, this.getGoldInventory(), amount * -1, true, true,warehouse)) { if (!warehouse.deposit((PlayerCharacter) this.absCharacter, this.getGoldInventory(), amount * -1, true, true)) {
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203); ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
return false; return false;
} }
} else { } else {
if (!Warehouse.withdraw(warehouse, (PlayerCharacter) this.absCharacter, this.getGoldInventory().getItemBase(), amount * -1, true, true)) { if (!warehouse.withdraw((PlayerCharacter) this.absCharacter, this.getGoldInventory().getItemBase(), amount * -1, true, true)) {
ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203); ErrorPopupMsg.sendErrorPopup((PlayerCharacter) this.absCharacter, 203);
return false; return false;
+3 -3
View File
@@ -1358,7 +1358,7 @@ public class City extends AbstractWorldObject {
ItemBase ib = ItemBase.getItemBase(itemBaseID); ItemBase ib = ItemBase.getItemBase(itemBaseID);
if (ib == null) if (ib == null)
continue; continue;
if (Warehouse.isAboveCap(ruledWarehouse, ib, (int) (city.getWarehouse().resources.get(ib) * taxPercent))) { if (ruledWarehouse.isAboveCap(ib, (int) (city.getWarehouse().getResources().get(ib) * taxPercent))) {
ErrorPopupMsg.sendErrorMsg(player, "You're warehouse has enough " + ib.getName() + " already!"); ErrorPopupMsg.sendErrorMsg(player, "You're warehouse has enough " + ib.getName() + " already!");
return true; return true;
} }
@@ -1371,7 +1371,7 @@ public class City extends AbstractWorldObject {
} }
try { try {
Warehouse.transferResources(city.getWarehouse(), player, msg, resources, taxPercent); city.getWarehouse().transferResources(player, msg, resources, taxPercent, ruledWarehouse);
} catch (Exception e) { } catch (Exception e) {
Logger.info(e.getMessage()); Logger.info(e.getMessage());
} }
@@ -1380,7 +1380,7 @@ public class City extends AbstractWorldObject {
ViewResourcesMessage vrm = new ViewResourcesMessage(player); ViewResourcesMessage vrm = new ViewResourcesMessage(player);
vrm.setGuild(building.getGuild()); vrm.setGuild(building.getGuild());
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().buildingUID)); vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().getBuildingUID()));
vrm.configure(); vrm.configure();
Dispatch dispatch = Dispatch.borrow(player, vrm); Dispatch dispatch = Dispatch.borrow(player, vrm);
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY);
+47 -47
View File
@@ -119,7 +119,7 @@ public class ItemFactory {
// ROLL BANE SCROLL. // ROLL BANE SCROLL.
if (ib.getUUID() > 910010 && ib.getUUID() < 910019) { if (ib.getUUID() > 910010 && ib.getUUID() < 910019) {
ConcurrentHashMap<ItemBase, Integer> resources = cityWarehouse.resources; ConcurrentHashMap<ItemBase, Integer> resources = cityWarehouse.getResources();
int buildingWithdraw = BuildingManager.GetWithdrawAmountForRolling(forge, ib.getBaseValue()); int buildingWithdraw = BuildingManager.GetWithdrawAmountForRolling(forge, ib.getBaseValue());
@@ -131,7 +131,7 @@ public class ItemFactory {
return null; return null;
} }
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + " " + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + " " + ib.getName());
return null; return null;
@@ -167,9 +167,9 @@ public class ItemFactory {
} }
if (overdraft > 0) if (overdraft > 0)
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) { if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
//ChatManager.chatGuildError(pc, "Failed to create Item"); //ChatManager.chatGuildError(pc, "Failed to create Item");
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName()); Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
return null; return null;
} }
@@ -263,13 +263,13 @@ public class ItemFactory {
} }
if (galvorAmount > 0) { if (galvorAmount > 0) {
if (Warehouse.isResourceLocked(cityWarehouse, galvor)) { if (cityWarehouse.isResourceLocked(galvor)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
return null; return null;
} }
if (cityWarehouse.resources.get(galvor) < galvorAmount) { if (cityWarehouse.getResources().get(galvor) < galvorAmount) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName());
return null; return null;
@@ -277,13 +277,13 @@ public class ItemFactory {
} }
if (wormwoodAmount > 0) { if (wormwoodAmount > 0) {
if (Warehouse.isResourceLocked(cityWarehouse, wormwood)) { if (cityWarehouse.isResourceLocked(wormwood)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Wormwood is locked." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Wormwood is locked." + ib.getName());
return null; return null;
} }
if (cityWarehouse.resources.get(wormwood) < wormwoodAmount) { if (cityWarehouse.getResources().get(wormwood) < wormwoodAmount) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Wormwood in warehouse to roll this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Wormwood in warehouse to roll this item." + ib.getName());
return null; return null;
@@ -320,20 +320,20 @@ public class ItemFactory {
return null; return null;
} }
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
return null; return null;
} }
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) { if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
return null; return null;
} }
prefixResourceCosts = prefix.getResourcesForEffect(); prefixResourceCosts = prefix.getResourcesForEffect();
for (ItemBase ibResources : prefixResourceCosts.keySet()) { for (ItemBase ibResources : prefixResourceCosts.keySet()) {
int warehouseAmount = cityWarehouse.resources.get(ibResources); int warehouseAmount = cityWarehouse.getResources().get(ibResources);
int creationAmount = prefixResourceCosts.get(ibResources); int creationAmount = prefixResourceCosts.get(ibResources);
//ChatManager.chatInfoError(pc, "Prefix : " + ibResources.getName() + " / " + creationAmount); //ChatManager.chatInfoError(pc, "Prefix : " + ibResources.getName() + " / " + creationAmount);
if (warehouseAmount < creationAmount) { if (warehouseAmount < creationAmount) {
@@ -374,13 +374,13 @@ public class ItemFactory {
return null; return null;
} }
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
return null; return null;
} }
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) { if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
return null; return null;
@@ -388,7 +388,7 @@ public class ItemFactory {
for (ItemBase ibResources : suffixResourceCosts.keySet()) { for (ItemBase ibResources : suffixResourceCosts.keySet()) {
int warehouseAmount = cityWarehouse.resources.get(ibResources); int warehouseAmount = cityWarehouse.getResources().get(ibResources);
int creationAmount = suffixResourceCosts.get(ibResources); int creationAmount = suffixResourceCosts.get(ibResources);
if (warehouseAmount < creationAmount) { if (warehouseAmount < creationAmount) {
// if (pc != null) // if (pc != null)
@@ -414,13 +414,13 @@ public class ItemFactory {
return null; return null;
} }
if (overdraft > 0 && useWarehouse && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (overdraft > 0 && useWarehouse && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
return null; return null;
} }
if (useWarehouse && overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) { if (useWarehouse && overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
return null; return null;
@@ -440,7 +440,7 @@ public class ItemFactory {
ErrorPopupMsg.sendErrorMsg(pc, "Building does not have enough gold to produce this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Building does not have enough gold to produce this item." + ib.getName());
return null; return null;
} else { } else {
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) { if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse to produce this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse to produce this item." + ib.getName());
return null; return null;
} }
@@ -448,9 +448,9 @@ public class ItemFactory {
} }
if (overdraft > 0 && useWarehouse) if (overdraft > 0 && useWarehouse)
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) { if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
//ChatManager.chatGuildError(pc, "Failed to create Item"); //ChatManager.chatGuildError(pc, "Failed to create Item");
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName()); Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
return null; return null;
} }
@@ -467,18 +467,18 @@ public class ItemFactory {
int creationAmount = prefixResourceCosts.get(ibResources); int creationAmount = prefixResourceCosts.get(ibResources);
if (Warehouse.isResourceLocked(cityWarehouse, ibResources) == true) if (cityWarehouse.isResourceLocked(ibResources) == true)
return null; return null;
int oldAmount = cityWarehouse.resources.get(ibResources); int oldAmount = cityWarehouse.getResources().get(ibResources);
int amount = creationAmount; int amount = creationAmount;
if (oldAmount < amount) if (oldAmount < amount)
amount = oldAmount; amount = oldAmount;
if (!Warehouse.withdraw(cityWarehouse, npc, ibResources, amount, true)) { if (!cityWarehouse.withdraw(npc, ibResources, amount, false, true)) {
//ChatManager.chatGuildError(pc, "Failed to create Item"); //ChatManager.chatGuildError(pc, "Failed to create Item");
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName()); Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
return null; return null;
} }
} }
@@ -489,18 +489,18 @@ public class ItemFactory {
for (ItemBase ibResources : suffixResourceCosts.keySet()) { for (ItemBase ibResources : suffixResourceCosts.keySet()) {
int creationAmount = suffixResourceCosts.get(ibResources); int creationAmount = suffixResourceCosts.get(ibResources);
if (Warehouse.isResourceLocked(cityWarehouse, ibResources) == true) { if (cityWarehouse.isResourceLocked(ibResources) == true) {
ChatManager.chatSystemError(pc, ibResources.getName() + " is locked!" + ib.getName()); ChatManager.chatSystemError(pc, ibResources.getName() + " is locked!" + ib.getName());
return null; return null;
} }
int oldAmount = cityWarehouse.resources.get(ibResources); int oldAmount = cityWarehouse.getResources().get(ibResources);
int amount = creationAmount; int amount = creationAmount;
if (oldAmount < amount) if (oldAmount < amount)
amount = oldAmount; amount = oldAmount;
if (!Warehouse.withdraw(cityWarehouse, npc, ibResources, amount, true)) { if (!cityWarehouse.withdraw(npc, ibResources, amount, false, true)) {
//ChatManager.chatGuildError(pc, "Failed to create Item"); //ChatManager.chatGuildError(pc, "Failed to create Item");
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName()); Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
return null; return null;
} }
} }
@@ -522,14 +522,14 @@ public class ItemFactory {
return null; return null;
} }
if (overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
return null; return null;
} }
if (useWarehouse && overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) { if (useWarehouse && overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse for overdraft." + ib.getName());
@@ -544,7 +544,7 @@ public class ItemFactory {
ErrorPopupMsg.sendErrorMsg(pc, "Building does not have enough gold to produce this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Building does not have enough gold to produce this item." + ib.getName());
return null; return null;
} else { } else {
if (overdraft > cityWarehouse.resources.get(ItemBase.GOLD_ITEM_BASE)) { if (overdraft > cityWarehouse.getResources().get(ItemBase.GOLD_ITEM_BASE)) {
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse to produce this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Gold in Warehouse to produce this item." + ib.getName());
return null; return null;
} }
@@ -552,16 +552,16 @@ public class ItemFactory {
} }
if (overdraft > 0) if (overdraft > 0)
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) { if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
//ChatManager.chatGuildError(pc, "Failed to create Item"); //ChatManager.chatGuildError(pc, "Failed to create Item");
Logger.error("Warehouse With UID of " + cityWarehouse.UID + " Failed to Create Item." + ib.getName()); Logger.error("Warehouse With UID of " + cityWarehouse.getUID() + " Failed to Create Item." + ib.getName());
return null; return null;
} }
// ChatManager.chatGuildInfo(pc, "Gold Cost = " + total); // ChatManager.chatGuildInfo(pc, "Gold Cost = " + total);
if (galvorAmount > 0) { if (galvorAmount > 0) {
if (!Warehouse.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) { if (!cityWarehouse.withdraw(npc, galvor, galvorAmount, false, true)) {
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
@@ -569,7 +569,7 @@ public class ItemFactory {
} }
if (wormwoodAmount > 0) { if (wormwoodAmount > 0) {
if (!Warehouse.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) { if (!cityWarehouse.withdraw(npc, wormwood, wormwoodAmount, false, true)) {
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse!" + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse!" + ib.getName());
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
@@ -815,7 +815,7 @@ public class ItemFactory {
ConcurrentHashMap<ItemBase, Integer> resources = null; ConcurrentHashMap<ItemBase, Integer> resources = null;
if (useWarehouse) if (useWarehouse)
resources = cityWarehouse.resources; resources = cityWarehouse.getResources();
int galvorAmount = 0; int galvorAmount = 0;
int wormwoodAmount = 0; int wormwoodAmount = 0;
@@ -852,24 +852,24 @@ public class ItemFactory {
return null; return null;
if (galvorAmount > 0) { if (galvorAmount > 0) {
if (Warehouse.isResourceLocked(cityWarehouse, galvor)) { if (cityWarehouse.isResourceLocked(galvor)) {
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
return null; return null;
} }
if (cityWarehouse.resources.get(galvor) < galvorAmount) { if (cityWarehouse.getResources().get(galvor) < galvorAmount) {
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName());
return null; return null;
} }
} }
if (wormwoodAmount > 0) { if (wormwoodAmount > 0) {
if (Warehouse.isResourceLocked(cityWarehouse, wormwood)) { if (cityWarehouse.isResourceLocked(wormwood)) {
ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Galvor is locked." + ib.getName());
return null; return null;
} }
if (cityWarehouse.resources.get(wormwood) < wormwoodAmount) { if (cityWarehouse.getResources().get(wormwood) < wormwoodAmount) {
ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Not enough Galvor in warehouse to roll this item." + ib.getName());
return null; return null;
} }
@@ -908,7 +908,7 @@ public class ItemFactory {
return null; return null;
} }
if (useWarehouse && overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (useWarehouse && overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
return null; return null;
@@ -936,12 +936,12 @@ public class ItemFactory {
// there was an overdraft, withdraw the rest from warehouse. // there was an overdraft, withdraw the rest from warehouse.
if (overdraft > 0) { if (overdraft > 0) {
if (pc != null) { if (pc != null) {
if (!Warehouse.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) { if (!cityWarehouse.withdraw(pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
} }
} else { } else {
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) { if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
} }
@@ -959,7 +959,7 @@ public class ItemFactory {
return null; return null;
} }
if (useWarehouse && overdraft > 0 && Warehouse.isResourceLocked(cityWarehouse, ItemBase.GOLD_ITEM_BASE)) { if (useWarehouse && overdraft > 0 && cityWarehouse.isResourceLocked(ItemBase.GOLD_ITEM_BASE)) {
if (pc != null) if (pc != null)
ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Warehouse gold is barred! Overdraft cannot be withdrawn from warehouse." + ib.getName());
return null; return null;
@@ -987,12 +987,12 @@ public class ItemFactory {
if (overdraft > 0 && useWarehouse) { if (overdraft > 0 && useWarehouse) {
if (pc != null) { if (pc != null) {
if (!Warehouse.withdraw(cityWarehouse, pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) { if (!cityWarehouse.withdraw(pc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
} }
} else { } else {
if (!Warehouse.withdraw(cityWarehouse, npc, ItemBase.GOLD_ITEM_BASE, overdraft, true)) { if (!cityWarehouse.withdraw(npc, ItemBase.GOLD_ITEM_BASE, overdraft, false, true)) {
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
} }
@@ -1002,7 +1002,7 @@ public class ItemFactory {
if (galvorAmount > 0 && useWarehouse) { if (galvorAmount > 0 && useWarehouse) {
//ChatManager.chatGuildInfo(pc, "Withdrawing " + galvorAmount + " galvor from warehouse"); //ChatManager.chatGuildInfo(pc, "Withdrawing " + galvorAmount + " galvor from warehouse");
if (!Warehouse.withdraw(cityWarehouse, npc, galvor, galvorAmount, true)) { if (!cityWarehouse.withdraw(npc, galvor, galvorAmount, false, true)) {
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Galvor from warehouse!" + ib.getName());
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
return null; return null;
@@ -1011,7 +1011,7 @@ public class ItemFactory {
if (wormwoodAmount > 0 && useWarehouse) { if (wormwoodAmount > 0 && useWarehouse) {
//ChatManager.chatGuildInfo(pc, "Withdrawing " + wormwoodAmount + " wormwood from warehouse"); //ChatManager.chatGuildInfo(pc, "Withdrawing " + wormwoodAmount + " wormwood from warehouse");
if (!Warehouse.withdraw(cityWarehouse, npc, wormwood, wormwoodAmount, true)) { if (!cityWarehouse.withdraw(npc, wormwood, wormwoodAmount, false, true)) {
ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse for " + ib.getName()); ErrorPopupMsg.sendErrorMsg(pc, "Failed to withdraw Wormwood from warehouse for " + ib.getName());
Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl "); Logger.error("Warehouse with UID of" + cityWarehouse.getObjectUUID() + "Failed to Withdrawl ");
+5 -2
View File
@@ -11,7 +11,10 @@ package engine.objects;
import engine.Enum; import engine.Enum;
import engine.InterestManagement.WorldGrid; import engine.InterestManagement.WorldGrid;
import engine.gameManager.*; import engine.gameManager.BuildingManager;
import engine.gameManager.ChatManager;
import engine.gameManager.DbManager;
import engine.gameManager.ZoneManager;
import engine.net.ByteBufferWriter; import engine.net.ByteBufferWriter;
import engine.net.client.msg.ErrorPopupMsg; import engine.net.client.msg.ErrorPopupMsg;
import engine.server.MBServerStatics; import engine.server.MBServerStatics;
@@ -480,7 +483,7 @@ public class Mine extends AbstractGameObject {
return false; return false;
ItemBase resourceIB = ItemBase.getItemBase(this.production.UUID); ItemBase resourceIB = ItemBase.getItemBase(this.production.UUID);
return Warehouse.depositFromMine(this, resourceIB, this.getModifiedProductionAmount(),this.owningGuild.getOwnedCity().getWarehouse()); return this.owningGuild.getOwnedCity().getWarehouse().depositFromMine(this, resourceIB, this.getModifiedProductionAmount());
} }
public boolean updateGuildOwner(PlayerCharacter playerCharacter) { public boolean updateGuildOwner(PlayerCharacter playerCharacter) {
+3 -20
View File
@@ -406,6 +406,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
Mob mobile = new Mob(); Mob mobile = new Mob();
mobile.dbID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET; mobile.dbID = MBServerStatics.NO_DB_ROW_ASSIGNED_YET;
//mobile.agentType = AIAgentType.MOBILE; this method is only called to make guard captains and wall archers
mobile.agentType = mobType; mobile.agentType = mobType;
mobile.behaviourType = MobBehaviourType.None; mobile.behaviourType = MobBehaviourType.None;
mobile.loadID = loadID; mobile.loadID = loadID;
@@ -417,17 +418,12 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
mobile.guildUUID = guild.getObjectUUID(); mobile.guildUUID = guild.getObjectUUID();
mobile.parentZoneUUID = parent.getObjectUUID(); mobile.parentZoneUUID = parent.getObjectUUID();
mobile.buildingUUID = building.getObjectUUID();
if (building == null)
mobile.buildingUUID = 0;
else
mobile.buildingUUID = building.getObjectUUID();
if (mobile.buildingUUID != 0) if (mobile.buildingUUID != 0)
mobile.bindLoc = Vector3fImmutable.ZERO; mobile.bindLoc = Vector3fImmutable.ZERO;
else else
mobile.bindLoc = ZoneManager.worldToLocal(spawn, parent); mobile.bindLoc = spawn;
;
mobile.firstName = pirateName; mobile.firstName = pirateName;
@@ -1893,19 +1889,6 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
} }
} }
public Boolean isGuard(){
switch(this.behaviourType){
case GuardMinion:
case GuardCaptain:
case GuardWallArcher:
case HamletGuard:
case SimpleStandingGuard:
return true;
}
return false;
}
@Override @Override
public long getDelay(@NotNull TimeUnit unit) { public long getDelay(@NotNull TimeUnit unit) {
long timeRemaining = this.respawnTime - System.currentTimeMillis(); long timeRemaining = this.respawnTime - System.currentTimeMillis();
+30 -25
View File
@@ -17,6 +17,7 @@ import engine.gameManager.*;
import engine.job.JobContainer; import engine.job.JobContainer;
import engine.job.JobScheduler; import engine.job.JobScheduler;
import engine.jobs.UpgradeNPCJob; import engine.jobs.UpgradeNPCJob;
import engine.loot.WorkOrder;
import engine.math.Bounds; import engine.math.Bounds;
import engine.math.Vector3f; import engine.math.Vector3f;
import engine.math.Vector3fImmutable; import engine.math.Vector3fImmutable;
@@ -37,6 +38,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
import static engine.net.client.msg.ErrorPopupMsg.sendErrorPopup; import static engine.net.client.msg.ErrorPopupMsg.sendErrorPopup;
@@ -52,6 +54,8 @@ public class NPC extends AbstractCharacter {
private final ArrayList<MobLoot> rolling = new ArrayList<>(); private final ArrayList<MobLoot> rolling = new ArrayList<>();
public ReentrantReadWriteLock minionLock = new ReentrantReadWriteLock(); public ReentrantReadWriteLock minionLock = new ReentrantReadWriteLock();
public ArrayList<ProducedItem> forgedItems = new ArrayList<>(); public ArrayList<ProducedItem> forgedItems = new ArrayList<>();
public CopyOnWriteArrayList<WorkOrder> workOrders = new CopyOnWriteArrayList();
public HashMap<Integer, MobEquipment> equip = null; public HashMap<Integer, MobEquipment> equip = null;
public int runeSetID = 0; public int runeSetID = 0;
public int extraRune2 = 0; public int extraRune2 = 0;
@@ -461,20 +465,16 @@ public class NPC extends AbstractCharacter {
NPC newNPC = new NPC(); NPC newNPC = new NPC();
newNPC.parentZoneUUID = parent.getObjectUUID();
newNPC.name = name; newNPC.name = name;
newNPC.contractUUID = contractID; newNPC.contractUUID = contractID;
if (building == null) if (building == null)
newNPC.bindLoc = ZoneManager.worldToLocal(spawn, parent); newNPC.bindLoc = spawn;
else else
newNPC.bindLoc = Vector3fImmutable.ZERO; newNPC.bindLoc = Vector3fImmutable.ZERO;
if (guild == null) newNPC.parentZoneUUID = parent.getObjectUUID();
newNPC.guildUUID = 0; newNPC.guildUUID = guild.getObjectUUID();
else
newNPC.guildUUID = guild.getObjectUUID();
if (building == null) if (building == null)
newNPC.buildingUUID = 0; newNPC.buildingUUID = 0;
@@ -846,6 +846,7 @@ public class NPC extends AbstractCharacter {
else else
this.guild = Guild.getGuild(this.guildUUID); this.guild = Guild.getGuild(this.guildUUID);
if (this.guild == null) if (this.guild == null)
this.guild = Guild.getErrantGuild(); this.guild = Guild.getErrantGuild();
@@ -875,23 +876,27 @@ public class NPC extends AbstractCharacter {
if (this.building != null) if (this.building != null)
NPCManager.slotCharacterInBuilding(this); NPCManager.slotCharacterInBuilding(this);
this.symbol = this.contract.getIconID(); if (this.contract != null) {
this.modTypeTable = this.contract.getNPCModTypeTable(); this.symbol = this.contract.getIconID();
this.modSuffixTable = this.contract.getNpcModSuffixTable(); this.modTypeTable = this.contract.getNPCModTypeTable();
this.itemModTable = this.contract.getItemModTable(); this.modSuffixTable = this.contract.getNpcModSuffixTable();
int VID = this.contract.getVendorID(); this.itemModTable = this.contract.getItemModTable();
int VID = this.contract.getVendorID();
if (VID != 0) if (VID != 0)
this.vendorID = VID; this.vendorID = VID;
else else
this.vendorID = 1; //no vendor items this.vendorID = 1; //no vendor items
}
this.healthMax = this.mobBase.getHealthMax(); if (this.mobBase != null) {
this.manaMax = 0; this.healthMax = this.mobBase.getHealthMax();
this.staminaMax = 0; this.manaMax = 0;
this.setHealth(this.healthMax); this.staminaMax = 0;
this.mana.set(this.manaMax); this.setHealth(this.healthMax);
this.stamina.set(this.staminaMax); this.mana.set(this.manaMax);
this.stamina.set(this.staminaMax);
}
if (this.parentZone.guild_zone) if (this.parentZone.guild_zone)
if (NPC.GetNPCProfits(this) == null) if (NPC.GetNPCProfits(this) == null)
@@ -910,11 +915,11 @@ public class NPC extends AbstractCharacter {
this.charItemManager.load(); this.charItemManager.load();
if (equipmentSetID != 0 && LootManager._bootySetMap.get(equipmentSetID) == null)
Logger.error("Invalid equipSet: " + equipmentSetID + " contract: " + this.contractUUID + " npc: " + this.getObjectUUID());
this.equip = loadEquipmentSet(this.equipmentSetID); this.equip = loadEquipmentSet(this.equipmentSetID);
if (this.equip == null)
this.equip = new HashMap<>();
try { try {
DbManager.NPCQueries.LOAD_ALL_ITEMS_TO_PRODUCE(this); DbManager.NPCQueries.LOAD_ALL_ITEMS_TO_PRODUCE(this);
File diff suppressed because it is too large Load Diff
+6 -15
View File
@@ -37,8 +37,8 @@ public class Zone extends AbstractWorldObject {
public final int playerCityUUID; public final int playerCityUUID;
public final String zoneName; public final String zoneName;
public float major_radius; public final float major_radius;
public float minor_radius; public final float minor_radius;
public final float xOffset; public final float xOffset;
public final float zOffset; public final float zOffset;
public final float yOffset; public final float yOffset;
@@ -76,6 +76,9 @@ public class Zone extends AbstractWorldObject {
this.templateID = rs.getInt("template"); this.templateID = rs.getInt("template");
this.zoneName = rs.getString("zone_name"); this.zoneName = rs.getString("zone_name");
this.peace_zone = rs.getByte("peace_zone"); this.peace_zone = rs.getByte("peace_zone");
this.major_radius = rs.getFloat("major_radius");
this.minor_radius = rs.getFloat("minor_radius");
this.xOffset = rs.getFloat("xOffset"); this.xOffset = rs.getFloat("xOffset");
this.zOffset = rs.getFloat("zOffset"); this.zOffset = rs.getFloat("zOffset");
this.yOffset = rs.getFloat("yOffset"); this.yOffset = rs.getFloat("yOffset");
@@ -160,18 +163,6 @@ public class Zone extends AbstractWorldObject {
if (ZoneManager.seaFloor == null) if (ZoneManager.seaFloor == null)
ZoneManager.seaFloor = this; ZoneManager.seaFloor = this;
// Guild zones use the enum CityBoundsType to adjust
// city size. All other zones derive from the JSON
// stored within its template.
if (this.template == null) {
this.minor_radius = Enum.CityBoundsType.ZONE.halfExtents;
this.major_radius = Enum.CityBoundsType.ZONE.halfExtents;
} else {
this.minor_radius = this.template.minor_radius;
this.major_radius = this.template.major_radius;
}
this.setParent(); this.setParent();
this.setBounds(); this.setBounds();
@@ -201,7 +192,7 @@ public class Zone extends AbstractWorldObject {
// Set initial bounds object // Set initial bounds object
this.bounds = Bounds.borrow(); this.bounds = Bounds.borrow();
this.bounds.setBounds(new Vector2f(this.absX, this.absZ), new Vector2f(this.major_radius, this.minor_radius), 0.0f); this.bounds.setBounds(new Vector2f(this.absX, this.absZ), new Vector2f(this.template.major_radius, this.template.minor_radius), 0.0f);
} }