Skip to content

QoL improvements#984

Merged
GregHib merged 18 commits into
mainfrom
qol-improvements
May 17, 2026
Merged

QoL improvements#984
GregHib merged 18 commits into
mainfrom
qol-improvements

Conversation

@GregHib
Copy link
Copy Markdown
Owner

@GregHib GregHib commented May 17, 2026

  • Automatic item dialogue sizing
  • Lookup npcs by spawn point with NPCs.findBySpawn()
  • Fix skillcape emotes
  • Fix dungeoneering skillcape level requirement
  • Support level checks in drop tables
  • Add maximum to variable increment
  • Fix arriveDelay not working for most objects
  • Make level up dialogues queue and wait for main interfaces

@GregHib GregHib changed the title Qol improvements QoL improvements May 17, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 17, 2026

Qodana for JVM

2 new problems were found

Inspection name Severity Problems
Unused import directive 🔶 Warning 1
Duplicated code fragment ◽️ Notice 1

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Contact Qodana team

Contact us at qodana-support@jetbrains.com

@codecov
Copy link
Copy Markdown

codecov Bot commented May 17, 2026

Codecov Report

❌ Patch coverage is 14.34263% with 215 lines in your changes missing coverage. Please review.
✅ Project coverage is 37.64%. Comparing base (7cedb78) to head (d584a07).

Files with missing lines Patch % Lines
...ontent/area/misthalin/barbarian_village/Dororan.kt 0.00% 17 Missing ⚠️
...n/kotlin/content/entity/player/modal/tab/Emotes.kt 0.00% 16 Missing and 1 partial ⚠️
...gregs/voidps/engine/entity/item/drop/DropTables.kt 18.75% 12 Missing and 1 partial ⚠️
...d/gregs/voidps/engine/entity/character/npc/NPCs.kt 20.00% 8 Missing ⚠️
...n/content/area/misthalin/wizards_tower/Sedridor.kt 0.00% 7 Missing ⚠️
.../kotlin/content/area/asgarnia/port_sarim/Thurgo.kt 0.00% 6 Missing ⚠️
...in/kotlin/content/area/misthalin/varrock/Aubury.kt 0.00% 6 Missing ⚠️
...onghold_of_security/StrongholdOfSecurityRewards.kt 0.00% 0 Missing and 5 partials ⚠️
...in/content/area/misthalin/draynor_village/Aggie.kt 16.66% 4 Missing and 1 partial ⚠️
.../content/area/misthalin/lumbridge/FredTheFarmer.kt 0.00% 5 Missing ⚠️
... and 57 more
Additional details and impacted files
Files with missing lines Coverage Δ
...lin/world/gregs/voidps/engine/queue/ActionQueue.kt 69.33% <100.00%> (-1.18%) ⬇️
...in/kotlin/content/area/kandarin/ardougne/Alrena.kt 20.83% <100.00%> (ø)
...ain/kotlin/content/area/kandarin/ardougne/Larry.kt 51.96% <100.00%> (ø)
...ontent/area/karamja/tzhaar_city/TzhaarFightCave.kt 77.01% <100.00%> (+2.44%) ⬆️
...content/area/misthalin/varrock/palace/SirPrysin.kt 38.00% <100.00%> (ø)
...ntent/area/morytania/mort_myre_swamp/SwampDecay.kt 68.96% <100.00%> (ø)
...lin/content/entity/player/dialogue/type/ItemBox.kt 76.92% <100.00%> (+0.92%) ⬆️
...ain/kotlin/content/skill/constitution/drink/Tea.kt 70.73% <ø> (+1.68%) ⬆️
...in/kotlin/content/social/trade/lend/ItemDiscard.kt 11.11% <ø> (+0.39%) ⬆️
.../character/mode/interact/PlayerOnObjectInteract.kt 88.23% <0.00%> (ø)
... and 66 more

... and 2 files with indirect coverage changes

@@             Coverage Diff              @@
##               main     #984      +/-   ##
============================================
- Coverage     37.65%   37.64%   -0.02%     
  Complexity     8242     8242              
============================================
  Files          1696     1696              
  Lines         68635    68662      +27     
  Branches      17289    17303      +14     
============================================
+ Hits          25846    25847       +1     
- Misses        36961    36981      +20     
- Partials       5828     5834       +6     
Components Coverage Δ
Content 35.62% <14.14%> (+<0.01%) ⬆️
Engine 45.63% <15.38%> (-0.11%) ⬇️
Network 60.09% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@GregHib GregHib merged commit ce17d11 into main May 17, 2026
5 checks passed
@GregHib GregHib deleted the qol-improvements branch May 17, 2026 19:12
@GregHib GregHib mentioned this pull request May 17, 2026
10 tasks
HarleyGilpin added a commit to HarleyGilpin/void that referenced this pull request May 17, 2026
Merges upstream/main (PR GregHib#984 brings inc(max) and skill drop gating).

Engine reverts per Greg:
- Delete DoubleValues from VariableValues, plus its factory mapping.
- Remove both legacy double migrations from PlayerSave (variables loop
  and the experience fractional path). Doubles are not used in any
  player variable in the new schema.

Pet stats moved to integers on a 0..10000 scale:
- pet_state.vars.toml regenerated with format = "int".
- pets.tables.toml swaps growth_rate (double) for growth_per_tick
  (int = rate * 50 * 100 per 30s tick).
- PetState drops the PetStats class and updatePetStats wrapper; the
  getters return Int, callers use inc(key, amount, max = PET_STAT_MAX)
  and dec(key, amount) directly (PR GregHib#984 added the max parameter).
- PetTimers thresholds become 7500 / 9000 / 10000 on the new scale,
  HUNGER_BABY/GROWN become 125 / 90 per tick. PetFeeding feeds 1500.
- sendPetDetailsStats divides by 100 on the way out so the orb bars
  stay on the 0..100 client scale.

PetDefinitions deleted; data lives in Tables now. The PetDefinition
data class is gone too. Pets.kt adds RowDefinition extensions
(isCatLike, stageForItem/Npc, npcFor/itemFor, nextStageItem/Npc,
isFinalStage, ambientPhrases) plus petRowForItem / petRowForNpc and
allPetRows lookup helpers. Every caller (Pet, KittenInteract,
PetTimers, PetFeeding) now consumes RowDefinition directly. The
Koin singleton in GameModules is gone.

Incubator suffix derivation collapses to
it.target.id.removePrefix("incubator_"). Renamed the per-region base
objects to incubator_taverley (28550) and incubator_yanille (28352);
kept the shared incubator_idle (28336) / incubator_active (28359)
transform names so the dispatch finds a registered string id for the
displayed mesh. target.id always reflects the base, so the suffix
extraction never sees idle/active. The regionVarbits map and the
tile.region.id helper are deleted.

KittenInteract:
- isRat simplifies to id.startsWith("rat") so giant_rat / warped_rat
  drop out of the chase pool.
- talkToCatWithAmulet replaces the while(true) + keepGoing flag with
  Greg's recursive-option pattern: each answer recurses back into
  talkToCatWithAmulet, the quit option has no body.

pet.npcs.toml: every options = { ... } map deleted; npcs only need the
id field.

dragon.drops.toml: black dragon egg gated on skill = "summoning",
equals = 99 (PR GregHib#984 syntax).

Tests adapted: PetLogoutTest stats are ints; IncubatorUseEggTest uses
incubator_taverley for the test fixtures.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant