Deep wilderness threat balancing
Killing the hostile event now removes all built up threat Hostile event can now follow the player up/down stairs, through cave entrances, etc. Hostile event now applies disease status for 25 hits when killed Reduced the threat gained by killing NPCs by 5x Increased the threat gained by brawlers drops by 3.75x PvP gear drops now award maximum threat (30 minutes to return to zero) In summary, the hostile event will trigger less often but will be more dangerous
This commit is contained in:
@@ -40,7 +40,6 @@ class Frozen : PersistTimer (1, "frozen") {
|
||||
|
||||
override fun getTimer (vararg args: Any) : RSTimer {
|
||||
val inst = Frozen()
|
||||
println(args)
|
||||
inst.runInterval = args.getOrNull(0) as? Int ?: 10
|
||||
inst.shouldApplyImmunity = args.getOrNull(1) as? Boolean ?: false
|
||||
return inst
|
||||
|
||||
@@ -97,13 +97,13 @@ public final class WildernessZone extends MapZone {
|
||||
boolean isValidTarget = e instanceof NPC && (isDeepWildy || e.asNpc().getName().contains("Revenant") || e.getId() == NPCs.CHAOS_ELEMENTAL_3200);
|
||||
|
||||
if (isDeepWildy) {
|
||||
DeepWildyThreat.adjustThreat((Player) killer, 250);
|
||||
DeepWildyThreat.adjustThreat((Player) killer, 50);
|
||||
}
|
||||
|
||||
if (!isValidTarget) return;
|
||||
|
||||
int cEleGloveRate = isDeepWildy ? 50 : 150;
|
||||
int normalGloveRate = isDeepWildy ? 75 : 150;
|
||||
int normalGloveRate = isDeepWildy ? 100 : 150;
|
||||
|
||||
int pvpGearRate = getNewDropRate(e.asNpc().getDefinition().getCombatLevel());
|
||||
if (isDeepWildy)
|
||||
@@ -114,7 +114,8 @@ public final class WildernessZone extends MapZone {
|
||||
Item reward = new Item(BrawlingGloves.forIndicator(glove).getId());
|
||||
GroundItemManager.create(reward, e.asNpc().getDropLocation(), killer.asPlayer());
|
||||
Repository.sendNews(killer.getUsername() + " has received " + reward.getName().toLowerCase() + " from a " + e.asNpc().getName() + "!");
|
||||
DeepWildyThreat.adjustThreat((Player) killer, 200);
|
||||
if (isDeepWildy)
|
||||
DeepWildyThreat.adjustThreat((Player) killer, 750);
|
||||
}
|
||||
|
||||
for (int j : PVP_GEAR) {
|
||||
@@ -128,7 +129,8 @@ public final class WildernessZone extends MapZone {
|
||||
}
|
||||
Repository.sendNews(killer.asPlayer().getUsername() + " has received a " + reward.getName() + " from a " + e.asNpc().getName() + "!");
|
||||
GroundItemManager.create(reward, ((NPC) e).getDropLocation(), killer.asPlayer());
|
||||
DeepWildyThreat.adjustThreat((Player) killer, 1000);
|
||||
if (isDeepWildy)
|
||||
DeepWildyThreat.adjustThreat((Player) killer, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -307,6 +309,13 @@ public final class WildernessZone extends MapZone {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isInZone (Location l) {
|
||||
for (ZoneBorders z : INSTANCE.borders) {
|
||||
if (z.insideBorder(l)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* The wilderness level.
|
||||
* @return the level.
|
||||
|
||||
@@ -33,14 +33,14 @@ class UpdateSequence
|
||||
playersList = renderablePlayers
|
||||
npcList = Repository.renderableNpcs
|
||||
lobbyList!!.map{ PacketRepository.send(ClearMinimapFlag::class.java, PlayerContext(it)) }
|
||||
|
||||
var playerTickStart = System.currentTimeMillis()
|
||||
renderablePlayers.forEach(Player::tick)
|
||||
Grafana.playerTickTime = (System.currentTimeMillis() - playerTickStart).toInt()
|
||||
|
||||
var npcTickStart = System.currentTimeMillis()
|
||||
npcList!!.forEach(NPC::tick)
|
||||
Grafana.npcTickTime = (System.currentTimeMillis() - npcTickStart).toInt()
|
||||
|
||||
var playerTickStart = System.currentTimeMillis()
|
||||
renderablePlayers.forEach(Player::tick)
|
||||
Grafana.playerTickTime = (System.currentTimeMillis() - playerTickStart).toInt()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user