@wayward/types 2.15.0-beta.dev.20251002.1 → 2.15.0-beta.dev.20251004.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.
- package/definitions/game/game/Game.d.ts +3 -1
- package/definitions/game/game/IGame.d.ts +2 -7
- package/definitions/game/game/curse/Curse.d.ts +107 -0
- package/definitions/game/game/curse/CurseEvent.d.ts +115 -0
- package/definitions/game/game/curse/CurseEventDefinitions.d.ts +14 -0
- package/definitions/game/game/curse/ICurse.d.ts +72 -0
- package/definitions/game/game/curse/event/CurseEventFrigidNight.d.ts +13 -0
- package/definitions/game/game/curse/event/CurseEventHeatWave.d.ts +13 -0
- package/definitions/game/game/deity/Deity.d.ts +0 -2
- package/definitions/game/game/entity/Human.d.ts +4 -1
- package/definitions/game/game/entity/IHuman.d.ts +5 -1
- package/definitions/game/game/entity/action/actions/SetTitle.d.ts +1 -1
- package/definitions/game/game/entity/player/MessageManager.d.ts +1 -1
- package/definitions/game/game/entity/status/IStatus.d.ts +30 -7
- package/definitions/game/game/entity/status/IStatusContext.d.ts +2 -1
- package/definitions/game/game/entity/status/Status.d.ts +2 -2
- package/definitions/game/game/entity/status/handler/BadTemperatureEffect.d.ts +3 -0
- package/definitions/game/game/entity/status/statuses/Cursed.d.ts +13 -0
- package/definitions/game/game/inspection/infoProviders/doodad/StillWater.d.ts +1 -0
- package/definitions/game/game/inspection/inspections/StatusInspection.d.ts +5 -2
- package/definitions/game/game/island/Island.d.ts +5 -1
- package/definitions/game/game/milestones/IMilestone.d.ts +1 -1
- package/definitions/game/game/options/modifiers/milestone/modifiers/Exsanguinated.d.ts +1 -1
- package/definitions/game/game/temperature/TemperatureManager.d.ts +3 -0
- package/definitions/game/game/time/ITimeManager.d.ts +1 -0
- package/definitions/game/game/time/TimeManager.d.ts +4 -4
- package/definitions/game/language/Dictionary.d.ts +110 -108
- package/definitions/game/language/DictionaryMap.d.ts +221 -217
- package/definitions/game/language/dictionary/Message.d.ts +563 -555
- package/definitions/game/language/dictionary/Misc.d.ts +4 -0
- package/definitions/game/language/dictionary/UiTranslation.d.ts +665 -664
- package/definitions/game/language/english/game/CurseEventGroups.d.ts +13 -0
- package/definitions/game/language/english/game/CurseEvents.d.ts +13 -0
- package/definitions/game/language/english/ui/CurseComponents.d.ts +1 -1
- package/definitions/game/resource/IResourceLoader.d.ts +44 -42
- package/definitions/game/ui/screen/screens/game/static/stats/component/StatusContext.d.ts +2 -1
- package/definitions/game/ui/screen/screens/game/static/stats/component/StatusIcon.d.ts +2 -1
- package/definitions/game/ui/screen/screens/game/static/stats/component/Statuses.d.ts +2 -1
- package/definitions/{utilities/class → game/utilities}/Inject.d.ts +3 -2
- package/definitions/utilities/event/EventBusManager.d.ts +4 -3
- package/definitions/utilities/math/Math2.d.ts +1 -0
- package/definitions/utilities/object/Objects.d.ts +1 -0
- package/definitions/utilities/random/Random.d.ts +6 -0
- package/package.json +1 -1
- package/definitions/game/game/deity/Curse.d.ts +0 -40
|
@@ -28,7 +28,7 @@ import { AutoSave } from "@wayward/game/game/meta/AutoSave";
|
|
|
28
28
|
import { SaveLoad } from "@wayward/game/game/meta/SaveLoad";
|
|
29
29
|
import type { Milestone } from "@wayward/game/game/milestones/IMilestone";
|
|
30
30
|
import { MilestoneManager } from "@wayward/game/game/milestones/MilestoneManager";
|
|
31
|
-
import type { IGameOptions } from "@wayward/game/game/options/IGameOptions";
|
|
31
|
+
import type { IGameOptions, IGameOptionsPartial } from "@wayward/game/game/options/IGameOptions";
|
|
32
32
|
import { GameMode } from "@wayward/game/game/options/IGameOptions";
|
|
33
33
|
import type { GameplayModifiersCollection } from "@wayward/game/game/options/modifiers/GameplayModifiersManager";
|
|
34
34
|
import type { ChallengeModifiersCollection } from "@wayward/game/game/options/modifiers/challenge/ChallengeModifiers";
|
|
@@ -177,6 +177,8 @@ export declare class Game extends EventEmitter.Host<IGameEvents> {
|
|
|
177
177
|
selectBiome(position: IVector2 | undefined, random: Random): BiomeTypes;
|
|
178
178
|
getGameMode(): GameMode;
|
|
179
179
|
getGameOptionsBeforeModifiers(): IGameOptions;
|
|
180
|
+
/** A game options modifier that always returns an empty array by default, to be injected into */
|
|
181
|
+
getAdditionalGameOptionsSources(): IGameOptionsPartial[];
|
|
180
182
|
getGameOptions(): IGameOptions;
|
|
181
183
|
uncacheGameOptions(): void;
|
|
182
184
|
updateGameOptions(gameOptions: IGameOptions): void;
|
|
@@ -34,12 +34,6 @@ import type { IVector2, IVector3 } from "@wayward/game/utilities/math/IVector";
|
|
|
34
34
|
import type { IBuildId } from "@wayward/hosts/shared/globalTypes";
|
|
35
35
|
import type { IRange } from "@wayward/utilities/math/Range";
|
|
36
36
|
export interface IGameEvents {
|
|
37
|
-
/**
|
|
38
|
-
* Called when game options are first processed, after modifiers are applied.
|
|
39
|
-
*
|
|
40
|
-
* You can use this combined with `game.uncacheGameOptions()` to dynamically modify game options.
|
|
41
|
-
*/
|
|
42
|
-
getGameOptions(gameOptions: IGameOptions): IGameOptions;
|
|
43
37
|
/**
|
|
44
38
|
* Called when the game is starting
|
|
45
39
|
* @param isLoadingSave True if a save game was loaded
|
|
@@ -127,8 +121,9 @@ export declare enum TickFlag {
|
|
|
127
121
|
PlayerNotes = 1024,
|
|
128
122
|
Items = 2048,
|
|
129
123
|
Lights = 4096,
|
|
124
|
+
Curse = 8192,
|
|
130
125
|
IslandFastForward = 6174,
|
|
131
|
-
All =
|
|
126
|
+
All = 4294967295
|
|
132
127
|
}
|
|
133
128
|
/**
|
|
134
129
|
* This number * game.interval (16.666) is the tick time in milliseconds
|
|
@@ -0,0 +1,107 @@
|
|
|
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 { CurseEvent, CurseEventContext } from "@wayward/game/game/curse/CurseEvent";
|
|
12
|
+
import { CurseEventSubscriber } from "@wayward/game/game/curse/CurseEvent";
|
|
13
|
+
import { CurseCategory, CurseComponent, CurseEventDisplayMode, CurseEventType } from "@wayward/game/game/curse/ICurse";
|
|
14
|
+
import type Human from "@wayward/game/game/entity/Human";
|
|
15
|
+
import { SkillType } from "@wayward/game/game/entity/IHuman";
|
|
16
|
+
import type Island from "@wayward/game/game/island/Island";
|
|
17
|
+
import type { IVector2 } from "@wayward/game/utilities/math/IVector";
|
|
18
|
+
import { IRange } from "@wayward/utilities/math/Range";
|
|
19
|
+
export declare const CURSE_WEIGHTS: PartialRecord<CurseComponent, number>;
|
|
20
|
+
export declare const CURSE_ATTACK_MAX = 50;
|
|
21
|
+
export declare const CURSE_DEFENSE_MAX = 100;
|
|
22
|
+
export declare const CURSE_CRAFTING_MAX = 100;
|
|
23
|
+
export declare const CURSE_SKILL_MAX = 100;
|
|
24
|
+
export declare const CURSE_COMPONENTS: Record<CurseComponent, (human: Human) => number>;
|
|
25
|
+
/**
|
|
26
|
+
* Gets the highest value of either current or max skill multiplied by the "evilness" of each skill (from rune chance)
|
|
27
|
+
* (Basically, high values in any of the evil-er skills make curse go brrrr)
|
|
28
|
+
*/
|
|
29
|
+
declare function getSkillValue(human: Human): {
|
|
30
|
+
value: number;
|
|
31
|
+
skill: SkillType;
|
|
32
|
+
};
|
|
33
|
+
declare namespace Curse {
|
|
34
|
+
const getSkill: typeof getSkillValue;
|
|
35
|
+
function getComponentValue(human: Human, component: CurseComponent): number;
|
|
36
|
+
function getValue(human: Human): number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* In the following graph, this value is `b`:
|
|
40
|
+
* https://www.desmos.com/calculator/sgdtqdqzup
|
|
41
|
+
*/
|
|
42
|
+
export declare const CURSE_EVENTS_MAX = 5;
|
|
43
|
+
/**
|
|
44
|
+
* In the following graph, this value is `a`:
|
|
45
|
+
* https://www.desmos.com/calculator/sgdtqdqzup
|
|
46
|
+
*/
|
|
47
|
+
export declare const CURSE_EVENTS_MAELSTROM_SPEED = 1;
|
|
48
|
+
/**
|
|
49
|
+
* The chance that a curse event will occur, given the opportunity.
|
|
50
|
+
* The chance scales up from the minimum (left) value at 0% curse, to the maximum (right) value at 100% curse.
|
|
51
|
+
*
|
|
52
|
+
* There can be up to CURSE_EVENTS_MAX opportunities per night, based on maelstrom level.
|
|
53
|
+
* At 0-1 maelstrom, there are up to 2 opportunities per night. (Per player, because curse events are localised.)
|
|
54
|
+
* Additional opportunities before the top opportunity always use the max chance.
|
|
55
|
+
*/
|
|
56
|
+
export declare const CURSE_EVENTS_CHANCE: IRange;
|
|
57
|
+
export declare const CURSE_EVENTS_NEARBY_PLAYERS_RADIUS = 25;
|
|
58
|
+
/**
|
|
59
|
+
* For randomly selecting the cooldown time between curse event nights.
|
|
60
|
+
* Interpolates between the minimum and maximum values based on the player's curse — minimum at 0% curse, maximum at 100% curse.
|
|
61
|
+
*/
|
|
62
|
+
export declare const CURSE_EVENTS_COOLDOWN_RANGE: {
|
|
63
|
+
minimum: IRange;
|
|
64
|
+
maximum: IRange;
|
|
65
|
+
};
|
|
66
|
+
declare namespace Curse {
|
|
67
|
+
interface Helper {
|
|
68
|
+
context: CurseEventContext;
|
|
69
|
+
instance: CurseEventInstance;
|
|
70
|
+
definition: CurseEvent;
|
|
71
|
+
}
|
|
72
|
+
function get(island?: Island, type?: CurseEventType): Helper | undefined;
|
|
73
|
+
function tickCurse(island: Island, humans: Human[]): void;
|
|
74
|
+
function reload(island: Island): void;
|
|
75
|
+
function spawnCurseEvents(island: Island, humans: Human[]): void;
|
|
76
|
+
function attemptCurseEventSpawn(category: CurseCategory, human: Human, curse: number, humans: Human[], events: CurseEventInstance[]): CurseEventInstance | undefined;
|
|
77
|
+
function attemptSpecificCurseEventSpawn(human: Human, type: CurseEventType, humans: Human[], curse?: number): CurseEventInstance | undefined;
|
|
78
|
+
function cleanup(island: Island, humans?: Human[]): void;
|
|
79
|
+
function createCurseEventContext(instance: CurseEventInstance, island: Island, humans?: Human[], cursebearer?: Human): CurseEventContext;
|
|
80
|
+
}
|
|
81
|
+
interface Curse {
|
|
82
|
+
night?: true;
|
|
83
|
+
events?: CurseEventInstance[];
|
|
84
|
+
cooldown?: number;
|
|
85
|
+
warned?: true;
|
|
86
|
+
}
|
|
87
|
+
interface ScriptProcessState {
|
|
88
|
+
/** The path of keys/indices from the root of the script to the step this process is currently on. */
|
|
89
|
+
path: Array<string | number>;
|
|
90
|
+
/** The game tick when this step's EndAfter condition is met. */
|
|
91
|
+
endTick?: number;
|
|
92
|
+
/** Iterations remaining for a "repeat" block. */
|
|
93
|
+
iterationsRemaining?: number;
|
|
94
|
+
/** The state of any child processes started by a "simultaneously" or "repeat" block. */
|
|
95
|
+
childProcesses?: ScriptProcessState[];
|
|
96
|
+
}
|
|
97
|
+
declare const SYMBOL_CURSE_EVENT_SUBSCRIBER_INSTANCES: unique symbol;
|
|
98
|
+
interface CurseEventInstance {
|
|
99
|
+
type: CurseEventType;
|
|
100
|
+
display: CurseEventDisplayMode;
|
|
101
|
+
cursebearerIdentifier: string;
|
|
102
|
+
point: IVector2;
|
|
103
|
+
subscribers?: string[];
|
|
104
|
+
scriptProcesses?: ScriptProcessState[];
|
|
105
|
+
[SYMBOL_CURSE_EVENT_SUBSCRIBER_INSTANCES]?: Record<string, CurseEventSubscriber>;
|
|
106
|
+
}
|
|
107
|
+
export default Curse;
|
|
@@ -0,0 +1,115 @@
|
|
|
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 { CurseGroup, CurseEventDisplayMode, CurseEventType, CurseCategory } 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
|
+
/** The API that curse events have access to */
|
|
20
|
+
export interface CurseEventContext {
|
|
21
|
+
readonly island: Island;
|
|
22
|
+
readonly point: IVector2;
|
|
23
|
+
/** A number 0-1 of how far through the night it currently is */
|
|
24
|
+
readonly fractionalTime: number;
|
|
25
|
+
readonly cursebearer: Human | undefined;
|
|
26
|
+
getNearbyPlayers(): Human[];
|
|
27
|
+
/**
|
|
28
|
+
* Inject a custom curse event subscriber class into the game.
|
|
29
|
+
* This class *must* be included in `CurseEvent.subscribers`.
|
|
30
|
+
*/
|
|
31
|
+
inject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
|
|
32
|
+
setDisplay(mode: CurseEventDisplayMode): void;
|
|
33
|
+
uninject(): void;
|
|
34
|
+
uninject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
|
|
35
|
+
toString(): string;
|
|
36
|
+
}
|
|
37
|
+
export interface CurseEvent {
|
|
38
|
+
group: CurseGroup;
|
|
39
|
+
category: CurseCategory;
|
|
40
|
+
/** A number 0-1 representing the curse level that the randomly selected player must have in order for this curse event to be chosen */
|
|
41
|
+
requiredCurseLevel?: number;
|
|
42
|
+
requiredBiomes?: {
|
|
43
|
+
type: "whitelist" | "blacklist";
|
|
44
|
+
biomes: BiomeType[];
|
|
45
|
+
};
|
|
46
|
+
/** If one event is marked as conflicting with another, they will both have the conflict registered. */
|
|
47
|
+
conflicts?: CurseEventType[];
|
|
48
|
+
requiredPredicate?(context: CurseEventContext): boolean;
|
|
49
|
+
getOptions?(): IGameOptionsPartial;
|
|
50
|
+
subscribers?: Array<Class<CurseEventSubscriber>>;
|
|
51
|
+
onStart?(context: CurseEventContext): void;
|
|
52
|
+
onEnd?(context: CurseEventContext): void;
|
|
53
|
+
script?: CurseEventScript;
|
|
54
|
+
}
|
|
55
|
+
export declare function CurseEvent(event: CurseEvent): CurseEvent;
|
|
56
|
+
export type CurseEventScript = CurseEventScript.Step[];
|
|
57
|
+
export declare function CurseEventScript(steps: CurseEventScript): CurseEventScript;
|
|
58
|
+
export declare namespace CurseEventScript {
|
|
59
|
+
interface CurseEventScriptNodeBase {
|
|
60
|
+
type: string;
|
|
61
|
+
}
|
|
62
|
+
export interface EndAfter extends CurseEventScriptNodeBase {
|
|
63
|
+
type: "end after";
|
|
64
|
+
ticks: number | IRange;
|
|
65
|
+
}
|
|
66
|
+
export function EndAfter(ticks: number | IRange): EndAfter;
|
|
67
|
+
export interface EndAt extends CurseEventScriptNodeBase {
|
|
68
|
+
type: "end at";
|
|
69
|
+
time: TimeString;
|
|
70
|
+
}
|
|
71
|
+
export function EndAt(time: TimeString): EndAt;
|
|
72
|
+
export interface EndWhen extends CurseEventScriptNodeBase {
|
|
73
|
+
type: "end when";
|
|
74
|
+
predicate(context: CurseEventContext): boolean;
|
|
75
|
+
}
|
|
76
|
+
export function EndWhen(predicate: EndWhen["predicate"]): EndWhen;
|
|
77
|
+
export type EndCondition = EndAfter | EndAt | EndWhen;
|
|
78
|
+
export interface Wait extends CurseEventScriptNodeBase {
|
|
79
|
+
type: "wait";
|
|
80
|
+
end: EndCondition;
|
|
81
|
+
}
|
|
82
|
+
export function Wait(end: EndCondition): Wait;
|
|
83
|
+
export interface Action extends CurseEventScriptNodeBase {
|
|
84
|
+
type: "action";
|
|
85
|
+
end?: EndCondition;
|
|
86
|
+
/** @returns `false` to end the entire curse event immediately */
|
|
87
|
+
action(context: CurseEventContext): false | undefined | void;
|
|
88
|
+
}
|
|
89
|
+
export function Action(action: Action["action"]): Action;
|
|
90
|
+
export function Action(end: EndCondition, action: Action["action"]): Action;
|
|
91
|
+
export interface Repeat extends CurseEventScriptNodeBase {
|
|
92
|
+
type: "repeat";
|
|
93
|
+
steps: Step[];
|
|
94
|
+
times?: number | IRange;
|
|
95
|
+
}
|
|
96
|
+
export function Repeat(steps: Step[]): Repeat;
|
|
97
|
+
export function Repeat(times: number | IRange, steps: Step[]): Repeat;
|
|
98
|
+
export interface Simultaneously extends CurseEventScriptNodeBase {
|
|
99
|
+
type: "simultaneously";
|
|
100
|
+
scripts: Record<string, Step[]>;
|
|
101
|
+
}
|
|
102
|
+
export function Simultaneously(scripts: Record<string, Step[]>): Simultaneously;
|
|
103
|
+
export type Step = Wait | Action | Repeat | Simultaneously;
|
|
104
|
+
export {};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A base class for subscribing to game events & applying game options during a curse event.
|
|
108
|
+
* Note that renaming this class will result in it no longer being subscribed for a curse event, if it was before.
|
|
109
|
+
*/
|
|
110
|
+
export declare abstract class CurseEventSubscriber {
|
|
111
|
+
protected readonly event: CurseEventContext;
|
|
112
|
+
constructor(event: CurseEventContext);
|
|
113
|
+
protected getOptions?(): IGameOptionsPartial;
|
|
114
|
+
private getAdditionalGameOptionsSources;
|
|
115
|
+
}
|
|
@@ -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,72 @@
|
|
|
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 CurseGroup {
|
|
34
|
+
Lucky = 0,
|
|
35
|
+
Neutral = 1,
|
|
36
|
+
Unlucky = 2
|
|
37
|
+
}
|
|
38
|
+
export declare enum CurseCategory {
|
|
39
|
+
/**
|
|
40
|
+
* Primary curses are the main ones that players should be responding to.
|
|
41
|
+
*/
|
|
42
|
+
Primary = 0,
|
|
43
|
+
/**
|
|
44
|
+
* Secondary curses are ones that interact with the primary curses in interesting ways.
|
|
45
|
+
*
|
|
46
|
+
* Secondary curses are selected before primary curses.
|
|
47
|
+
*/
|
|
48
|
+
Secondary = 1,
|
|
49
|
+
/**
|
|
50
|
+
* Dependent curses are secondary curses that can ONLY be selected if a specific primary curse is also selected.
|
|
51
|
+
*
|
|
52
|
+
* They're still selected before primary curses, but will be cancelled if no primary curse is selected.
|
|
53
|
+
*/
|
|
54
|
+
Dependent = 2
|
|
55
|
+
}
|
|
56
|
+
export declare enum CurseComponent {
|
|
57
|
+
Skill = 0,
|
|
58
|
+
HighestAttack = 1,
|
|
59
|
+
HighestDefense = 2,
|
|
60
|
+
CumulativeEvilCrafting = 3,
|
|
61
|
+
Equipment = 4,
|
|
62
|
+
Modifier = 5
|
|
63
|
+
}
|
|
64
|
+
export declare enum CurseSystemDiscovery {
|
|
65
|
+
CurseFactors = 0,
|
|
66
|
+
CurseFactorsExact = 1
|
|
67
|
+
}
|
|
68
|
+
export declare enum CurseEventDisplayMode {
|
|
69
|
+
Hidden = 0,
|
|
70
|
+
Mystery = 1,
|
|
71
|
+
Revealed = 2
|
|
72
|
+
}
|
|
@@ -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>;
|
|
@@ -46,7 +46,7 @@ import ItemReference from "@wayward/game/game/item/ItemReference";
|
|
|
46
46
|
import MagicalPropertyType from "@wayward/game/game/magic/MagicalPropertyType";
|
|
47
47
|
import { Milestone } from "@wayward/game/game/milestones/IMilestone";
|
|
48
48
|
import Runekeeper from "@wayward/game/game/milestones/milestone/Runekeeper";
|
|
49
|
-
import type { IGameOptionsPlayer } from "@wayward/game/game/options/IGameOptions";
|
|
49
|
+
import type { IGameOptionsPartial, IGameOptionsPlayer } from "@wayward/game/game/options/IGameOptions";
|
|
50
50
|
import type { Reference, ReferenceType } from "@wayward/game/game/reference/IReferenceManager";
|
|
51
51
|
import type { IHasInsulation } from "@wayward/game/game/temperature/ITemperature";
|
|
52
52
|
import { TempType } from "@wayward/game/game/temperature/ITemperature";
|
|
@@ -182,8 +182,11 @@ export default abstract class Human<DescriptionType = unknown, TypeType extends
|
|
|
182
182
|
*/
|
|
183
183
|
get lastAttackedByEntityHuman(): Human | undefined;
|
|
184
184
|
getDefense(): PlayerDefense;
|
|
185
|
+
/** A game options modifier that always returns an empty array by default, to be injected into */
|
|
186
|
+
getAdditionalGameOptionsSources(): IGameOptionsPartial[];
|
|
185
187
|
getGameOptionsBeforeModifiers(): ImmutableObject<IGameOptionsPlayer>;
|
|
186
188
|
getGameOptions(): ImmutableObject<IGameOptionsPlayer>;
|
|
189
|
+
clearGameOptionsCache(): void;
|
|
187
190
|
setOptions(options: IOptions): void;
|
|
188
191
|
getEquipEffect<E extends EquipEffect>(type: E): FirstIfOne<EquipEffectByType<E>>;
|
|
189
192
|
/**
|
|
@@ -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" | "
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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);
|