Table of Contents

Class Party

Namespace
GrindFest
Assembly
GrindFest.dll

Must be partial � the OneJS [EventfulProperty] source generator only processes partial classes. This allows useEventfulState(party, 'Gold') in TSX components for reactive currency display.

public class Party
Inheritance
object
Party

Fields

Assembly
AutomaticParty
GameMode
GoldMultiplier
Heroes
LastDiagnostics
MagicFindMultiplier
Name
PlayerId
Stash

Properties

AchievementPoints

Reactive view of _achievementPoints; raises OnAchievementPointsChanged when the value actually changes.

AllHeroesDead
Arrows
CursedCoins

Reactive view of _cursedCoins; raises OnCursedCoinsChanged when the value actually changes.

Gems

Reactive view of _gems; raises OnGemsChanged when the value actually changes.

Gold

Reactive view of _gold; raises OnGoldChanged when the value actually changes.

GoldCap
GoldPickupRefusedVersion

Reactive view of _goldPickupRefusedVersion; raises OnGoldPickupRefusedVersionChanged when the value actually changes.

InscribedNodesVersion

Reactive view of _inscribedNodesVersion; raises OnInscribedNodesVersionChanged when the value actually changes.

InscribedPrestigeNodes
LevelCap
LifetimeGems
LifetimeGold
LifetimeSouls
MaxHeroes
PlayTime
SelectedHero

The hero the player currently controls, or null when there is none.

Answers null for a destroyed hero on purpose: Unity's fake-null does not survive the OneJS bridge, so a destroyed hero is truthy in JS and hero.gameObject throws inside the UI. That throw was uncaught, so React 19 unmounted the whole tree and the session was left with no UI at all. Returning null makes the UI's own null checks - hero?.gameObject?.name - do their job.

Every write goes through here, which is what makes OnSelectedHeroChanged the whole story: Party.SelectHero is the only intended caller, but HeroNetworkBehaviour and the UI screens assign the property directly, and all of those paths have to announce themselves.

Souls

Reactive view of _souls; raises OnSoulsChanged when the value actually changes.

TotalKills
_heroes

Methods

AddHero(HeroController)
ClearHeroes()
GetMagicFindBonus()
OnHeroDeath(DeathEvent)
OnHeroKilledSomeone(DeathEvent)
RemoveHero(HeroController)
SelectHero(HeroController)
StartStopBotting()
StopBotting()

Events

OnAchievementPointsChanged
OnCursedCoinsChanged
OnGemsChanged
OnGoldChanged
OnGoldPickupRefusedVersionChanged
OnInscribedNodesVersionChanged
OnSelectedHeroChanged

Raised when SelectedHero becomes a different hero (or none), so "the player switched hero" can be an event instead of a question the UI has to ask on a timer. Bind it with useEventSync(party, 'SelectedHero', [party]), which subscribes add_OnSelectedHeroChanged and re-reads the property - the same shape as the generated OnGoldChanged on this class.

Written by hand rather than with [EventfulProperty] on the field: that generator emits get => _selectedHero, and this property is deliberately not a plain field read (see below).

OnSoulsChanged