Skip to content

Start Implementing Castle Wars

Dan Ginovker requested to merge dginovker/2009scape:castlewars into master

What have you done in this MR?

  • Hook up ignored isRunDisabled
  • Remove @deprecated from setLocation since Ceikry said it's now good
  • Implement getRandomWalkableLoc (like getRandomLoc but won't stick a player in the wall) on ZoneBorders
  • Make God enum use Items class for IDs
  • Add missing IDs to what counts as God
  • Add Castlewars teleport to ::to
  • Collect some relevant IDs in Castlewars class
  • Implement joining Castle Wars waiting lobby via Saradomin/Guthix/Zamorak portals
  • Add checks for which items can be brought into Castle Wars
  • Hook up varbit method for Castle Wars game start timer
  • Hook up joining and leaving Castle Wars lobby properties (giving cloak, turning into animal, etc)
  • Make cloak not unequipable in Castle Wars lobby (BUG: Can still be unequip via equiping another cape slot item)
  • Implement leaving Castle Wars waiting lobby + property resets
  • Add useful Tick conversion functions
  • Add removeAll methods to Containers
  • Set Castle Wars Ticket price of reward equipment
  • Populate Lanthus' shop
  • Implement generic hasShopValue function to determine if an item can be sold to shops
  • Fix bug where long Dialogues would silently fail
  • Add Lanthus' Dialogue
  • Implement Castle Wars Tickets as a currency

Things to test:

  • You should not be able to join any Cwars games
  • Lanthus' dialogue + shop works (cwars tickets are ID 4067)
  • Regular shops, Ranging guild and Tokkul shops still work as expected

This can be merged as is, and anyone else in the meantime who wants to work on Castle Wars (Woah mentioned he was interested) can ping me for write-access to dginovker/2009scape:castlewars. I will not be completing the minigame since I only had a bit of time to get this started 😸

Are there any tricky things testers should keep an eye out for?

  • No

  • Yes, as follows:

  • I have tested these changes thoroughly.

  • This requires extra testing due to changes to architecture or other similarly risky changes.

  • I used the Thanos Tool for any JSON edits where possible, and have attached screenshots of any changes.

  • I acknowledge that this contribution will be released under the AGPL license.

Edited by Dan Ginovker

Merge request reports