merge latest version, fix up gradle depends

This commit is contained in:
mstoppelli
2018-12-07 01:38:09 -05:00
56 changed files with 3892 additions and 386 deletions

View File

@@ -6,11 +6,7 @@ import java.util.Random;
import java.util.logging.Logger;
import com.wurmonline.mesh.Tiles;
import com.wurmonline.server.FailedException;
import com.wurmonline.server.HistoryManager;
import com.wurmonline.server.Players;
import com.wurmonline.server.Server;
import com.wurmonline.server.Servers;
import com.wurmonline.server.*;
import com.wurmonline.server.creatures.Creature;
import com.wurmonline.server.creatures.CreatureTemplate;
import com.wurmonline.server.creatures.CreatureTemplateFactory;
@@ -18,6 +14,7 @@ import com.wurmonline.server.creatures.Creatures;
import com.wurmonline.server.items.*;
import com.wurmonline.server.villages.Village;
import com.wurmonline.server.villages.Villages;
import mod.piddagoras.duskombat.DamageEngine;
import mod.sin.creatures.Reaper;
import mod.sin.creatures.SpectralDrake;
import mod.sin.items.AffinityOrb;
@@ -39,14 +36,14 @@ public class LootBounty {
protected static final Random random = new Random();
public static void displayLootAssistance(Creature mob){
if(Bounty.dealtDamage.containsKey(mob.getWurmId())){
if(DamageEngine.dealtDamage.containsKey(mob.getWurmId())){
logger.info("Found the damageDealt entry, parsing...");
ArrayList<String> names = new ArrayList<String>();
ArrayList<Double> damages = new ArrayList<Double>();
for(long creatureId : Bounty.dealtDamage.get(mob.getWurmId()).keySet()){
for(long creatureId : DamageEngine.dealtDamage.get(mob.getWurmId()).keySet()){
if(Players.getInstance().getPlayerOrNull(creatureId) != null){
names.add(Players.getInstance().getPlayerOrNull(creatureId).getName());
damages.add(Bounty.dealtDamage.get(mob.getWurmId()).get(creatureId));
damages.add(DamageEngine.dealtDamage.get(mob.getWurmId()).get(creatureId));
}else{
if(Creatures.getInstance().getCreatureOrNull(creatureId) != null){
logger.info("Skipping creature "+Creatures.getInstance().getCreatureOrNull(creatureId).getName()+" in loot assistance.");
@@ -158,14 +155,14 @@ public class LootBounty {
e.printStackTrace();
}
}
public static void blessWorldWithMoonVeins(Creature mob){
int i = 20;
int i = 8+Server.rand.nextInt(5);
while(i > 0){
int x = random.nextInt(Server.surfaceMesh.getSize());
int y = random.nextInt(Server.surfaceMesh.getSize());
short height = Tiles.decodeHeight(Server.surfaceMesh.getTile(x, y));
int type = Tiles.decodeType((int)Server.caveMesh.getTile(x, y));
int type = Tiles.decodeType(Server.caveMesh.getTile(x, y));
if(height >= 100 && (type == Tiles.Tile.TILE_CAVE_WALL.id || type == Tiles.Tile.TILE_CAVE.id)){
Tiles.Tile tileType = random.nextBoolean() ? Tiles.Tile.TILE_CAVE_WALL_ORE_ADAMANTINE : Tiles.Tile.TILE_CAVE_WALL_ORE_GLIMMERSTEEL;
Server.caveMesh.setTile(x, y, Tiles.encode(Tiles.decodeHeight(Server.caveMesh.getTile(x, y)), tileType.id, Tiles.decodeData(Server.caveMesh.getTile(x, y))));
@@ -173,8 +170,8 @@ public class LootBounty {
Server.setCaveResource(x, y, 400+random.nextInt(600));
Village v = Villages.getVillage(x, y, true);
if (v == null) {
for (int vx = -50; vx < 50; vx += 5) {
for (int vy = -50; vy < 50 && (v = Villages.getVillage(x + vx, y + vy, true)) == null; vy += 5) {
for (int vx = -20; vx < 20; vx += 5) {
for (int vy = -20; vy < 20 && (v = Villages.getVillage(x + vx, y + vy, true)) == null; vy += 5) {
}
if(v != null){
break;
@@ -183,6 +180,7 @@ public class LootBounty {
}
if(v != null){
HistoryManager.addHistory(mob.getTemplate().getName(), "blesses the world with a "+tileType.getName()+" near "+v.getName()+"!");
MiscChanges.sendServerTabMessage("rumors",mob.getTemplate().getName()+" blesses the world with a "+tileType.getName()+" near "+v.getName()+"!", 255, 255, 255);
}
logger.info("Placed a "+tileType.getName()+" at "+x+", "+y+" - "+height+" height");
i--;
@@ -338,6 +336,23 @@ public class LootBounty {
boolean sendLootHelp = false;
// Begin loot table drops
int templateId = mob.getTemplate().getTemplateId();
if(Servers.localServer.PVPSERVER && mob.isPlayer()){
if(mob.isDeathProtected()) {
logger.info("Death protection was active for " + mob.getName() + ". Inserting silver coin reward.");
try {
Item silver = ItemFactory.createItem(ItemList.coinSilver, 99f, null);
corpse.insertItem(silver, true);
} catch (FailedException | NoSuchTemplateException e) {
e.printStackTrace();
}
}
Item[] items = mob.getAllItems();
for(Item item : items){
if(item.isRepairable()){
item.setDamage(Math.min(99f, item.getDamage() + Math.max(10f+(Server.rand.nextFloat()*5f), 10f * item.getDamageModifier(false))));
}
}
}
if(templateId == Reaper.templateId || templateId == SpectralDrake.templateId){
Server.getInstance().broadCastAlert("The "+mob.getName()+" has been slain. A new creature shall enter the realm shortly.");
sendLootHelp = true;
@@ -383,7 +398,7 @@ public class LootBounty {
spawnFriyanTablets();
// Add unique loot
insertUniqueLoot(mob, corpse);
// Spawn Spectral Drake
/*if (mob.isDragon()) { // Spawn the spectral drake and add extra hide/scale
handleDragonLoot(mob, corpse);