- The price of recharging bows/shields decreases by 180k per recharge, to a minimum of 180k.
- The price of a new bow/shield is always 900k.
- Elven teleport crystals similarly decrease from 750 to 150 by 150, using a separate recharge counter.
- Eluned doesn't sell additional teleport crystals, only recharges them.
- Removed custom functionality from teleport crystals that allowed teleporting into unallocated instances.
This commit allows players to theive from the Ardougne spice stall as
they should be able to.
It also corrects the theiving XP from 16 to 81 as it should be.
This commit fixes an issue where the DumpContainer dialogue hangs when
a player attempts to deposit their inventory or equipped items when they
do not have any items in their inventory or are not wearing any items.
This commit also converts the DumpContainer dialogue plugin from Java to
Kotlin to work towards converting the 2009scape codebase to Kotlin.
- Charge now clears the state when it finishes, allowing consecutive uses without relogging.
- Ava's device clears the state when unequipped, allong it to be equipped again later.
- (Unrelated to states) Binding necklace now uses amulet-slot degradation instead of degrading your hat.
There is a fairly significant bug with clue scrolls. The only npcs that drops clue scrolls right now are hellhonds (that is because their ids are hard-coded in TreasureTrailPlugin.createDrop()). All other npcs do not drop clues due to a bug in `NPCDropTables`.
`NPCDropTables` has two separate ways to access the actual table: one is though `List<WeightedChanceItem> defaultTable`, ` List<WeightedChanceItem> charmTable`, and `List<WeightedChanceItem> mainTable`; And the other is though a combined table `NPCDropTable table`. The problem is that only `NPCDropTable table` is set properly--the other 3 tables are always empty.
The reason clues were bugged was because `TreasureTrailPlugin.createDrop()` has a check for `npc.getDefinition().getDropTables().getMainTable().size() < 3`, which always fails. I really do not see the point in this check to begin with, so i am going to remove it. The hard-coded check for hellounds is pointless as well and should be removed.
I am also going to remove the 3 empty tables from `NPCDropTables` to avoid and similar bugs in the future.
Alternatively, it is possible to make changes to `DropTableParser` and keep those tables, then add post-parsing step to populate `NPCDropTable table` from them. However that would just duplicate all the data in all drops table, and since nothing else was using these individual tables, i just opted for removing them.
This fixes the issue of all shop prices being 5% more than they are supposed to (like dlong/d skimmy being 105k insread of 100k, and even spirit shards being 26 ea instead of 25 ea).
The original change to add FarmingPatch.TROLL_STRONGHOLD_HERB to isFlowerProtected() was introduced a few days ago in order to attempt to make the troll patch disease-free.. however, it doesnt work.
The reason is that Patch.isFlowerProtected():297 has a check for `patch.type` to be `PatchType.ALLOTMENT`. That chech will return false before the when statement is ever executed.
I moved the check for TROLL_STRONGHOLD_HERB up a level since "isFlowerProtected" didnt seem like a right place for it anyway since it is not a flower protection.
Currently, a grown evil turnip has infinite yeild. This happens because of the return statemnt in the `else` calse of `chance` definition in `Patch.rollLivesDecrement()`.
Because of the return, the method exists before `cropLives` is decremented.
Currenly the check is done against the entire ImpactLog, which includes NPC damage.
This becomes very annoying when it comes to places like god wars where npcs constantly attach each other.
This change makes the loot check only look at other players, and not npcs.
The ironman player in question still has to do the most damage (including npcs) to get the drop.
- Uncomposted patches no longer get lives incremented as if composted.
- Pitfall NPCs use the proper machinery for being not-attackable (so aviansies are no longer meleeable).