@wayward/types 2.15.0-beta.dev.20251011.1 → 2.15.0-beta.dev.20251018.2

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 (79) hide show
  1. package/definitions/game/audio/IAudio.d.ts +70 -66
  2. package/definitions/game/game/curse/Curse.d.ts +11 -4
  3. package/definitions/game/game/curse/CurseEvent.d.ts +14 -5
  4. package/definitions/game/game/curse/ICurse.d.ts +11 -1
  5. package/definitions/game/game/curse/event/CurseEventCraftingInspiration.d.ts +2 -0
  6. package/definitions/game/game/curse/event/CurseEventFrigidNight.d.ts +1 -0
  7. package/definitions/game/game/curse/event/CurseEventHeatWave.d.ts +1 -0
  8. package/definitions/game/game/curse/event/CurseEventHorde.d.ts +20 -0
  9. package/definitions/game/game/curse/event/CurseEventLucky.d.ts +1 -0
  10. package/definitions/game/game/curse/event/CurseEventNewPlants.d.ts +15 -0
  11. package/definitions/game/game/curse/event/CurseEventPlantDeath.d.ts +15 -0
  12. package/definitions/game/game/curse/event/CurseEventShadows.d.ts +2 -1
  13. package/definitions/game/game/curse/event/CurseEventSwarm.d.ts +18 -0
  14. package/definitions/game/game/curse/event/CurseEventUnlucky.d.ts +1 -0
  15. package/definitions/game/game/doodad/Doodad.d.ts +3 -7
  16. package/definitions/game/game/doodad/DoodadUtilities.d.ts +3 -1
  17. package/definitions/game/game/doodad/Doodads.d.ts +2 -1
  18. package/definitions/game/game/doodad/IDoodad.d.ts +35 -3
  19. package/definitions/game/game/entity/CombatStrengthManager.d.ts +1 -1
  20. package/definitions/game/game/entity/Human.d.ts +3 -4
  21. package/definitions/game/game/entity/IEntity.d.ts +11 -0
  22. package/definitions/game/game/entity/IHuman.d.ts +2 -2
  23. package/definitions/game/game/entity/IStats.d.ts +17 -42
  24. package/definitions/game/game/entity/Stats.d.ts +1 -0
  25. package/definitions/game/game/entity/action/Action.d.ts +2 -20
  26. package/definitions/game/game/entity/action/actions/SetTitle.d.ts +1 -1
  27. package/definitions/game/game/entity/player/IMessageManager.d.ts +5 -1
  28. package/definitions/game/game/entity/skill/ISkills.d.ts +1 -0
  29. package/definitions/game/game/entity/status/IStatus.d.ts +13 -8
  30. package/definitions/game/game/entity/status/IStatusContext.d.ts +1 -1
  31. package/definitions/game/game/entity/status/StatusEffectList.d.ts +2 -0
  32. package/definitions/game/game/inspection/IInspection.d.ts +5 -3
  33. package/definitions/game/game/inspection/InspectionTypeMap.d.ts +4 -2
  34. package/definitions/game/game/inspection/infoProviders/MagicalCurseProperties.d.ts +30 -0
  35. package/definitions/game/game/inspection/infoProviders/MagicalPropertyValue.d.ts +1 -0
  36. package/definitions/game/game/inspection/infoProviders/item/MagicalSourceTooltip.d.ts +3 -3
  37. package/definitions/game/game/inspection/infoProviders/item/use/ItemBuildInfo.d.ts +1 -1
  38. package/definitions/game/game/inspection/inspections/MagicCurseInspection.d.ts +29 -0
  39. package/definitions/game/game/inspection/inspections/utility/EffectRadiusRegistry.d.ts +24 -0
  40. package/definitions/game/game/item/IItem.d.ts +24 -2
  41. package/definitions/game/game/item/Item.d.ts +0 -5
  42. package/definitions/game/game/item/ItemManager.d.ts +5 -0
  43. package/definitions/game/game/magic/IMagicalProperty.d.ts +6 -1
  44. package/definitions/game/game/magic/MagicalPropertyManager.d.ts +39 -5
  45. package/definitions/game/game/magic/MagicalPropertyType.d.ts +4 -0
  46. package/definitions/game/game/milestones/MilestoneDefinition.d.ts +2 -2
  47. package/definitions/game/game/options/IGameOptions.d.ts +7 -0
  48. package/definitions/game/game/reference/IReferenceManager.d.ts +12 -1
  49. package/definitions/game/game/tile/ITerrain.d.ts +3 -22
  50. package/definitions/game/game/tile/Tile.d.ts +4 -2
  51. package/definitions/game/game/time/TimeManager.d.ts +4 -1
  52. package/definitions/game/language/DictionaryMap.d.ts +32 -0
  53. package/definitions/game/language/LanguageManager.d.ts +0 -2
  54. package/definitions/game/language/Translation.d.ts +1 -0
  55. package/definitions/game/language/dictionary/Message.d.ts +565 -564
  56. package/definitions/game/language/dictionary/Misc.d.ts +69 -65
  57. package/definitions/game/language/dictionary/UiTranslation.d.ts +858 -850
  58. package/definitions/game/language/english/item/DoodadsExtra.d.ts +2 -2
  59. package/definitions/game/language/english/item/ItemsExtra.d.ts +2 -2
  60. package/definitions/game/language/english/item/MagicalPropertyTypes.d.ts +1 -1
  61. package/definitions/game/renderer/fieldOfView/IFieldOfView.d.ts +4 -1
  62. package/definitions/game/renderer/overlay/EffectRadiusOverlay.d.ts +36 -0
  63. package/definitions/game/renderer/world/WorldRenderer.d.ts +4 -0
  64. package/definitions/game/save/data/ISaveDataGlobal.d.ts +1 -0
  65. package/definitions/game/save/upgrade/UpgradeVersion.d.ts +4 -0
  66. package/definitions/game/save/upgrade/versions/beta2.15.0/beta2.15.0-dev20251012.d.ts +12 -0
  67. package/definitions/game/save/upgrade/versions/beta2.15.0/beta2.15.0-dev20251016.d.ts +12 -0
  68. package/definitions/game/save/upgrade/versions/beta2.15.0/beta2.15.0-dev20251018.d.ts +12 -0
  69. package/definitions/game/ui/old/OldUi.d.ts +2 -0
  70. package/definitions/game/ui/screen/screens/game/component/ItemComponent.d.ts +1 -0
  71. package/definitions/game/ui/screen/screens/game/static/Stats.d.ts +1 -0
  72. package/definitions/game/ui/screen/screens/game/static/stats/IStatDisplayDescription.d.ts +16 -4
  73. package/definitions/game/ui/screen/screens/game/static/stats/TemperatureDisplay.d.ts +13 -0
  74. package/definitions/game/ui/screen/screens/game/static/stats/component/StatComponent.d.ts +3 -0
  75. package/definitions/game/ui/screen/screens/menu/menus/options/TabPerformance.d.ts +1 -0
  76. package/definitions/game/ui/screen/screens/menu/menus/options/TabVideo.d.ts +2 -0
  77. package/definitions/game/utilities/math/Vector2.d.ts +25 -5
  78. package/definitions/utilities/math/Range.d.ts +6 -6
  79. package/package.json +1 -1
@@ -11,72 +11,76 @@
11
11
  export declare enum SfxType {
12
12
  Boat = 0,
13
13
  Bow = 1,
14
- Chat = 2,
15
- Craft = 3,
16
- CraftFail = 4,
17
- CreatureHit = 5,
18
- CreatureNoise = 6,
19
- Damaged = 7,
20
- DangerousMove = 8,
21
- Death = 9,
22
- Eating = 10,
23
- Encumbered = 11,
24
- Exceptional = 12,
25
- Extinguish = 13,
26
- Fail = 14,
27
- FluteNoteA = 15,
28
- FluteNoteB = 16,
29
- FluteNoteC = 17,
30
- FluteNoteD = 18,
31
- FluteNoteE = 19,
32
- FluteNoteF = 20,
33
- FluteNoteG = 21,
34
- FluteNoteH = 22,
35
- FluteNoteI = 23,
36
- GraniteHit = 24,
37
- Hit = 25,
38
- Hurt = 26,
39
- InvokeChaos = 27,
40
- InvokeEvil = 28,
41
- InvokeGood = 29,
42
- Minecart = 30,
43
- Miss = 31,
44
- Overburdened = 32,
45
- PickUp = 33,
46
- Sacrifice = 34,
47
- SandstoneHit = 35,
48
- Slip = 36,
49
- Swim = 37,
50
- Throw = 38,
51
- Trample = 39,
52
- TreeHit = 40,
53
- UiActivate = 41,
54
- UiChoose = 42,
55
- UiClose = 43,
56
- UiDisable = 44,
57
- UiEnable = 45,
58
- UiEquip = 46,
59
- UiInput = 47,
60
- UiInputdelete = 48,
61
- UiInvalid = 49,
62
- UiOpen = 50,
63
- UiOpensmall = 51,
64
- UiProtect = 52,
65
- UiReorder = 53,
66
- UiSelect = 54,
67
- UiSort = 55,
68
- UiStack = 56,
69
- UiTrade = 57,
70
- UiUnequip = 58,
71
- UiUnprotect = 59,
72
- UiUnstack = 60,
73
- Walk = 61,
74
- Water = 62,
75
- Wheelbarrow = 63,
76
- Break = 64,
77
- GeneralAction = 65,
78
- GeneralMagicalAction = 66,
79
- Exude = 67
14
+ Break = 2,
15
+ Chat = 3,
16
+ Craft = 4,
17
+ CraftFail = 5,
18
+ CreatureHit = 6,
19
+ CreatureNoise = 7,
20
+ Curse = 8,
21
+ CurseEventNewPlants = 9,
22
+ CurseEventPlantDeath = 10,// Reversed CurseEventNewPlants sound
23
+ CurseWarning = 11,
24
+ Damaged = 12,
25
+ DangerousMove = 13,
26
+ Death = 14,
27
+ Eating = 15,
28
+ Encumbered = 16,
29
+ Exceptional = 17,
30
+ Extinguish = 18,
31
+ Exude = 19,// Reversed GeneralMagicalAction sound
32
+ Fail = 20,
33
+ FluteNoteA = 21,
34
+ FluteNoteB = 22,
35
+ FluteNoteC = 23,
36
+ FluteNoteD = 24,
37
+ FluteNoteE = 25,
38
+ FluteNoteF = 26,
39
+ FluteNoteG = 27,
40
+ FluteNoteH = 28,
41
+ FluteNoteI = 29,
42
+ GeneralAction = 30,
43
+ GeneralMagicalAction = 31,
44
+ GraniteHit = 32,
45
+ Hit = 33,
46
+ Hurt = 34,
47
+ InvokeChaos = 35,
48
+ InvokeEvil = 36,
49
+ InvokeGood = 37,
50
+ Minecart = 38,
51
+ Miss = 39,
52
+ Overburdened = 40,
53
+ PickUp = 41,
54
+ Sacrifice = 42,
55
+ SandstoneHit = 43,
56
+ Slip = 44,
57
+ Swim = 45,
58
+ Throw = 46,
59
+ Trample = 47,
60
+ TreeHit = 48,
61
+ UiActivate = 49,
62
+ UiChoose = 50,
63
+ UiClose = 51,
64
+ UiDisable = 52,
65
+ UiEnable = 53,
66
+ UiEquip = 54,
67
+ UiInput = 55,
68
+ UiInputdelete = 56,
69
+ UiInvalid = 57,
70
+ UiOpen = 58,
71
+ UiOpensmall = 59,
72
+ UiProtect = 60,
73
+ UiReorder = 61,
74
+ UiSelect = 62,
75
+ UiSort = 63,
76
+ UiStack = 64,
77
+ UiTrade = 65,
78
+ UiUnequip = 66,
79
+ UiUnprotect = 67,
80
+ UiUnstack = 68,
81
+ Walk = 69,
82
+ Water = 70,
83
+ Wheelbarrow = 71
80
84
  }
81
85
  export type SfxUi = Extract<keyof typeof SfxType, `Ui${string}`> extends `Ui${infer RESULT}` ? Lowercase<RESULT> : never;
82
86
  export declare enum Music {
@@ -19,8 +19,11 @@ import { IRange, IRangeRange } from "@wayward/utilities/math/Range";
19
19
  import DataComponent from "@wayward/game/game/entity/data/DataComponent";
20
20
  export declare const CURSE_CAP = 10000;
21
21
  export declare const CURSE_COMPONENT_ATTACK_CAP = 50;
22
+ export declare const CURSE_COMPONENT_ATTACK_FLOOR = 1;
22
23
  export declare const CURSE_COMPONENT_DEFENSE_CAP = 100;
24
+ export declare const CURSE_COMPONENT_DEFENSE_FLOOR = 2;
23
25
  export declare const CURSE_COMPONENT_CRAFTING_CAP = 3000;
26
+ export declare const CURSE_COMPONENT_CRAFTING_MIN_EFFECT = 0.3;
24
27
  export declare const CURSE_COMPONENT_KILLING_CAP = 500;
25
28
  export declare const CURSE_COMPONENT_SKILL_CAP = 100;
26
29
  export declare const CURSE_COMPONENT_SLEEPLESSNESS_CAP_DAYS = 6;
@@ -66,7 +69,7 @@ export declare const CURSE_EVENTS_MAELSTROM_SPEED = 1;
66
69
  * At 0-1 maelstrom, there are up to 2 opportunities per night. (Per player, because curse events are localised.)
67
70
  * Additional opportunities before the top opportunity always use the max chance.
68
71
  */
69
- export declare const CURSE_EVENTS_CHANCE: IRange;
72
+ export declare const CURSE_EVENTS_CHANCE: IRange<number>;
70
73
  export declare const CURSE_EVENTS_DEFAULT_RADIUS = 25;
71
74
  /**
72
75
  * An IRangeRange for randomly selecting the cooldown time between curse event nights.
@@ -91,6 +94,9 @@ declare namespace Curse {
91
94
  definition: CurseEvent;
92
95
  }
93
96
  function get(island?: Island, type?: CurseEventType): Helper | undefined;
97
+ function all(island: Island): CurseEventContext[];
98
+ function isMysteryForClient(event: CurseEventInstance): boolean;
99
+ function isMysteryForHuman(event: CurseEventInstance, human: Human): boolean;
94
100
  function willHaveEventsTonight(island: Island): boolean;
95
101
  function canWarnAboutIncomingEvents(island: Island): boolean;
96
102
  function getCooldownMultiplier(island: Island, humans?: Human<unknown, number, import("../reference/IReferenceManager").ReferenceType.NPC | import("../reference/IReferenceManager").ReferenceType.Player, unknown>[]): number;
@@ -101,7 +107,7 @@ declare namespace Curse {
101
107
  function attemptCurseEventSpawn(category: CurseCategory, human: Human, curse: number, humans: Human[], events: CurseEventInstance[]): CurseEventInstance | undefined;
102
108
  function attemptSpecificCurseEventSpawn(human: Human, type: CurseEventType, humans: Human[], curse?: number): CurseEventInstance | undefined;
103
109
  function unload(island: Island): void;
104
- function cleanup(island: Island, humans?: Human[]): void;
110
+ function cleanup(island: Island, humans?: Human[], isMorning?: boolean): void;
105
111
  function cleanupEphemerals(island: Island): void;
106
112
  function createCurseEventContext(instance: CurseEventInstance, island: Island, humans?: Human[], cursebearer?: Human): CurseEventContext;
107
113
  }
@@ -117,9 +123,10 @@ interface Curse {
117
123
  [SYMBOL_CURSE_EVENT_GLOBAL_SUBSCRIBER_INSTANCE]?: CurseEventSubscriber;
118
124
  [SYMBOL_CURSE_EVENT_ACTIVE_SUBSCRIBER_INSTANCE]?: CurseEventSubscriber;
119
125
  }
120
- interface CurseEventInstance {
126
+ export interface CurseEventInstance {
121
127
  type: CurseEventType;
122
- display: CurseEventDisplayMode;
128
+ defaultDisplay: CurseEventDisplayMode;
129
+ display: Record<string, CurseEventDisplayMode>;
123
130
  cursebearerIdentifier: string;
124
131
  curse: number;
125
132
  point: IVector2;
@@ -9,7 +9,7 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import type { BiomeType } from "@wayward/game/game/biome/IBiome";
12
- import type { CurseGroup, CurseEventDisplayMode, CurseEventType, CurseCategory, CursePosition } from "@wayward/game/game/curse/ICurse";
12
+ import type { CurseGroup, CurseEventType, CurseCategory, CursePosition, CurseEventRevealCondition } from "@wayward/game/game/curse/ICurse";
13
13
  import type Human from "@wayward/game/game/entity/Human";
14
14
  import type Island from "@wayward/game/game/island/Island";
15
15
  import type { IGameOptionsPartial } from "@wayward/game/game/options/IGameOptions";
@@ -23,8 +23,14 @@ import type Doodad from "@wayward/game/game/doodad/Doodad";
23
23
  import type Item from "@wayward/game/game/item/Item";
24
24
  import type TileEvent from "@wayward/game/game/tile/TileEvent";
25
25
  import type WorldZ from "@wayward/utilities/game/WorldZ";
26
+ import type { StatusEffectList } from "@wayward/game/game/entity/status/StatusEffectList";
27
+ import type { CurseEventInstance } from "@wayward/game/game/curse/Curse";
26
28
  /** The API that curse events have access to */
27
29
  export interface CurseEventContext {
30
+ readonly type: CurseEventType;
31
+ readonly definition: CurseEvent | undefined;
32
+ /** @deprecated You shouldn't have to use this */
33
+ readonly instance: CurseEventInstance;
28
34
  readonly island: Island;
29
35
  /** The epicenter of the curse, based on `CurseEvent.position` */
30
36
  readonly point: IVector2;
@@ -54,7 +60,7 @@ export interface CurseEventContext {
54
60
  *
55
61
  * @param evenWhenAsleep Disable the default functionality of preventing spawns if the cursebearer is asleep
56
62
  */
57
- spawnCreature(type?: CreatureType, tile?: Tile, evenWhenAsleep?: true): Creature | undefined;
63
+ spawnCreature(type?: CreatureType, aberrant?: boolean, tile?: Tile, evenWhenAsleep?: true): Creature | undefined;
58
64
  /**
59
65
  * Note: This does not check whether or not the cursebearer is asleep.
60
66
  * @param options The options for extinguishing lights
@@ -65,13 +71,13 @@ export interface CurseEventContext {
65
71
  * Mark the given creatures as "curse event" creatures. See the `spawnCreature` function for more information
66
72
  */
67
73
  claim(...creatures: Creature[]): void;
74
+ reveal(forSpecificHuman?: ArrayOr<Human>): boolean;
75
+ discover(forSpecificHuman?: ArrayOr<Human>): boolean;
68
76
  /**
69
77
  * Inject a custom curse event subscriber class into the game.
70
78
  * This class *must* be included in `CurseEvent.subscribers`.
71
79
  */
72
80
  inject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
73
- setDisplay(mode: CurseEventDisplayMode): void;
74
- discover(forSpecificHuman?: Human): void;
75
81
  uninject(): void;
76
82
  uninject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
77
83
  toString(): string;
@@ -98,7 +104,9 @@ export interface CurseEvent {
98
104
  * All curse events default to a weight of 1, so setting this to 0.5 would make it half as likely as any other event.
99
105
  */
100
106
  weight?: number;
101
- discoveredByDefault?: true;
107
+ revealOn: ArrayOr<CurseEventRevealCondition>;
108
+ discoverOn: ArrayOr<CurseEventRevealCondition>;
109
+ effects?(context: CurseEventContext, effects: StatusEffectList): StatusEffectList;
102
110
  /** A number 0-1 representing the curse level that the randomly selected player must have in order for this curse event to be chosen */
103
111
  requiredCurseLevel?: number;
104
112
  requiredBiomes?: {
@@ -108,6 +116,7 @@ export interface CurseEvent {
108
116
  /** If one event is marked as conflicting with another, they will both have the conflict registered. */
109
117
  conflicts?: CurseEventType[];
110
118
  requiredPredicate?(context: CurseEventContext): boolean;
119
+ /** Defaults to `CursePosition.None` */
111
120
  position?: CursePosition;
112
121
  /**
113
122
  * Controls the radius of the curse event. Defaults to the value of `CURSE_EVENTS_DEFAULT_RADIUS` (at time of writing, 25.)
@@ -56,7 +56,7 @@ export declare enum CurseCategory {
56
56
  export declare enum CursePosition {
57
57
  /** The default value for a curse event. `position` returns the island's center. */
58
58
  None = 0,
59
- /** The curse event spawns in a random location near the cursebearer. */
59
+ /** The curse event spawns in a random location near the cursebearer, but not within LoS. */
60
60
  Random = 1,
61
61
  /** The curse event's position is always directly on the cursebearer. */
62
62
  Follow = 2
@@ -78,3 +78,13 @@ export declare enum CurseEventDisplayMode {
78
78
  Mystery = 1,
79
79
  Revealed = 2
80
80
  }
81
+ export declare enum CurseEventRevealCondition {
82
+ None = 0,
83
+ /** Does nothing except indicate to *yourself* that this curse event will reveal via scripts */
84
+ Scripts = 1,
85
+ Start = 2,
86
+ End = 3,
87
+ Revealed = 4,
88
+ CreatureWitnessed = 5,
89
+ CreatureKilled = 6
90
+ }
@@ -9,5 +9,7 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ export declare const CURSE_EVENT_CRAFTING_INSPIRATION_DIFFICULTY_MULTIPLIER = 0.85;
13
+ export declare const CURSE_EVENT_CRAFTING_INSPIRATION_MAGIC_CHANCE_MULTIPLIER = 0.5;
12
14
  declare const _default: CurseEvent;
13
15
  export default _default;
@@ -9,5 +9,6 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ export declare const CURSE_EVENT_FRIGID_NIGHT_TEMP_GRADIENT: number[];
12
13
  declare const _default: CurseEvent;
13
14
  export default _default;
@@ -9,5 +9,6 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ export declare const CURSE_EVENT_HEAT_WAVE_TEMP_GRADIENT: number[];
12
13
  declare const _default: CurseEvent;
13
14
  export default _default;
@@ -0,0 +1,20 @@
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 { BiomeType } from "@wayward/game/game/biome/IBiome";
12
+ import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
13
+ import { CreatureType } from "@wayward/game/game/entity/creature/ICreature";
14
+ import { CombatStrength } from "@wayward/game/game/entity/ICombatStrength";
15
+ import { IRange, IRangeRange } from "@wayward/utilities/math/Range";
16
+ export declare const CURSE_EVENT_HORDE_CHANCES: Array<[IRange, CombatStrength | IRange<CombatStrength>]>;
17
+ export declare const CURSE_EVENT_HORDE_CREATURE_COUNT: IRangeRange;
18
+ export declare const CURSE_EVENT_HORDE_TABLE: PartialRecord<BiomeType, CreatureType[]>;
19
+ declare const _default: CurseEvent;
20
+ export default _default;
@@ -9,5 +9,6 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ export declare const CURSE_EVENT_LUCKY_LUCK_MULTIPLIER = 1.1;
12
13
  declare const _default: CurseEvent;
13
14
  export default _default;
@@ -0,0 +1,15 @@
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
+ export declare const CURSE_EVENT_NEW_PLAMTS_CHANCE_GRADIENT: number[];
13
+ export declare const CURSE_EVENT_NEW_PLAMTS_DRYAD_CHANCE_GRADIENT: number[];
14
+ declare const _default: CurseEvent;
15
+ export default _default;
@@ -0,0 +1,15 @@
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
+ export declare const CURSE_EVENT_PLAMTS_DEATH_CHANCE_GRADIENT: number[];
13
+ export declare const CURSE_EVENT_PLAMTS_DEATH_DRYAD_CHANCE_GRADIENT: number[];
14
+ declare const _default: CurseEvent;
15
+ export default _default;
@@ -10,10 +10,11 @@
10
10
  */
11
11
  import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
12
  import { IRange, IRangeRange } from "@wayward/utilities/math/Range";
13
+ export declare const CURSE_EVENT_SHADOWS_SPAWN_COUNT = 3;
13
14
  export declare const CURSE_EVENT_SHADOWS_SPAWN_DELAY: IRangeRange;
14
15
  export declare const CURSE_EVENT_SHADOWS_EXTINGUISH_DELAY: IRangeRange;
15
16
  export declare const CURSE_EVENT_SHADOWS_EXTINGUISH_STATIC: IRangeRange;
16
17
  export declare const CURSE_EVENT_SHADOWS_EXTINGUISH_DYNAMIC: IRangeRange;
17
- export declare const CURSE_EVENT_SHADOWS_EXTINGUISH_TIME_MULTIPLIER: IRange;
18
+ export declare const CURSE_EVENT_SHADOWS_EXTINGUISH_TIME_MULTIPLIER: IRange<number>;
18
19
  declare const _default: CurseEvent;
19
20
  export default _default;
@@ -0,0 +1,18 @@
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
+ import { CreatureType } from "@wayward/game/game/entity/creature/ICreature";
13
+ import { IRangeRange } from "@wayward/utilities/math/Range";
14
+ import type { WeightedOption } from "@wayward/utilities/random/IRandom";
15
+ export declare const CURSE_EVENT_SWARM_CREATURES: Array<Array<WeightedOption<[CreatureType, boolean]>>>;
16
+ export declare const CURSE_EVENT_SWARM_CREATURE_COUNT: IRangeRange;
17
+ declare const _default: CurseEvent;
18
+ export default _default;
@@ -9,5 +9,6 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import { CurseEvent } from "@wayward/game/game/curse/CurseEvent";
12
+ export declare const CURSE_EVENT_UNLUCKY_LUCK_MULTIPLIER = 0.9;
12
13
  declare const _default: CurseEvent;
13
14
  export default _default;
@@ -11,7 +11,8 @@
11
11
  import { TileUpdateType } from "@wayward/game/game/IGame";
12
12
  import type { IHasQuality, IObject, IQualityEvents } from "@wayward/game/game/IObject";
13
13
  import { Quality } from "@wayward/game/game/IObject";
14
- import type { DisplayableDoodadType, DoodadTypeExtra, DoorOrientation, IDoodadDescription, IDoodadGetNameOptions, IDoodadOptions, IHasBuilder, IHasWater } from "@wayward/game/game/doodad/IDoodad";
14
+ import type { DisplayableDoodadType, DoorOrientation, IDoodadDescription, IDoodadGetNameOptions, IDoodadOptions, IHasBuilder, IHasWater } from "@wayward/game/game/doodad/IDoodad";
15
+ import { DoodadTypeExtra } from "@wayward/game/game/doodad/IDoodad";
15
16
  import { DoodadTag, DoodadType, DoodadTypeGroup, GrowingStage } from "@wayward/game/game/doodad/IDoodad";
16
17
  import type { IEntityMovableEvents } from "@wayward/game/game/entity/EntityMovable";
17
18
  import EntityMovable from "@wayward/game/game/entity/EntityMovable";
@@ -257,7 +258,7 @@ export default class Doodad extends EntityMovable<IDoodadDescription, DoodadType
257
258
  * @param bypassChange Set to true if you just want to check if fertility can be increased.
258
259
  * @returns True or false depending on if it increased in fertility or not.
259
260
  */
260
- increaseFertility(bypassChange?: boolean): boolean;
261
+ increaseFertility(bypassChange?: boolean, sendMessage?: boolean): boolean;
261
262
  /**
262
263
  * Return extra trap damage based on player multiplier and magical status
263
264
  */
@@ -375,11 +376,6 @@ export default class Doodad extends EntityMovable<IDoodadDescription, DoodadType
375
376
  * @returns number of score (or 0 if no civilization score is set).
376
377
  */
377
378
  getCivilizationScore(excludeMagic?: boolean): number;
378
- /**
379
- * Gets the scarecrow radius based on quality.
380
- * This also exists on items.
381
- */
382
- getScareRadius(): number;
383
379
  /**
384
380
  * Gets a set of skill types and values from doodads that have "containedItemGroupProvidesSkill" set for items that provide adjacent skill bonuses.
385
381
  * @returns Map of skill type and number (skill value).
@@ -9,9 +9,10 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import type Doodad from "@wayward/game/game/doodad/Doodad";
12
- import type { DoodadType } from "@wayward/game/game/doodad/IDoodad";
12
+ import type { DoodadType, IScareRadius } from "@wayward/game/game/doodad/IDoodad";
13
13
  import { GrowingStage } from "@wayward/game/game/doodad/IDoodad";
14
14
  import type Human from "@wayward/game/game/entity/Human";
15
+ import type Item from "@wayward/game/game/item/Item";
15
16
  declare namespace DoodadUtilities {
16
17
  type DoodadIn = Doodad | DoodadType;
17
18
  export function hasGrownEnoughIfCanGrow(doodad: Doodad, requiredGrowthStage: GrowingStage): boolean;
@@ -20,6 +21,7 @@ declare namespace DoodadUtilities {
20
21
  export function wouldWalkingOnDealNormalDamage(doodad: DoodadIn, human?: Human): boolean;
21
22
  export function isDangerous(doodad: DoodadIn, human?: Human): boolean;
22
23
  export function canCauseStatus(doodad: DoodadIn): boolean;
24
+ export function getScareRadius(doodad: Doodad | Item): IScareRadius;
23
25
  export {};
24
26
  }
25
27
  export default DoodadUtilities;
@@ -9,6 +9,7 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import type { IDoodadDescription, IDoodadGroupDescription } from "@wayward/game/game/doodad/IDoodad";
12
- import { DoodadType, DoodadTypeGroup } from "@wayward/game/game/doodad/IDoodad";
12
+ import { DoodadType, DoodadTypeExtra, DoodadTypeGroup } from "@wayward/game/game/doodad/IDoodad";
13
13
  export declare const doodadDescriptions: OptionalDescriptions<DoodadType, IDoodadDescription>;
14
14
  export declare const doodadGroups: OptionalDescriptions<DoodadTypeGroup, IDoodadGroupDescription>;
15
+ export declare const doodadVariantToMainTypeMap: Map<DoodadTypeExtra, DoodadType>;
@@ -231,6 +231,19 @@ export interface IDoodadDescription extends IObjectDescription, IModdable, ICaus
231
231
  * The doodad type to display instead of the describe doodad type.
232
232
  */
233
233
  displayDoodad?: SupplierOr<DisplayableDoodadType | undefined, [Doodad]>;
234
+ /**
235
+ * A number of "display variants" for this item.
236
+ *
237
+ * Each variant must be in `DoodadTypeExtra`, named `${main item type name}${1-based variant index}`.
238
+ * IE, `DoodadType.JackOLantern` having `displayVariants: 3` will look for `DoodadTypeExtra.JackOLantern1`, `JackOLantern2`, and `JackOLantern3`.
239
+ *
240
+ * Setting `displayItem` disables the functionality provided by `displayVariants`.
241
+ *
242
+ * `displayVariants` uses `aestheticRandom` to determine which variant to use.
243
+ * `aestheticRandom` is transferred when converting from Item to Doodad and vice versa, so the variant will remain the same,
244
+ * assuming `displayVariants` is set to the same count on both the item description and doodad description.
245
+ */
246
+ displayVariants?: number;
234
247
  /**
235
248
  * Sets (and overwrites) the associated item (or item extra) that shows in the tooltip.
236
249
  */
@@ -262,6 +275,14 @@ export interface IItemStackRegion {
262
275
  yMin: number;
263
276
  yMax: number;
264
277
  }
278
+ export interface IScareRadius {
279
+ total: number;
280
+ /** The "effective" scare radius, ie what's actually used internally. This is slightly increased so that it's a nicer circle */
281
+ totalEffective: number;
282
+ base: number;
283
+ quality: number;
284
+ magic: number;
285
+ }
265
286
  export interface ILockedChest {
266
287
  /**
267
288
  * Loot groups that gets generated inside a chest.
@@ -491,7 +512,17 @@ export declare enum DoodadTypeExtra {
491
512
  WoodenBookcase_25 = 184,
492
513
  WoodenBookcase_50 = 185,
493
514
  WoodenBookcase_75 = 186,
494
- WoodenBookcase_100 = 187
515
+ WoodenBookcase_100 = 187,
516
+ JackOLantern2 = 188,
517
+ JackOLantern3 = 189,
518
+ LitJackOLantern2 = 190,
519
+ LitJackOLantern3 = 191,
520
+ StrawScarecrow2 = 192,
521
+ StrawScarecrow3 = 193,
522
+ CactusScarecrow2 = 194,
523
+ CactusScarecrow3 = 195,
524
+ SnowScarecrow2 = 196,
525
+ SnowScarecrow3 = 197
495
526
  }
496
527
  export type DisplayableDoodadType = DoodadType | DoodadTypeExtra;
497
528
  export declare enum DoodadTag {
@@ -528,9 +559,10 @@ export declare enum DoodadTypeGroup {
528
559
  Wheelbarrow = -9979,
529
560
  Altar = -9978,
530
561
  OpenFireSource = -9977,
531
- RequiresCandleToLight = -9976,
562
+ RequiresCandleToLight = -9976,// Pumpkins
532
563
  ContainsFuelSource = -9975,
533
- CurseWard = -9974
564
+ CurseWard = -9974,
565
+ CannotBeSpread = -9973
534
566
  }
535
567
  export declare enum DoorOrientation {
536
568
  /**
@@ -28,7 +28,7 @@ export default class CombatStrengthManager {
28
28
  * Calculates a float value between 0 and 1 representing a creature's difficulty.
29
29
  */
30
30
  getCreature(creature: CreatureType, aberrant?: boolean): number;
31
- getCreatureDifficultyAgainstHuman(creature: Creature, human: Human): number;
31
+ getCreatureDifficultyAgainstHuman(creature: Creature, human: Human, ignoreCurrentStats?: boolean): number;
32
32
  private getEstimatedTurnsToKillHuman;
33
33
  private getEstimatedTurnsToKillCreature;
34
34
  /**
@@ -233,7 +233,7 @@ export default abstract class Human<DescriptionType = unknown, TypeType extends
233
233
  isDualWielding(): boolean;
234
234
  getAttack(attack?: AttackType, weapon?: Item, offHandWeapon?: Item): IAttack;
235
235
  getSimplifiedCumulativeAttack(): number;
236
- getSimplifiedCumulativeDefense(): number;
236
+ getSimplifiedCumulativeDefense(defense?: PlayerDefense): number;
237
237
  getCombatStrength(): number;
238
238
  private getAttackType;
239
239
  private getAttackSkillBonus;
@@ -254,7 +254,7 @@ export default abstract class Human<DescriptionType = unknown, TypeType extends
254
254
  isOffHandDisabled(): boolean;
255
255
  getEquipSlotForItem(item: Item, includeDisabled?: true): EquipType | undefined;
256
256
  getFanaticism(deity: Deity): number;
257
- getCurse(): number;
257
+ getCurse(refresh?: true): number;
258
258
  canSeePosition(type: CanASeeBType, islandId: IslandId, x: number, y: number, z: number, fieldOfView?: FieldOfView, customRadius?: number): boolean;
259
259
  /**
260
260
  * Gets the max health of the player.
@@ -376,7 +376,6 @@ export default abstract class Human<DescriptionType = unknown, TypeType extends
376
376
  checkForWell(): boolean;
377
377
  checkForGather(): Doodad | undefined;
378
378
  calculateEquipmentStats(): void;
379
- private recalculateInsulation;
380
379
  private getEquipmentInsulation;
381
380
  discoverRecipe(itemType: ItemType, forceUnlock?: boolean, crafted?: ICrafted): void;
382
381
  incrementIslandTickCount(): void;
@@ -450,7 +449,7 @@ export default abstract class Human<DescriptionType = unknown, TypeType extends
450
449
  protected statGain(stat: Stat | ISkillAttribute, bypass: boolean, sourceSkill?: SkillType, times?: number): void;
451
450
  protected calculateStats(): void;
452
451
  kill(): void;
453
- protected resetDefense(skipStatChangedEvent?: boolean): void;
452
+ protected resetDefense(): void;
454
453
  protected sootheChecks(): void;
455
454
  private swimSootheCheck;
456
455
  /**
@@ -128,6 +128,17 @@ export declare enum EntityType {
128
128
  Corpse = 6,
129
129
  Item = 7
130
130
  }
131
+ export interface EntityTypeMap {
132
+ [EntityType.Corpse]: Corpse;
133
+ [EntityType.Creature]: Creature;
134
+ [EntityType.Doodad]: Doodad;
135
+ [EntityType.Human]: Human;
136
+ [EntityType.Item]: Item;
137
+ [EntityType.NPC]: NPC;
138
+ [EntityType.Player]: Player;
139
+ [EntityType.TileEvent]: TileEvent;
140
+ }
141
+ export type EntityTypeType<TYPE extends EntityType> = EntityTypeMap[TYPE] extends Entity<any, infer TYPETYPE, any, any> ? TYPETYPE : never;
131
142
  export declare enum MoveType {
132
143
  None = 0,
133
144
  Water = 1,
@@ -544,7 +544,7 @@ export declare const DEFAULT_ISLAND_TRAVEL_TIME_BASE = 1000;
544
544
  /**
545
545
  * A multiplier for how much travel time is added by the distance travelled, variable based on the player's seafaring skill.
546
546
  */
547
- export declare const DEFAULT_ISLAND_TRAVEL_TIME_MULTIPLIER: IRange;
547
+ export declare const DEFAULT_ISLAND_TRAVEL_TIME_MULTIPLIER: IRange<number>;
548
548
  /**
549
549
  * The amount of travel time it takes to travel to civilization
550
550
  */
@@ -572,7 +572,7 @@ export declare const PLAYER_TRAVEL_CIVILIZATION_STAT_REDUCTION = 5;
572
572
  * - 100% skill = 60 stamina lost
573
573
  * - 125% skill = 0 stamina lost
574
574
  */
575
- export declare const PLAYER_TRAVEL_SWIM_STAMINA_STAT_REDUCTION: IRange;
575
+ export declare const PLAYER_TRAVEL_SWIM_STAMINA_STAT_REDUCTION: IRange<number>;
576
576
  /**
577
577
  * The minimum remaining stamina the player should have after swimming
578
578
  */