Refactoring and Clue scrolls (#126)

* refactor treasure trails

* tidy up random functions

* tidy up treasure trails

* refactor drops, consistant

* add clue scroll drops

* spread item rewards

* update rewards

* remove odd behaving items

* always give 2 → 4 items (1 stackable)
This commit is contained in:
Danial
2019-10-28 15:18:28 +13:00
committed by Daniel Ginovker
parent 52414ce985
commit 4760cee80e
5 changed files with 1921 additions and 806 deletions
@@ -889,7 +889,8 @@ public class NpcHandler {
// [j][1] = amount
// [j][0] = drop
public void dropItems(int i) {// ring of wealth to add
public void dropItems(int i) {
// TODO: add ring of wealth
int npc = 0;
Client c = (Client) PlayerHandler.players[npcs[i].killedBy];
if (c != null) {
@@ -900,38 +901,51 @@ public class NpcHandler {
}
}
switch (npcs[i].npcType) {
case 2459:
FreakyForester.killedPheasant(c, 0);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 2460:
FreakyForester.killedPheasant(c, 1);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 2461:
FreakyForester.killedPheasant(c, 2);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 2462:
FreakyForester.killedPheasant(c, 3);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 92:
if (c.restGhost == 3) {
Server.itemHandler.createGroundItem(c, 553, npcs[i].absX, npcs[i].absY, 1, c.playerId);
c.restGhost = 4;
}
break;
case 47:
if (c.witchspot == 1 || c.romeojuliet > 0 && c.romeojuliet < 9) {
Server.itemHandler.createGroundItem(c, 300, npcs[i].absX, npcs[i].absY, 1, c.playerId);
}
break;
case 645:
if (c.shieldArrav == 5) {
Server.itemHandler.createGroundItem(c, 761, npcs[i].absX, npcs[i].absY, 1, c.playerId);
}
break;
case 2459:
FreakyForester.killedPheasant(c, 0);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 2460:
FreakyForester.killedPheasant(c, 1);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 2461:
FreakyForester.killedPheasant(c, 2);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 2462:
FreakyForester.killedPheasant(c, 3);
Server.itemHandler.createGroundItem(c, 6178, npcs[i].absX, npcs[i].absY, 1, c.playerId);
break;
case 92:
if (c.restGhost == 3) {
Server.itemHandler.createGroundItem(c, 553, npcs[i].absX, npcs[i].absY, 1, c.playerId);
c.restGhost = 4;
}
break;
case 47:
if (c.witchspot == 1 || c.romeojuliet > 0 && c.romeojuliet < 9) {
Server.itemHandler.createGroundItem(c, 300, npcs[i].absX, npcs[i].absY, 1, c.playerId);
}
break;
case 645:
if (c.shieldArrav == 5) {
Server.itemHandler.createGroundItem(c, 761, npcs[i].absX, npcs[i].absY, 1, c.playerId);
}
break;
}
if (Misc.random(1, 256) == 1) {
int level = npcs[i].combatLevel;
if (level >= 2 && level <= 24) // easy
Server.itemHandler.createGroundItem(c, 2677, npcs[i].absX, npcs[i].absY, 1, c.playerId);
else if (level <= 40) // easy → medium
Server.itemHandler.createGroundItem(c, 2677 + Misc.random(0, 1), npcs[i].absX, npcs[i].absY, 1, c.playerId);
else if (level <= 80) // medium
Server.itemHandler.createGroundItem(c, 2678, npcs[i].absX, npcs[i].absY, 1, c.playerId);
else if (level <= 150) // medium → hard
Server.itemHandler.createGroundItem(c, 2678 + Misc.random(0, 1), npcs[i].absX, npcs[i].absY, 1, c.playerId);
else // hard
Server.itemHandler.createGroundItem(c, 2678 + Misc.random(0, 1), npcs[i].absX, npcs[i].absY, 1, c.playerId);
}
}
}