@wayward/types 2.15.0-beta.dev.20251005.1 → 2.15.0-beta.dev.20251007.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/ILoot.d.ts +3 -1
- package/definitions/game/game/curse/Curse.d.ts +13 -8
- package/definitions/game/game/curse/CurseEvent.d.ts +38 -5
- package/definitions/game/game/curse/ICurse.d.ts +8 -0
- package/definitions/game/game/curse/event/CurseEventCraftingInspiration.d.ts +13 -0
- package/definitions/game/game/curse/event/CurseEventLucky.d.ts +13 -0
- package/definitions/game/game/curse/event/CurseEventShadows.d.ts +13 -0
- package/definitions/game/game/curse/event/CurseEventUnlucky.d.ts +13 -0
- package/definitions/game/game/doodad/IDoodad.d.ts +5 -0
- package/definitions/game/game/entity/Human.d.ts +1 -0
- package/definitions/game/game/entity/action/actions/Invoke.d.ts +4 -0
- package/definitions/game/game/entity/action/actions/SetTitle.d.ts +1 -1
- package/definitions/game/game/entity/status/IStatus.d.ts +13 -2
- package/definitions/game/game/entity/status/IStatusContext.d.ts +1 -1
- package/definitions/game/game/entity/status/Status.d.ts +1 -1
- package/definitions/game/game/item/Items.d.ts +9 -1
- package/definitions/game/game/milestones/IMilestone.d.ts +3 -1
- package/definitions/game/game/milestones/MilestoneDefinition.d.ts +4 -3
- package/definitions/game/game/options/IGameOptions.d.ts +10 -0
- package/definitions/game/game/options/modifiers/milestone/IMilestoneModifier.d.ts +2 -1
- package/definitions/game/game/options/modifiers/milestone/MilestoneModifiersManager.d.ts +4 -0
- package/definitions/game/game/options/modifiers/milestone/modifiers/Cursebreaker.d.ts +17 -0
- package/definitions/game/game/options/modifiers/milestone/modifiers/Cursed.d.ts +17 -0
- package/definitions/game/language/dictionary/Message.d.ts +796 -795
- package/definitions/game/language/dictionary/UiTranslation.d.ts +692 -691
- package/definitions/game/renderer/RenderersNotifiers.d.ts +1 -1
- package/definitions/game/renderer/notifier/INotifier.d.ts +2 -2
- package/definitions/game/renderer/notifier/Notifier.d.ts +1 -1
- package/definitions/utilities/math/Range.d.ts +8 -0
- package/definitions/utilities/random/Random.d.ts +8 -1
- package/package.json +1 -1
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* https://github.com/WaywardGame/types/wiki
|
|
10
10
|
*/
|
|
11
11
|
import type { ItemType } from "@wayward/game/game/item/IItem";
|
|
12
|
+
import type { TileEventType } from "@wayward/game/game/tile/ITileEvent";
|
|
12
13
|
export interface ILootItem {
|
|
13
|
-
|
|
14
|
+
itemType?: ItemType;
|
|
15
|
+
tileEventType?: TileEventType;
|
|
14
16
|
chance?: number;
|
|
15
17
|
chanceOutOf?: number;
|
|
16
18
|
difficulty?: number;
|
|
@@ -15,7 +15,7 @@ import type Human from "@wayward/game/game/entity/Human";
|
|
|
15
15
|
import { SkillType } from "@wayward/game/game/entity/IHuman";
|
|
16
16
|
import type Island from "@wayward/game/game/island/Island";
|
|
17
17
|
import type { IVector2 } from "@wayward/game/utilities/math/IVector";
|
|
18
|
-
import { IRange } from "@wayward/utilities/math/Range";
|
|
18
|
+
import { IRange, IRangeRange } from "@wayward/utilities/math/Range";
|
|
19
19
|
export declare const CURSE_WEIGHTS: PartialRecord<CurseComponent, number>;
|
|
20
20
|
export declare const CURSE_ATTACK_MAX = 50;
|
|
21
21
|
export declare const CURSE_DEFENSE_MAX = 100;
|
|
@@ -55,15 +55,13 @@ export declare const CURSE_EVENTS_MAELSTROM_SPEED = 1;
|
|
|
55
55
|
* Additional opportunities before the top opportunity always use the max chance.
|
|
56
56
|
*/
|
|
57
57
|
export declare const CURSE_EVENTS_CHANCE: IRange;
|
|
58
|
-
export declare const
|
|
58
|
+
export declare const CURSE_EVENTS_DEFAULT_RADIUS = 25;
|
|
59
59
|
/**
|
|
60
|
-
*
|
|
61
|
-
* Interpolates between the minimum and maximum
|
|
60
|
+
* An IRangeRange for randomly selecting the cooldown time between curse event nights.
|
|
61
|
+
* Interpolates between the minimum and maximum ranges based on the player's curse.
|
|
62
62
|
*/
|
|
63
|
-
export declare const CURSE_EVENTS_COOLDOWN_RANGE:
|
|
64
|
-
|
|
65
|
-
maximum: IRange;
|
|
66
|
-
};
|
|
63
|
+
export declare const CURSE_EVENTS_COOLDOWN_RANGE: IRangeRange;
|
|
64
|
+
export declare const CURSE_EVENTS_FIRST_NIGHT = 3;
|
|
67
65
|
declare namespace Curse {
|
|
68
66
|
interface Helper {
|
|
69
67
|
context: CurseEventContext;
|
|
@@ -71,11 +69,16 @@ declare namespace Curse {
|
|
|
71
69
|
definition: CurseEvent;
|
|
72
70
|
}
|
|
73
71
|
function get(island?: Island, type?: CurseEventType): Helper | undefined;
|
|
72
|
+
function willHaveEventsTonight(island: Island): boolean;
|
|
73
|
+
function canWarnAboutIncomingEvents(island: Island): boolean;
|
|
74
|
+
function getCooldownMultiplier(island: Island, humans?: Human<unknown, number, import("../reference/IReferenceManager").ReferenceType.NPC | import("../reference/IReferenceManager").ReferenceType.Player>[]): number;
|
|
75
|
+
function clearCooldown(island: Island): void;
|
|
74
76
|
function tickCurse(island: Island, humans: Human[]): void;
|
|
75
77
|
function reload(island: Island): void;
|
|
76
78
|
function spawnCurseEvents(island: Island, humans: Human[]): void;
|
|
77
79
|
function attemptCurseEventSpawn(category: CurseCategory, human: Human, curse: number, humans: Human[], events: CurseEventInstance[]): CurseEventInstance | undefined;
|
|
78
80
|
function attemptSpecificCurseEventSpawn(human: Human, type: CurseEventType, humans: Human[], curse?: number): CurseEventInstance | undefined;
|
|
81
|
+
function unload(island: Island): void;
|
|
79
82
|
function cleanup(island: Island, humans?: Human[]): void;
|
|
80
83
|
function createCurseEventContext(instance: CurseEventInstance, island: Island, humans?: Human[], cursebearer?: Human): CurseEventContext;
|
|
81
84
|
}
|
|
@@ -92,7 +95,9 @@ interface CurseEventInstance {
|
|
|
92
95
|
type: CurseEventType;
|
|
93
96
|
display: CurseEventDisplayMode;
|
|
94
97
|
cursebearerIdentifier: string;
|
|
98
|
+
curse: number;
|
|
95
99
|
point: IVector2;
|
|
100
|
+
creatures?: number[];
|
|
96
101
|
subscribers?: string[];
|
|
97
102
|
scriptProcesses?: ScriptProcessState[];
|
|
98
103
|
[SYMBOL_CURSE_EVENT_SUBSCRIBER_INSTANCES]?: Record<string, CurseEventSubscriber>;
|
|
@@ -9,27 +9,47 @@
|
|
|
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 } from "@wayward/game/game/curse/ICurse";
|
|
12
|
+
import type { CurseGroup, CurseEventDisplayMode, CurseEventType, CurseCategory, CursePosition } 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";
|
|
16
16
|
import type { TimeString } from "@wayward/game/game/time/ITimeManager";
|
|
17
17
|
import type { IVector2 } from "@wayward/game/utilities/math/IVector";
|
|
18
|
-
import
|
|
18
|
+
import { IRange } from "@wayward/utilities/math/Range";
|
|
19
|
+
import type Tile from "@wayward/game/game/tile/Tile";
|
|
20
|
+
import type Creature from "@wayward/game/game/entity/creature/Creature";
|
|
21
|
+
import type { CreatureType } from "@wayward/game/game/entity/creature/ICreature";
|
|
19
22
|
/** The API that curse events have access to */
|
|
20
23
|
export interface CurseEventContext {
|
|
21
24
|
readonly island: Island;
|
|
25
|
+
/** The epicenter of the curse, based on `CurseEvent.position` */
|
|
22
26
|
readonly point: IVector2;
|
|
23
27
|
/** A number 0-1 of how far through the night it currently is */
|
|
24
28
|
readonly fractionalTime: number;
|
|
29
|
+
/** The human that happened to get the event rolled on them */
|
|
25
30
|
readonly cursebearer: Human | undefined;
|
|
31
|
+
/** The cursebearer's curse at the time the event began */
|
|
32
|
+
readonly curse: number;
|
|
33
|
+
/** The creatures that the event has spawned */
|
|
34
|
+
readonly creatures: Creature[];
|
|
35
|
+
/** Whether the cursebearer is asleep */
|
|
36
|
+
readonly sleeping: boolean;
|
|
37
|
+
/** Get the players nearby the curse. This is based on `CurseEvent.position` and `CurseEvent.radius` */
|
|
26
38
|
getNearbyPlayers(): Human[];
|
|
39
|
+
/** Get a random tile within the curse event's radius. This is based on `CurseEvent.position` and `CurseEvent.radius` */
|
|
40
|
+
getRandomTile(radius?: number): Tile | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Spawn a creature at the given tile using the curse event spawning rules.
|
|
43
|
+
* @param evenWhenAsleep Disable the default functionality of preventing spawns if the cursebearer is asleep
|
|
44
|
+
*/
|
|
45
|
+
spawnCreature(type?: CreatureType, tile?: Tile, evenWhenAsleep?: true): Creature | undefined;
|
|
27
46
|
/**
|
|
28
47
|
* Inject a custom curse event subscriber class into the game.
|
|
29
48
|
* This class *must* be included in `CurseEvent.subscribers`.
|
|
30
49
|
*/
|
|
31
50
|
inject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
|
|
32
51
|
setDisplay(mode: CurseEventDisplayMode): void;
|
|
52
|
+
discover(forSpecificHuman?: Human): void;
|
|
33
53
|
uninject(): void;
|
|
34
54
|
uninject<T extends CurseEventSubscriber>(subscriber: Class<T>): void;
|
|
35
55
|
toString(): string;
|
|
@@ -37,6 +57,12 @@ export interface CurseEventContext {
|
|
|
37
57
|
export interface CurseEvent {
|
|
38
58
|
group: CurseGroup;
|
|
39
59
|
category: CurseCategory;
|
|
60
|
+
/**
|
|
61
|
+
* The chance that this curse event will spawn compared to other events.
|
|
62
|
+
* 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.
|
|
63
|
+
*/
|
|
64
|
+
weight?: number;
|
|
65
|
+
discoveredByDefault?: true;
|
|
40
66
|
/** 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
67
|
requiredCurseLevel?: number;
|
|
42
68
|
requiredBiomes?: {
|
|
@@ -46,11 +72,17 @@ export interface CurseEvent {
|
|
|
46
72
|
/** If one event is marked as conflicting with another, they will both have the conflict registered. */
|
|
47
73
|
conflicts?: CurseEventType[];
|
|
48
74
|
requiredPredicate?(context: CurseEventContext): boolean;
|
|
75
|
+
position?: CursePosition;
|
|
76
|
+
/**
|
|
77
|
+
* Controls the radius of the curse event. Defaults to the value of `CURSE_EVENTS_DEFAULT_RADIUS` (at time of writing, 25.)
|
|
78
|
+
* This is used for the `CurseEventContext.getRandomTile` and `CurseEventContext.getNearbyPlayers` methods.
|
|
79
|
+
*/
|
|
80
|
+
radius?: number;
|
|
49
81
|
getOptions?(): IGameOptionsPartial;
|
|
50
82
|
subscribers?: Array<Class<CurseEventSubscriber>>;
|
|
51
83
|
onStart?(context: CurseEventContext): void;
|
|
52
84
|
onEnd?(context: CurseEventContext): void;
|
|
53
|
-
script?: CurseEventScript;
|
|
85
|
+
script?: CurseEventScript | CurseEventScript.Repeat | CurseEventScript.Simultaneously;
|
|
54
86
|
}
|
|
55
87
|
export declare function CurseEvent(event: CurseEvent): CurseEvent;
|
|
56
88
|
export type CurseEventScript = CurseEventScript.Step[];
|
|
@@ -61,9 +93,9 @@ export declare namespace CurseEventScript {
|
|
|
61
93
|
}
|
|
62
94
|
export interface EndAfter extends CurseEventScriptNodeBase {
|
|
63
95
|
type: "end after";
|
|
64
|
-
ticks: number | IRange
|
|
96
|
+
ticks: SupplierOr<number | IRange, [CurseEventContext]>;
|
|
65
97
|
}
|
|
66
|
-
export function EndAfter(ticks: number | IRange): EndAfter;
|
|
98
|
+
export function EndAfter(ticks: SupplierOr<number | IRange, [CurseEventContext]>): EndAfter;
|
|
67
99
|
export interface EndAt extends CurseEventScriptNodeBase {
|
|
68
100
|
type: "end at";
|
|
69
101
|
time: TimeString;
|
|
@@ -79,6 +111,7 @@ export declare namespace CurseEventScript {
|
|
|
79
111
|
type: "wait";
|
|
80
112
|
end: EndCondition;
|
|
81
113
|
}
|
|
114
|
+
export function Wait(ticks: SupplierOr<number | IRange, [CurseEventContext]>): Wait;
|
|
82
115
|
export function Wait(end: EndCondition): Wait;
|
|
83
116
|
export interface Action extends CurseEventScriptNodeBase {
|
|
84
117
|
type: "action";
|
|
@@ -53,6 +53,14 @@ export declare enum CurseCategory {
|
|
|
53
53
|
*/
|
|
54
54
|
Dependent = 2
|
|
55
55
|
}
|
|
56
|
+
export declare enum CursePosition {
|
|
57
|
+
/** The default value for a curse event. `position` returns the island's center. */
|
|
58
|
+
None = 0,
|
|
59
|
+
/** The curse event spawns in a random location near the cursebearer. */
|
|
60
|
+
Random = 1,
|
|
61
|
+
/** The curse event's position is always directly on the cursebearer. */
|
|
62
|
+
Follow = 2
|
|
63
|
+
}
|
|
56
64
|
export declare enum CurseComponent {
|
|
57
65
|
Skill = 0,
|
|
58
66
|
HighestAttack = 1,
|
|
@@ -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;
|
|
@@ -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;
|
|
@@ -250,6 +250,10 @@ export interface IDoodadDescription extends IObjectDescription, IModdable, ICaus
|
|
|
250
250
|
* Radius around scarecrow that will attempt to scare away creatures based on `chanceOfScarecrowScare` property in `creatureDescriptions`.
|
|
251
251
|
*/
|
|
252
252
|
scareRadius?: number;
|
|
253
|
+
/**
|
|
254
|
+
* When the doodad reaches this stage, it will drop the following items with the following chances.
|
|
255
|
+
*/
|
|
256
|
+
dropsOnGrowth?: IDropsOnGrowth;
|
|
253
257
|
}
|
|
254
258
|
export interface IItemStackRegion {
|
|
255
259
|
xMin: number;
|
|
@@ -294,6 +298,7 @@ export interface IProvidesSkill {
|
|
|
294
298
|
skillValue: number;
|
|
295
299
|
}
|
|
296
300
|
export type IDoodadParticles = Record<number, IRGB>;
|
|
301
|
+
export type IDropsOnGrowth = PartialRecord<GrowingStage, ILootItem[]>;
|
|
297
302
|
export type IDoodadLoot = PartialRecord<GrowingStage, ILootItem[]>;
|
|
298
303
|
export declare enum DoodadType {
|
|
299
304
|
WoodenDoor = 0,
|
|
@@ -256,6 +256,7 @@ export default abstract class Human<DescriptionType = unknown, TypeType extends
|
|
|
256
256
|
getEquippedItem(slot: EquipType, includeDisabled?: true): Item | undefined;
|
|
257
257
|
isOffHandDisabled(): boolean;
|
|
258
258
|
getEquipSlotForItem(item: Item, includeDisabled?: true): EquipType | undefined;
|
|
259
|
+
getFanaticism(deity: Deity): number;
|
|
259
260
|
getCurse(): number;
|
|
260
261
|
canSeePosition(type: CanASeeBType, islandId: IslandId, x: number, y: number, z: number, fieldOfView?: FieldOfView, customRadius?: number): boolean;
|
|
261
262
|
/**
|
|
@@ -8,13 +8,17 @@
|
|
|
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 { DeityReal } from "@wayward/game/game/deity/Deity";
|
|
11
12
|
import { Action } from "@wayward/game/game/entity/action/Action";
|
|
12
13
|
import type { IActionUsable } from "@wayward/game/game/entity/action/IAction";
|
|
13
14
|
import { ActionArgument, ActionType } from "@wayward/game/game/entity/action/IAction";
|
|
14
15
|
import type { IInvokeUse } from "@wayward/game/game/item/IItem";
|
|
15
16
|
import type Item from "@wayward/game/game/item/Item";
|
|
17
|
+
import { Milestone } from "@wayward/game/game/milestones/IMilestone";
|
|
16
18
|
export interface IInvokeUsable extends IActionUsable, IInvokeUse {
|
|
17
19
|
rune: Item;
|
|
18
20
|
}
|
|
21
|
+
export declare const DEITY_INVOKE_MILESTONES: Record<DeityReal, Milestone>;
|
|
22
|
+
export declare const RUNE_USE_CHANCE = 1;
|
|
19
23
|
declare const _default: Action<[ActionArgument.Item], ActionType.Invoke, import("../../player/Player").default, void, IInvokeUsable, [Item]>;
|
|
20
24
|
export default _default;
|
|
@@ -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" | "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)?]>;
|
|
19
|
+
declare const _default: Action<[[ActionArgument.Undefined, import("../argument/ActionArgumentEnum").default<TitleType, "Skill" | "Milestone">], [arg1: ActionArgument.Undefined, import("../argument/ActionArgumentEnum").default<Milestone, "Statistician" | "Runekeeper" | "Cursed" | "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" | "Cursebreaker">, 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;
|
|
@@ -15,7 +15,7 @@ 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
|
+
import type { IIcon, InfoProvider } from "@wayward/game/game/inspection/InfoProvider";
|
|
19
19
|
import type { IGameOptionsStatus } from "@wayward/game/game/options/IGameOptions";
|
|
20
20
|
import type Dictionary from "@wayward/game/language/Dictionary";
|
|
21
21
|
import type { StatusTranslation } from "@wayward/game/language/dictionary/Misc";
|
|
@@ -33,11 +33,16 @@ export interface IStatusDisplayable {
|
|
|
33
33
|
icon?: SupplierOr<IStatusIconDescription | undefined, [IStatusContext]>;
|
|
34
34
|
getBorderColorOverride?(status?: Status): string | undefined;
|
|
35
35
|
getCategoryOverride?(status?: Status): IStatusCategoryOverride | undefined;
|
|
36
|
+
getDescriptionContent?(status: Status): IStatusDescriptionContent | undefined;
|
|
36
37
|
}
|
|
37
38
|
export interface IStatusCategoryOverride {
|
|
38
39
|
icon: string | IIcon;
|
|
39
40
|
translation: Translation;
|
|
40
41
|
}
|
|
42
|
+
export interface IStatusDescriptionContent {
|
|
43
|
+
primary?: ArrayOr<Translation | InfoProvider | undefined>;
|
|
44
|
+
secondary?: ArrayOr<Translation | InfoProvider | undefined>;
|
|
45
|
+
}
|
|
41
46
|
export interface IStatusDescription extends IStatusDisplayable {
|
|
42
47
|
applicability: StatusApplicability;
|
|
43
48
|
relevantStat?: Stat;
|
|
@@ -53,7 +58,13 @@ export interface IStatusDescription extends IStatusDisplayable {
|
|
|
53
58
|
/** An optional replacement list of icons to display for this status effect, rather than the single default icon. */
|
|
54
59
|
getDisplay?(status: Status): IStatusDisplayInstance[] | undefined;
|
|
55
60
|
getSubtitle?(): Translation | undefined;
|
|
56
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Controls whether this status is considered important, separate from the "threat level" system.
|
|
63
|
+
*
|
|
64
|
+
* Currently, "important" statuses have the same bounce animation that "threats" have.
|
|
65
|
+
*/
|
|
66
|
+
important?: true;
|
|
67
|
+
interval?: SupplierOr<number | undefined, [IStatusContext]> | false;
|
|
57
68
|
effects?: SupplierOr<StatusEffectList | undefined, [IStatusContext, StatusEffectList]>;
|
|
58
69
|
particles?: SupplierOr<StatusParticle | undefined, [IStatusContext, StatusParticleEvent?]>;
|
|
59
70
|
/** A list of `StatusRenderer`s that could be returned by a supplier in the `renderer` property */
|
|
@@ -27,7 +27,7 @@ declare namespace IStatusContext {
|
|
|
27
27
|
function fromStatus(status: Status): IStatusContext;
|
|
28
28
|
function fromDef(status: StatusType, definition: IStatusDescription, entity?: EntityWithStats): IStatusContext;
|
|
29
29
|
function withLevel(status: IStatusContext, level: number): IStatusContext;
|
|
30
|
-
function getInterval(status: IStatusContext): number;
|
|
30
|
+
function getInterval(status: IStatusContext): number | false;
|
|
31
31
|
function getOptions(type: StatusType, entity?: EntityWithStats): IGameOptionsStatus;
|
|
32
32
|
function getEffects(status: IStatusContext): StatusEffectList;
|
|
33
33
|
}
|
|
@@ -78,7 +78,7 @@ export default class Status extends EventEmitter.Host<IStatusEvents> {
|
|
|
78
78
|
getTranslation(which?: StatusTranslation, level?: number): TranslationImpl | undefined;
|
|
79
79
|
refresh(): void;
|
|
80
80
|
getEffects(): StatusEffectList;
|
|
81
|
-
getInterval(): number;
|
|
81
|
+
getInterval(): number | false;
|
|
82
82
|
/**
|
|
83
83
|
* Whether the status effect should pass (be removed from the human).
|
|
84
84
|
*/
|
|
@@ -8,4 +8,12 @@
|
|
|
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
|
-
|
|
11
|
+
import type { QualityNatural } from "@wayward/game/game/IObject";
|
|
12
|
+
import { Quality } from "@wayward/game/game/IObject";
|
|
13
|
+
import { ChaosEffect } from "@wayward/game/game/deity/Chaos";
|
|
14
|
+
import type { IRange } from "@wayward/utilities/math/Range";
|
|
15
|
+
export declare const RUNE_OF_EVIL_SPAWN_COUNT: Record<QualityNatural, IRange>;
|
|
16
|
+
export declare const RUNE_OF_EVIL_MAX_ATTEMPTS = 20;
|
|
17
|
+
export declare const RUNE_OF_GOOD_PACIFY_CHANCE: Record<QualityNatural, number>;
|
|
18
|
+
export declare const RUNE_OF_GOOD_PACIFY_TIME: Record<QualityNatural, IRange>;
|
|
19
|
+
export declare const RUNE_OF_CHAOS_EFFECT_MAP: PartialRecord<Quality, ChaosEffect>;
|
|
@@ -78,7 +78,9 @@ export declare enum Milestone {
|
|
|
78
78
|
Statistician = 66,
|
|
79
79
|
Afflicted = 67,
|
|
80
80
|
Exsanguinated = 68,
|
|
81
|
-
InternalItemDiscovered = 69
|
|
81
|
+
InternalItemDiscovered = 69,
|
|
82
|
+
Cursed = 70,
|
|
83
|
+
Cursebreaker = 71
|
|
82
84
|
}
|
|
83
85
|
export type ExcludeInternalMilestones<MILESTONE extends Milestone> = PickValueKeys<typeof Milestone, MILESTONE> extends `Internal${string}` ? never : MILESTONE;
|
|
84
86
|
export declare enum MilestoneVisibility {
|
|
@@ -71,14 +71,15 @@ export default class MilestoneDefinition {
|
|
|
71
71
|
*/
|
|
72
72
|
inherit(def: MilestoneDefinition): this;
|
|
73
73
|
visibility: MilestoneVisibility;
|
|
74
|
-
visibleThreshold: number | Milestone;
|
|
74
|
+
visibleThreshold: number | Milestone | [Milestone, number];
|
|
75
75
|
/**
|
|
76
76
|
* @param visibility Whether the milestone is completely visible, has its name hidden, or has its required amount hidden. Defaults to `Visible`
|
|
77
|
-
* @param until Sets the time when the milestone will become `Visible`. This can be
|
|
77
|
+
* @param until Sets the time when the milestone will become `Visible`. This can be any of:
|
|
78
78
|
* - A completion threshold (in a fractional value between 0 and 1)
|
|
79
79
|
* - A different milestone to complete first
|
|
80
|
+
* - A tuple of a different milestone and a value that must be discovered in that milestone
|
|
80
81
|
*/
|
|
81
|
-
setVisibility(visibility: MilestoneVisibility, until?: number): this;
|
|
82
|
+
setVisibility(visibility: MilestoneVisibility, until?: number | [Milestone, number]): this;
|
|
82
83
|
/**
|
|
83
84
|
* Sets this milestone to be unlockable in all game modes, and not disabled by mods.
|
|
84
85
|
*/
|
|
@@ -189,6 +189,10 @@ export interface IGameOptionsPlayer {
|
|
|
189
189
|
* Starting curse value, added to the calculated value.
|
|
190
190
|
*/
|
|
191
191
|
initialCurse: number;
|
|
192
|
+
/**
|
|
193
|
+
* A multiplier for the cooldown of curse events. The multiplier used is the average of all players on the island.
|
|
194
|
+
*/
|
|
195
|
+
curseCooldownMultiplier: number;
|
|
192
196
|
/**
|
|
193
197
|
* Whether the player should use their globally unlocked recipes in this game.
|
|
194
198
|
*/
|
|
@@ -298,6 +302,12 @@ export interface IGameOptionsPlayer {
|
|
|
298
302
|
* TODO: Set to Map<RecipeLevel, number> when we can support maps in milestone modifier overrides?
|
|
299
303
|
*/
|
|
300
304
|
difficultyMultiplier: number;
|
|
305
|
+
/**
|
|
306
|
+
* A multiplier for the chance of magical properties being generated on crafted items.
|
|
307
|
+
*
|
|
308
|
+
* Multiplied with the island's chance for any item being generated with magical properties (which is per-quality.)
|
|
309
|
+
*/
|
|
310
|
+
magicChanceMultiplier: number;
|
|
301
311
|
/**
|
|
302
312
|
* Allow default crafting recipe discovery.
|
|
303
313
|
*/
|
|
@@ -25,6 +25,8 @@ import Collector from "@wayward/game/game/options/modifiers/milestone/modifiers/
|
|
|
25
25
|
import Contender from "@wayward/game/game/options/modifiers/milestone/modifiers/Contender";
|
|
26
26
|
import Crafter from "@wayward/game/game/options/modifiers/milestone/modifiers/Crafter";
|
|
27
27
|
import Curator from "@wayward/game/game/options/modifiers/milestone/modifiers/Curator";
|
|
28
|
+
import Cursebreaker from "@wayward/game/game/options/modifiers/milestone/modifiers/Cursebreaker";
|
|
29
|
+
import Cursed from "@wayward/game/game/options/modifiers/milestone/modifiers/Cursed";
|
|
28
30
|
import Dedicated from "@wayward/game/game/options/modifiers/milestone/modifiers/Dedicated";
|
|
29
31
|
import DestroyerOfMagi from "@wayward/game/game/options/modifiers/milestone/modifiers/DestroyerOfMagi";
|
|
30
32
|
import Diverse from "@wayward/game/game/options/modifiers/milestone/modifiers/Diverse";
|
|
@@ -137,6 +139,8 @@ export declare const milestoneModifiers: {
|
|
|
137
139
|
65: typeof Turbulent;
|
|
138
140
|
50: typeof Versatile;
|
|
139
141
|
29: typeof Weathered;
|
|
142
|
+
70: typeof Cursed;
|
|
143
|
+
71: typeof Cursebreaker;
|
|
140
144
|
};
|
|
141
145
|
declare class MilestoneModifiersManager extends GameplayModifiersManager<MilestoneModifier, Milestone, [Human?]> {
|
|
142
146
|
constructor();
|
|
@@ -0,0 +1,17 @@
|
|
|
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 { IGameOptionsPartial } from "@wayward/game/game/options/IGameOptions";
|
|
12
|
+
import { MilestoneModifierGroup } from "@wayward/game/game/options/modifiers/milestone/IMilestoneModifier";
|
|
13
|
+
import MilestoneModifier from "@wayward/game/game/options/modifiers/milestone/MilestoneModifier";
|
|
14
|
+
export default class Cursebreaker extends MilestoneModifier {
|
|
15
|
+
getGroup(): MilestoneModifierGroup;
|
|
16
|
+
getOptions(): IGameOptionsPartial;
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
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 { IGameOptionsPartial } from "@wayward/game/game/options/IGameOptions";
|
|
12
|
+
import { MilestoneModifierGroup } from "@wayward/game/game/options/modifiers/milestone/IMilestoneModifier";
|
|
13
|
+
import MilestoneModifier from "@wayward/game/game/options/modifiers/milestone/MilestoneModifier";
|
|
14
|
+
export default class Cursed extends MilestoneModifier {
|
|
15
|
+
getGroup(): MilestoneModifierGroup;
|
|
16
|
+
getOptions(): IGameOptionsPartial;
|
|
17
|
+
}
|