@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.
- package/definitions/game/game/IGame.d.ts +2 -1
- package/definitions/game/game/curse/Curse.d.ts +88 -0
- package/definitions/game/game/curse/CurseEvent.d.ts +111 -0
- package/definitions/game/game/curse/CurseEventDefinitions.d.ts +14 -0
- package/definitions/game/game/curse/ICurse.d.ts +49 -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/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/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 +876 -869
- 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/CurseEventCategories.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 +1 -1
- package/definitions/utilities/class/Inject.d.ts +1 -1
- 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
|
@@ -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 =
|
|
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" | "
|
|
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);
|
|
@@ -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
|
-
|
|
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
|
*/
|
|
@@ -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:
|
|
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:
|
|
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:
|
|
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.
|