@wayward/types 2.15.0-beta.dev.20251001.1 → 2.15.0-beta.dev.20251003.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/definitions/game/game/IGame.d.ts +2 -1
  2. package/definitions/game/game/curse/Curse.d.ts +88 -0
  3. package/definitions/game/game/curse/CurseEvent.d.ts +111 -0
  4. package/definitions/game/game/curse/CurseEventDefinitions.d.ts +14 -0
  5. package/definitions/game/game/curse/ICurse.d.ts +49 -0
  6. package/definitions/game/game/curse/event/CurseEventFrigidNight.d.ts +13 -0
  7. package/definitions/game/game/curse/event/CurseEventHeatWave.d.ts +13 -0
  8. package/definitions/game/game/deity/Deity.d.ts +0 -2
  9. package/definitions/game/game/entity/IHuman.d.ts +5 -1
  10. package/definitions/game/game/entity/action/actions/SetTitle.d.ts +1 -1
  11. package/definitions/game/game/entity/player/MessageManager.d.ts +1 -1
  12. package/definitions/game/game/entity/status/IStatus.d.ts +30 -7
  13. package/definitions/game/game/entity/status/IStatusContext.d.ts +2 -1
  14. package/definitions/game/game/entity/status/Status.d.ts +2 -2
  15. package/definitions/game/game/entity/status/handler/BadTemperatureEffect.d.ts +3 -0
  16. package/definitions/game/game/entity/status/statuses/Cursed.d.ts +13 -0
  17. package/definitions/game/game/inspection/infoProviders/doodad/StillWater.d.ts +1 -0
  18. package/definitions/game/game/inspection/inspections/StatusInspection.d.ts +5 -2
  19. package/definitions/game/game/island/Island.d.ts +5 -1
  20. package/definitions/game/game/milestones/IMilestone.d.ts +1 -1
  21. package/definitions/game/game/temperature/TemperatureManager.d.ts +3 -0
  22. package/definitions/game/game/time/ITimeManager.d.ts +1 -0
  23. package/definitions/game/game/time/TimeManager.d.ts +4 -4
  24. package/definitions/game/language/Dictionary.d.ts +110 -108
  25. package/definitions/game/language/DictionaryMap.d.ts +221 -217
  26. package/definitions/game/language/dictionary/Message.d.ts +876 -869
  27. package/definitions/game/language/dictionary/Misc.d.ts +4 -0
  28. package/definitions/game/language/dictionary/UiTranslation.d.ts +665 -664
  29. package/definitions/game/language/english/game/CurseEventCategories.d.ts +13 -0
  30. package/definitions/game/language/english/game/CurseEvents.d.ts +13 -0
  31. package/definitions/game/language/english/ui/CurseComponents.d.ts +1 -1
  32. package/definitions/game/resource/IResourceLoader.d.ts +44 -42
  33. package/definitions/game/ui/screen/screens/game/static/stats/component/StatusContext.d.ts +2 -1
  34. package/definitions/game/ui/screen/screens/game/static/stats/component/StatusIcon.d.ts +2 -1
  35. package/definitions/game/ui/screen/screens/game/static/stats/component/Statuses.d.ts +1 -1
  36. package/definitions/utilities/class/Inject.d.ts +1 -1
  37. package/definitions/utilities/math/Math2.d.ts +1 -0
  38. package/definitions/utilities/object/Objects.d.ts +1 -0
  39. package/definitions/utilities/random/Random.d.ts +6 -0
  40. package/package.json +1 -1
  41. package/definitions/game/game/deity/Curse.d.ts +0 -40
@@ -127,8 +127,9 @@ export declare enum TickFlag {
127
127
  PlayerNotes = 1024,
128
128
  Items = 2048,
129
129
  Lights = 4096,
130
+ Curse = 8192,
130
131
  IslandFastForward = 6174,
131
- All = 65535
132
+ All = 4294967295
132
133
  }
133
134
  /**
134
135
  * This number * game.interval (16.666) is the tick time in milliseconds
@@ -0,0 +1,88 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ import type { CurseEventContext, CurseEventSubscriber } from "@wayward/game/game/curse/CurseEvent";
12
+ import { CurseComponent, CurseEventType } from "@wayward/game/game/curse/ICurse";
13
+ import type Human from "@wayward/game/game/entity/Human";
14
+ import { SkillType } from "@wayward/game/game/entity/IHuman";
15
+ import type Island from "@wayward/game/game/island/Island";
16
+ import type { IVector2 } from "@wayward/game/utilities/math/IVector";
17
+ export declare const CURSE_WEIGHTS: PartialRecord<CurseComponent, number>;
18
+ export declare const CURSE_ATTACK_MAX = 50;
19
+ export declare const CURSE_DEFENSE_MAX = 100;
20
+ export declare const CURSE_CRAFTING_MAX = 100;
21
+ export declare const CURSE_SKILL_MAX = 100;
22
+ export declare const CURSE_COMPONENTS: Record<CurseComponent, (human: Human) => number>;
23
+ /**
24
+ * Gets the highest value of either current or max skill multiplied by the "evilness" of each skill (from rune chance)
25
+ * (Basically, high values in any of the evil-er skills make curse go brrrr)
26
+ */
27
+ declare function getSkillValue(human: Human): {
28
+ value: number;
29
+ skill: SkillType;
30
+ };
31
+ declare namespace Curse {
32
+ const getSkill: typeof getSkillValue;
33
+ function getComponentValue(human: Human, component: CurseComponent): number;
34
+ function getValue(human: Human): number;
35
+ }
36
+ /**
37
+ * In the following graph, this value is `b`:
38
+ * https://www.desmos.com/calculator/sgdtqdqzup
39
+ */
40
+ export declare const CURSE_EVENTS_MAX = 5;
41
+ /**
42
+ * In the following graph, this value is `a`:
43
+ * https://www.desmos.com/calculator/sgdtqdqzup
44
+ */
45
+ export declare const CURSE_EVENTS_MAELSTROM_SPEED = 1;
46
+ /**
47
+ * The maximum chance that a curse event will occur, given the opportunity. The chance scales up from 0% at 0% curse, to this value at 100% curse.
48
+ *
49
+ * There can be up to CURSE_EVENTS_MAX opportunities per night, based on maelstrom level.
50
+ * At 0-1 maelstrom, there are up to 2 opportunities per night. (Per player, because curse events are localised.)
51
+ * Additional opportunities before the top opportunity always use the max chance.
52
+ */
53
+ export declare const CURSE_EVENTS_MAX_CHANCE = 0.5;
54
+ export declare const CURSE_EVENTS_NEARBY_PLAYERS_RADIUS = 25;
55
+ declare namespace Curse {
56
+ function tickCurse(island: Island, humans: Human[]): void;
57
+ function reload(island: Island): void;
58
+ function spawnCurseEvents(island: Island, humans: Human[]): void;
59
+ function attemptCurseEventSpawn(human: Human, curse: number, humans: Human[], events: CurseEventInstance[]): CurseEventInstance | undefined;
60
+ function attemptSpecificCurseEventSpawn(human: Human, type: CurseEventType, humans: Human[], curse?: number): CurseEventInstance | undefined;
61
+ function cleanup(island: Island, humans?: Human[]): void;
62
+ function createCurseEventContext(instance: CurseEventInstance, island: Island, humans: Human[], cursebearer?: Human): CurseEventContext;
63
+ }
64
+ interface Curse {
65
+ active?: true;
66
+ events?: CurseEventInstance[];
67
+ }
68
+ interface ScriptProcessState {
69
+ /** The path of keys/indices from the root of the script to the step this process is currently on. */
70
+ path: Array<string | number>;
71
+ /** The game tick when this step's EndAfter condition is met. */
72
+ endTick?: number;
73
+ /** Iterations remaining for a "repeat" block. */
74
+ iterationsRemaining?: number;
75
+ /** The state of any child processes started by a "simultaneously" or "repeat" block. */
76
+ childProcesses?: ScriptProcessState[];
77
+ }
78
+ declare const SYMBOL_CURSE_EVENT_SUBSCRIBER_INSTANCES: unique symbol;
79
+ interface CurseEventInstance {
80
+ type: CurseEventType;
81
+ visible: boolean;
82
+ cursebearerIdentifier: string;
83
+ point: IVector2;
84
+ subscribers?: string[];
85
+ scriptProcesses?: ScriptProcessState[];
86
+ [SYMBOL_CURSE_EVENT_SUBSCRIBER_INSTANCES]?: Record<string, CurseEventSubscriber>;
87
+ }
88
+ export default Curse;
@@ -0,0 +1,111 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ import type { BiomeType } from "@wayward/game/game/biome/IBiome";
12
+ import type { CurseCategory, CurseEventType } from "@wayward/game/game/curse/ICurse";
13
+ import type Human from "@wayward/game/game/entity/Human";
14
+ import type Island from "@wayward/game/game/island/Island";
15
+ import type { IGameOptionsPartial } from "@wayward/game/game/options/IGameOptions";
16
+ import type { TimeString } from "@wayward/game/game/time/ITimeManager";
17
+ import type { IVector2 } from "@wayward/game/utilities/math/IVector";
18
+ import type { IRange } from "@wayward/utilities/math/Range";
19
+ export interface CurseEventContext {
20
+ readonly island: Island;
21
+ readonly point: IVector2;
22
+ /** A number 0-1 of how far through the night it currently is */
23
+ readonly fractionalTime: number;
24
+ readonly cursebearer: Human | undefined;
25
+ getNearbyPlayers(): Human[];
26
+ /**
27
+ * Inject a custom curse event subscriber class into the game.
28
+ * This class *must* be included in `CurseEvent.subscribers`.
29
+ */
30
+ inject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
31
+ setVisible(visible: boolean): void;
32
+ uninject(): void;
33
+ uninject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
34
+ toString(): string;
35
+ }
36
+ /**
37
+ * A base class for subscribing to game events & applying game options during a curse event.
38
+ * Note that renaming this class will result in it no longer being subscribed for a curse event, if it was before.
39
+ */
40
+ export declare abstract class CurseEventSubscriber {
41
+ protected readonly event: CurseEventContext;
42
+ constructor(event: CurseEventContext);
43
+ protected getOptions?(): IGameOptionsPartial;
44
+ }
45
+ export interface CurseEvent {
46
+ category: CurseCategory;
47
+ /** A number 0-1 representing the curse level that the randomly selected player must have in order for this curse event to be chosen */
48
+ requiredCurseLevel?: number;
49
+ requiredBiomes?: {
50
+ type: "whitelist" | "blacklist";
51
+ biomes: BiomeType[];
52
+ };
53
+ /** If one event is marked as conflicting with another, they will both have the conflict registered. */
54
+ conflicts?: CurseEventType[];
55
+ requiredPredicate?(context: CurseEventContext): boolean;
56
+ subscribers?: Array<Class<CurseEventSubscriber>>;
57
+ onStart?(context: CurseEventContext): void;
58
+ onEnd?(context: CurseEventContext): void;
59
+ script?: CurseEventScript;
60
+ }
61
+ export declare function CurseEvent(event: CurseEvent): CurseEvent;
62
+ export type CurseEventScript = CurseEventScript.Step[];
63
+ export declare function CurseEventScript(steps: CurseEventScript): CurseEventScript;
64
+ export declare namespace CurseEventScript {
65
+ interface CurseEventScriptNodeBase {
66
+ type: string;
67
+ }
68
+ export interface EndAfter extends CurseEventScriptNodeBase {
69
+ type: "end after";
70
+ ticks: number | IRange;
71
+ }
72
+ export function EndAfter(ticks: number | IRange): EndAfter;
73
+ export interface EndAt extends CurseEventScriptNodeBase {
74
+ type: "end at";
75
+ time: TimeString;
76
+ }
77
+ export function EndAt(time: TimeString): EndAt;
78
+ export interface EndWhen extends CurseEventScriptNodeBase {
79
+ type: "end when";
80
+ predicate(context: CurseEventContext): boolean;
81
+ }
82
+ export function EndWhen(predicate: EndWhen["predicate"]): EndWhen;
83
+ export type EndCondition = EndAfter | EndAt | EndWhen;
84
+ export interface Wait extends CurseEventScriptNodeBase {
85
+ type: "wait";
86
+ end: EndCondition;
87
+ }
88
+ export function Wait(end: EndCondition): Wait;
89
+ export interface Action extends CurseEventScriptNodeBase {
90
+ type: "action";
91
+ end?: EndCondition;
92
+ /** @returns `false` to end the entire curse event immediately */
93
+ action(context: CurseEventContext): false | undefined | void;
94
+ }
95
+ export function Action(action: Action["action"]): Action;
96
+ export function Action(end: EndCondition, action: Action["action"]): Action;
97
+ export interface Repeat extends CurseEventScriptNodeBase {
98
+ type: "repeat";
99
+ steps: Step[];
100
+ times?: number | IRange;
101
+ }
102
+ export function Repeat(steps: Step[]): Repeat;
103
+ export function Repeat(times: number | IRange, steps: Step[]): Repeat;
104
+ export interface Simultaneously extends CurseEventScriptNodeBase {
105
+ type: "simultaneously";
106
+ scripts: Record<string, Step[]>;
107
+ }
108
+ export function Simultaneously(scripts: Record<string, Step[]>): Simultaneously;
109
+ export type Step = Wait | Action | Repeat | Simultaneously;
110
+ export {};
111
+ }
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ import { CurseEventType } from "@wayward/game/game/curse/ICurse";
12
+ import type { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
13
+ declare const _default: Record<CurseEventType, CurseEvent>;
14
+ export default _default;
@@ -0,0 +1,49 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ export declare enum CurseEventType {
12
+ None = 0,
13
+ Horde = 1,
14
+ UnwelcomeGuest = 2,
15
+ Shadows = 3,
16
+ Wisp = 4,
17
+ Swarm = 5,
18
+ FaeVisitor = 6,
19
+ Brownies = 7,
20
+ Siren = 8,
21
+ PlantDeath = 9,
22
+ NewPlants = 10,
23
+ CraftingInspiration = 11,
24
+ SuffusedWithMagic = 12,
25
+ LovedByTheWilds = 13,
26
+ HatedByTheWilds = 14,
27
+ RuneEffects = 15,
28
+ Lucky = 16,
29
+ Unlucky = 17,
30
+ FrigidNight = 18,
31
+ HeatWave = 19
32
+ }
33
+ export declare enum CurseCategory {
34
+ Lucky = 0,
35
+ Neutral = 1,
36
+ Unlucky = 2
37
+ }
38
+ export declare enum CurseComponent {
39
+ Skill = 0,
40
+ HighestAttack = 1,
41
+ HighestDefense = 2,
42
+ CumulativeEvilCrafting = 3,
43
+ Equipment = 4,
44
+ Modifier = 5
45
+ }
46
+ export declare enum CurseSystemDiscovery {
47
+ CurseFactors = 0,
48
+ CurseFactorsExact = 1
49
+ }
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ declare const _default: CurseEvent;
13
+ export default _default;
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ declare const _default: CurseEvent;
13
+ export default _default;
@@ -23,8 +23,6 @@ export declare namespace DeityReal {
23
23
  function is(value: unknown): value is DeityReal;
24
24
  }
25
25
  export declare enum DeityDiscovery {
26
- CurseFactors = 0,// uses current alignment (-8,000)
27
- CurseFactorsExact = 1
28
26
  }
29
27
  export declare const DEITY_ENEMIES: PartialRecord<DeityReal, DeityReal>;
30
28
  export declare const DEITY_SOUNDS: PartialRecord<DeityReal, SfxType>;
@@ -414,7 +414,11 @@ export declare enum RestCancelReason {
414
414
  CreatureDamaged = 4,
415
415
  Canceled = 5,
416
416
  Dying = 6,
417
- WaterPoured = 7
417
+ WaterPoured = 7,
418
+ UncomfortablyCold = 8,
419
+ TooCold = 9,
420
+ UncomfortablyHot = 10,
421
+ TooHot = 11
418
422
  }
419
423
  export declare const restCancelReasonMessageMap: Record<RestCancelReason, Message | undefined>;
420
424
  export type WalkToChangeReason = "Damage" | "Overburdened" | "PromptVisible" | "Unknown";
@@ -16,5 +16,5 @@ export declare enum TitleType {
16
16
  Milestone = 0,
17
17
  Skill = 1
18
18
  }
19
- declare const _default: Action<[[ActionArgument.Undefined, import("../argument/ActionArgumentEnum").default<TitleType, "Skill" | "Milestone">], [arg1: ActionArgument.Undefined, import("../argument/ActionArgumentEnum").default<Milestone, "Statistician" | "Runekeeper" | "Navigator" | "Abnormalizer" | "Chef" | "Exterminator" | "Crafter" | "Gardener" | "Gatherer" | "Hunter" | "Locksmith" | "ReaperOfSouls" | "Survivor" | "Pitcher" | "Trapsetter" | "TreasureHunter" | "Collector" | "Explorer" | "Grandmaster" | "Prepared" | "Doctor" | "Artificer" | "Returned" | "DragonSlayer" | "Treasurer" | "Pulchritudinous" | "Friendly" | "Malevolent" | "Benevolent" | "Boundless" | "Talented" | "Weathered" | "Seasoned" | "Pacifier" | "Merchant" | "Notekeeper" | "Operator" | "Huntsman" | "Contender" | "Challenger" | "DestroyerOfMagi" | "Helmsman" | "Multitasker" | "Apocryphal" | "Diverse" | "InternalDiscoveredBoats" | "Traitor" | "MasterOfAll" | "Rouseabout" | "Murderer" | "Retailer" | "Masochist" | "Versatile" | "InternalStatDiscovery" | "Dedicated" | "Hounded" | "Serene" | "InternalRuneOrAltarDiscovery" | "Curator" | "Thaumaturgic" | "InternalDeityDiscovery" | "InternalMerchantsDiscovery" | "InternalDeitySystemDiscovery" | "Invoker" | "InternalDeityInvoked" | "InternalInsulationDiscovery" | "Turbulent" | "Afflicted" | "Exsanguinated" | "InternalItemDiscovered">, import("../argument/ActionArgumentEnum").default<SkillType, "None" | "Chemistry" | "Anatomy" | "Marksmanship" | "Blacksmithing" | "Botany" | "Camping" | "Cartography" | "Claythrowing" | "Cooking" | "Fishing" | "Fletching" | "Glassblowing" | "Leatherworking" | "Lockpicking" | "Lumberjacking" | "Mining" | "Mycology" | "Parrying" | "Stonecrafting" | "Swimming" | "Tactics" | "Tailoring" | "Throwing" | "Tinkering" | "Trapping" | "Woodworking" | "Taming" | "Horticulture" | "Bartering" | "Seafaring" | "Thaumaturgy" | "DualWielding" | "Theurgy">]], ActionType.SetTitle, import("../../player/Player").default, void, import("@wayward/game/game/entity/action/IAction").IActionUsable, [(TitleType | undefined)?, (Milestone | SkillType | undefined)?]>;
19
+ declare const _default: Action<[[ActionArgument.Undefined, import("../argument/ActionArgumentEnum").default<TitleType, "Skill" | "Milestone">], [arg1: ActionArgument.Undefined, import("../argument/ActionArgumentEnum").default<Milestone, "Statistician" | "Runekeeper" | "Navigator" | "Abnormalizer" | "Chef" | "Exterminator" | "Crafter" | "Gardener" | "Gatherer" | "Hunter" | "Locksmith" | "ReaperOfSouls" | "Survivor" | "Pitcher" | "Trapsetter" | "TreasureHunter" | "Collector" | "Explorer" | "Grandmaster" | "Prepared" | "Doctor" | "Artificer" | "Returned" | "DragonSlayer" | "Treasurer" | "Pulchritudinous" | "Friendly" | "Malevolent" | "Benevolent" | "Boundless" | "Talented" | "Weathered" | "Seasoned" | "Pacifier" | "Merchant" | "Notekeeper" | "Operator" | "Huntsman" | "Contender" | "Challenger" | "DestroyerOfMagi" | "Helmsman" | "Multitasker" | "Apocryphal" | "Diverse" | "InternalDiscoveredBoats" | "Traitor" | "MasterOfAll" | "Rouseabout" | "Murderer" | "Retailer" | "Masochist" | "Versatile" | "InternalStatDiscovery" | "Dedicated" | "Hounded" | "Serene" | "InternalRuneOrAltarDiscovery" | "Curator" | "Thaumaturgic" | "InternalDeityDiscovery" | "InternalMerchantsDiscovery" | "InternalCurseSystemDiscovery" | "Invoker" | "InternalDeityInvoked" | "InternalInsulationDiscovery" | "Turbulent" | "Afflicted" | "Exsanguinated" | "InternalItemDiscovered">, import("../argument/ActionArgumentEnum").default<SkillType, "None" | "Taming" | "Mining" | "Swimming" | "Chemistry" | "Anatomy" | "Marksmanship" | "Blacksmithing" | "Botany" | "Camping" | "Cartography" | "Claythrowing" | "Cooking" | "Fishing" | "Fletching" | "Glassblowing" | "Leatherworking" | "Lockpicking" | "Lumberjacking" | "Mycology" | "Parrying" | "Stonecrafting" | "Tactics" | "Tailoring" | "Throwing" | "Tinkering" | "Trapping" | "Woodworking" | "Horticulture" | "Bartering" | "Seafaring" | "Thaumaturgy" | "DualWielding" | "Theurgy">]], ActionType.SetTitle, import("../../player/Player").default, void, import("@wayward/game/game/entity/action/IAction").IActionUsable, [(TitleType | undefined)?, (Milestone | SkillType | undefined)?]>;
20
20
  export default _default;
@@ -62,7 +62,7 @@ export default class MessageManager implements IMessageManager {
62
62
  * When called from the server, it is sent to every client.
63
63
  */
64
64
  static toAll(sender: MessageManagerToAllSender): boolean;
65
- static toAll(players: Human[], sender: MessageManagerToAllSender): boolean;
65
+ static toAll(players: Iterable<Human>, sender: MessageManagerToAllSender): boolean;
66
66
  private readonly history;
67
67
  private lastMessageId;
68
68
  private _source;
@@ -15,9 +15,12 @@ import { MessageType } from "@wayward/game/game/entity/player/IMessageManager";
15
15
  import type IStatusContext from "@wayward/game/game/entity/status/IStatusContext";
16
16
  import type Status from "@wayward/game/game/entity/status/Status";
17
17
  import type { StatusEffectList } from "@wayward/game/game/entity/status/StatusEffectList";
18
+ import type { IIcon } from "@wayward/game/game/inspection/InfoProvider";
18
19
  import type { IGameOptionsStatus } from "@wayward/game/game/options/IGameOptions";
19
20
  import type Dictionary from "@wayward/game/language/Dictionary";
21
+ import type { StatusTranslation } from "@wayward/game/language/dictionary/Misc";
20
22
  import type { TranslationArg } from "@wayward/game/language/ITranslation";
23
+ import type Translation from "@wayward/game/language/Translation";
21
24
  import type StatusRenderer from "@wayward/game/renderer/StatusRenderer";
22
25
  import type { IHighlight } from "@wayward/game/ui/util/IHighlight";
23
26
  import type ImagePath from "@wayward/game/ui/util/ImagePath";
@@ -25,19 +28,33 @@ import type { IRGB } from "@wayward/utilities/Color";
25
28
  import type { IRange } from "@wayward/utilities/math/Range";
26
29
  export declare const STATUS_BASE_INTERVAL = 20;
27
30
  export type StatusParticle = [countOrChance: number, color: IRGB];
28
- export interface IStatusDescription {
31
+ export interface IStatusDisplayable {
32
+ highlight?: SupplierOr<IHighlight | undefined, [IStatusContext]>;
33
+ icon?: SupplierOr<IStatusIconDescription | undefined, [IStatusContext]>;
34
+ getBorderColorOverride?(status?: Status): string | undefined;
35
+ getCategoryOverride?(status?: Status): IStatusCategoryOverride | undefined;
36
+ }
37
+ export interface IStatusCategoryOverride {
38
+ icon: string | IIcon;
39
+ translation: Translation;
40
+ }
41
+ export interface IStatusDescription extends IStatusDisplayable {
29
42
  applicability: StatusApplicability;
30
43
  relevantStat?: Stat;
31
- levelledDictionary?: Dictionary;
44
+ levelledDictionary?: Dictionary | {
45
+ dictionary: Dictionary;
46
+ whichMap: Record<StatusTranslation, number>;
47
+ };
32
48
  sound?: SfxType | Record<number, SfxType>;
33
49
  /** Defaults to neutral */
34
- threatLevel?: StatusThreatLevel | Record<number, StatusThreatLevel>;
50
+ threatLevel?: StatusThreatLevel | Record<number, StatusThreatLevel> | false;
35
51
  /** An optional list of status effect levels that will be displayed in the `StatusInspection` for inspecting the status type itself */
36
52
  listedLevels?: number[];
53
+ /** An optional replacement list of icons to display for this status effect, rather than the single default icon. */
54
+ getDisplay?(status: Status): IStatusDisplayInstance[] | undefined;
55
+ getSubtitle?(): Translation | undefined;
37
56
  interval?: SupplierOr<number | undefined, [IStatusContext]>;
38
57
  effects?: SupplierOr<StatusEffectList | undefined, [IStatusContext, StatusEffectList]>;
39
- highlight?: SupplierOr<IHighlight | undefined, [IStatusContext]>;
40
- icon?: SupplierOr<IStatusIconDescription | undefined, [IStatusContext]>;
41
58
  particles?: SupplierOr<StatusParticle | undefined, [IStatusContext, StatusParticleEvent?]>;
42
59
  /** A list of `StatusRenderer`s that could be returned by a supplier in the `renderer` property */
43
60
  renderers?: StatusRenderer[];
@@ -57,6 +74,10 @@ export interface IStatusDescription {
57
74
  onPassed?(status: Status, oldLevel: number): any;
58
75
  refresh?(status: Status): any;
59
76
  }
77
+ export interface IStatusDisplayInstance extends IStatusDisplayable {
78
+ level?: number;
79
+ threatLevel?: StatusThreatLevel;
80
+ }
60
81
  export interface IStatusIconDescription {
61
82
  /**
62
83
  * A custom path for the icon, if necessary.
@@ -85,7 +106,8 @@ export declare enum StatusType {
85
106
  Pacified = 10,
86
107
  Frenzied = 11,
87
108
  Statistician = 12,
88
- Runekeeper = 13
109
+ Runekeeper = 13,
110
+ Cursed = 14
89
111
  }
90
112
  /** Fake status types just for display */
91
113
  export declare enum DisplayStatusType {
@@ -108,7 +130,8 @@ export declare enum StatusThreatLevel {
108
130
  Good = 0,
109
131
  Neutral = 1,
110
132
  Issue = 2,
111
- Threat = 3
133
+ Threat = 3,
134
+ Hidden = 4
112
135
  }
113
136
  export declare enum StatusEffectType {
114
137
  AddsAChanceOfXOnY = 0,
@@ -9,7 +9,8 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import type EntityWithStats from "@wayward/game/game/entity/EntityWithStats";
12
- import type { IStatusDescription, StatusThreatLevel, StatusType } from "@wayward/game/game/entity/status/IStatus";
12
+ import type { IStatusDescription, StatusType } from "@wayward/game/game/entity/status/IStatus";
13
+ import { StatusThreatLevel } from "@wayward/game/game/entity/status/IStatus";
13
14
  import type Status from "@wayward/game/game/entity/status/Status";
14
15
  import { StatusEffectList } from "@wayward/game/game/entity/status/StatusEffectList";
15
16
  import type { IGameOptionsStatus } from "@wayward/game/game/options/IGameOptions";
@@ -63,7 +63,7 @@ export default class Status extends EventEmitter.Host<IStatusEvents> {
63
63
  * @param color The color of the particle effect
64
64
  */
65
65
  getParticles(event: StatusParticleEvent): StatusParticle | undefined;
66
- getIcon(): IStatusIconDescription | undefined;
66
+ getIcon(displayIndex?: number): IStatusIconDescription | undefined;
67
67
  getHighlight(): IHighlight | undefined;
68
68
  isActive(): boolean;
69
69
  add(reason?: StatusChangeReason, level?: number, force?: boolean, oldLevel?: number): this;
@@ -75,7 +75,7 @@ export default class Status extends EventEmitter.Host<IStatusEvents> {
75
75
  */
76
76
  getLevel(): number;
77
77
  getThreatLevel(): StatusThreatLevel;
78
- getTranslation(which?: StatusTranslation): TranslationImpl | undefined;
78
+ getTranslation(which?: StatusTranslation, level?: number): TranslationImpl | undefined;
79
79
  refresh(): void;
80
80
  getEffects(): StatusEffectList;
81
81
  getInterval(): number;
@@ -14,6 +14,9 @@ import type { StatusType } from "@wayward/game/game/entity/status/IStatus";
14
14
  import Status from "@wayward/game/game/entity/status/Status";
15
15
  import type Island from "@wayward/game/game/island/Island";
16
16
  import { Temperature, TempType } from "@wayward/game/game/temperature/ITemperature";
17
+ export declare const CHANCE_TEMP_CONSEQUENCE_EFFECT = 0.3;
18
+ export declare const CHANCE_TEMP_CONSEQUENCE_STAT = 0.5;
19
+ export declare const CHANCE_TEMP_WAKEUP = 0.15;
17
20
  export default abstract class BadTemperatureEffect extends Status {
18
21
  protected effectiveTemperature: Temperature;
19
22
  register(): void;
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * Copyright 2011-2025 Unlok
3
+ * https://www.unlok.ca
4
+ *
5
+ * Credits & Thanks:
6
+ * https://www.unlok.ca/credits-thanks/
7
+ *
8
+ * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
+ * https://github.com/WaywardGame/types/wiki
10
+ */
11
+ import type { IStatusDescription } from "@wayward/game/game/entity/status/IStatus";
12
+ declare const _default: IStatusDescription;
13
+ export default _default;
@@ -15,6 +15,7 @@ export default class StillWaterInfoProvider extends InfoProvider {
15
15
  static get(doodad: Doodad): StillWaterInfoProvider | undefined;
16
16
  private readonly waterTopMessage;
17
17
  private readonly waterBottomMessage;
18
+ private readonly waterContainerMessage;
18
19
  private constructor();
19
20
  getClass(): string[];
20
21
  hasContent(): boolean;
@@ -9,7 +9,8 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import type EntityWithStats from "@wayward/game/game/entity/EntityWithStats";
12
- import type { IStatusDescription, StatusThreatLevel } from "@wayward/game/game/entity/status/IStatus";
12
+ import type { IStatusDescription, IStatusDisplayable } from "@wayward/game/game/entity/status/IStatus";
13
+ import { StatusThreatLevel } from "@wayward/game/game/entity/status/IStatus";
13
14
  import { StatusType } from "@wayward/game/game/entity/status/IStatus";
14
15
  import IStatusContext from "@wayward/game/game/entity/status/IStatusContext";
15
16
  import type Status from "@wayward/game/game/entity/status/Status";
@@ -33,10 +34,12 @@ export declare enum StatusInspectionClasses {
33
34
  Cures = "inspection-type-status-cures"
34
35
  }
35
36
  export default class StatusInspection extends Inspection<StatusType> {
36
- static getAdjective(type: StatusType, status?: Status, threatGroup?: StatusThreatLevel): Translation;
37
+ static getAdjective(type: StatusType, status?: Status, threatGroup?: StatusThreatLevel, display?: number): Translation;
37
38
  static handles: (type: InspectType, value: unknown, context?: InfoProviderContext) => boolean;
38
39
  get statusContext(): IStatusContext;
39
40
  get status(): Status | undefined;
41
+ get displayIndex(): number | undefined;
42
+ get displayDefinition(): IStatusDisplayable | undefined;
40
43
  get entity(): EntityWithStats | undefined;
41
44
  get definition(): IStatusDescription | undefined;
42
45
  constructor([, type]: [ReferenceType, StatusType], context?: InfoProviderContext);
@@ -31,7 +31,7 @@ import type { ILiquidGather, IRangedResolvedDirection } from "@wayward/game/game
31
31
  import type { IRequirementInfo } from "@wayward/game/game/item/IItemManager";
32
32
  import ItemManager from "@wayward/game/game/item/ItemManager";
33
33
  import type DrawnMap from "@wayward/game/game/mapping/DrawnMap";
34
- import type { IGameOptions } from "@wayward/game/game/options/IGameOptions";
34
+ import type { IGameOptions, IGameOptionsPartial } from "@wayward/game/game/options/IGameOptions";
35
35
  import type { IslandModifiersCollection } from "@wayward/game/game/options/modifiers/island/IslandModifiers";
36
36
  import type { IReferenceable } from "@wayward/game/game/reference/IReferenceManager";
37
37
  import TemperatureManager from "@wayward/game/game/temperature/TemperatureManager";
@@ -53,6 +53,7 @@ import EventEmitter from "@wayward/utilities/event/EventEmitter";
53
53
  import type { Random } from "@wayward/utilities/random/Random";
54
54
  import type { LegacySeededGenerator } from "@wayward/utilities/random/generators/LegacySeededGenerator";
55
55
  import type { PCGSeededGenerator } from "@wayward/utilities/random/generators/PCGSeededGenerator";
56
+ import Curse from "@wayward/game/game/curse/Curse";
56
57
  export interface IIslandDetails {
57
58
  seed: number;
58
59
  biomeType: BiomeTypes;
@@ -105,6 +106,7 @@ export default class Island extends EventEmitter.Host<IIslandEvents> implements
105
106
  readonly wellData: SaferNumberIndexedObject<IWell>;
106
107
  referenceId?: number;
107
108
  tileContainers: ITileContainer[];
109
+ curse: Curse;
108
110
  tileData: SaferNumberIndexedObject<SaferNumberIndexedObject<SaferNumberIndexedObject<ITileData[]>>>;
109
111
  readonly seeds: ISeeds;
110
112
  get mapGenVersionInfo(): Version.Info;
@@ -172,6 +174,8 @@ export default class Island extends EventEmitter.Host<IIslandEvents> implements
172
174
  */
173
175
  private deactivate;
174
176
  private gameOptionsCached?;
177
+ /** A game options modifier that always returns an empty array by default, to be injected into */
178
+ getAdditionalGameOptionsSources(): IGameOptionsPartial[];
175
179
  getGameOptions(): ImmutableObject<IGameOptions>;
176
180
  clearGameOptionsCache(): void;
177
181
  rename(human: Human, newName: string): void;
@@ -70,7 +70,7 @@ export declare enum Milestone {
70
70
  Runekeeper = 58,
71
71
  InternalDeityDiscovery = 59,
72
72
  InternalMerchantsDiscovery = 60,
73
- InternalDeitySystemDiscovery = 61,
73
+ InternalCurseSystemDiscovery = 61,
74
74
  Invoker = 62,
75
75
  InternalDeityInvoked = 63,
76
76
  InternalInsulationDiscovery = 64,
@@ -32,6 +32,7 @@ import type { IPreSerializeCallback } from "@wayward/game/save/serializer/ISeria
32
32
  import type { IVector3 } from "@wayward/game/utilities/math/IVector";
33
33
  import { IRange } from "@wayward/utilities/math/Range";
34
34
  import Vector2 from "@wayward/game/utilities/math/Vector2";
35
+ import type { BiomeType } from "@wayward/game/game/biome/IBiome";
35
36
  export declare const TEMPERATURE_DIFFUSION_RATE: number;
36
37
  export declare const TEMPERATURE_BOUNDARY_MIN_VEC2: Vector2;
37
38
  export declare const TEMPERATURE_INVALID = 255;
@@ -100,6 +101,8 @@ export default class TemperatureManager extends EventEmitter.Host<ITemperatureMa
100
101
  getContainerItemsTemperature(container: IContainer, containerHash?: string): number | undefined;
101
102
  private getContainerBaseTemperature;
102
103
  private getContainerInsulation;
104
+ /** A global temperature modifier that always returns 0 by default, to be injected into */
105
+ getTempModifier(biome: BiomeType, layer: WorldZ): number;
103
106
  /**
104
107
  * Returns the current overall temperature for the given tile.
105
108
  */
@@ -27,6 +27,7 @@ export declare enum TimeFormat {
27
27
  */
28
28
  TwentyFourHourNoMinute = 4
29
29
  }
30
+ export type TimeString = (`${number}:${number}` | `${number}:${number}${"am" | "pm"}` | `${number}${"am" | "pm"}`);
30
31
  export declare enum PartOfDay {
31
32
  Nighttime = 1,
32
33
  Dawn = 2,
@@ -8,7 +8,7 @@
8
8
  * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
- import type { PartOfDayGranular } from "@wayward/game/game/time/ITimeManager";
11
+ import type { PartOfDayGranular, TimeString } from "@wayward/game/game/time/ITimeManager";
12
12
  import { DayQuarter, TimeFormat } from "@wayward/game/game/time/ITimeManager";
13
13
  import type TranslationImpl from "@wayward/game/language/impl/TranslationImpl";
14
14
  export default class TimeManager {
@@ -66,13 +66,13 @@ export default class TimeManager {
66
66
  * @param checkTime A formatted time.
67
67
  * @param time The time to check, defaulting to the current time.
68
68
  */
69
- isPast(checkTime: string, time?: number): boolean | undefined;
69
+ isPast(checkTime: TimeString, time?: number): boolean | undefined;
70
70
  /**
71
71
  * Checks if the given time is before a formatted time.
72
72
  * @param checkTime A formatted time.
73
73
  * @param time The time to check, defaulting to the current time.
74
74
  */
75
- isBefore(checkTime: string, time?: number): boolean | undefined;
75
+ isBefore(checkTime: TimeString, time?: number): boolean | undefined;
76
76
  /**
77
77
  * Returns if the given time is between two formatted times.
78
78
  * @param checkPast A formatted time to check if the given time is after.
@@ -81,7 +81,7 @@ export default class TimeManager {
81
81
  *
82
82
  * Internally calls `isPast` and `isBefore`
83
83
  */
84
- isBetween(checkPast: string, checkBefore: string, currentTime?: number): boolean | undefined;
84
+ isBetween(checkPast: TimeString, checkBefore: TimeString, currentTime?: number): boolean | undefined;
85
85
  /**
86
86
  * Returns the hours and minutes of the given time.
87
87
  * @param time The time to use, defaulting to the current time.