@dreadwood-types/types 0.1.30 → 0.1.43
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/dist/adventure.d.ts +49 -0
- package/dist/adventure.d.ts.map +1 -0
- package/dist/adventure.js +10 -0
- package/dist/adventure.js.map +1 -0
- package/dist/areaTransitions.d.ts +34 -0
- package/dist/areaTransitions.d.ts.map +1 -0
- package/dist/areaTransitions.js +23 -0
- package/dist/areaTransitions.js.map +1 -0
- package/dist/blacksmithing.d.ts +32 -0
- package/dist/blacksmithing.d.ts.map +1 -0
- package/dist/blacksmithing.js +207 -0
- package/dist/blacksmithing.js.map +1 -0
- package/dist/clientConfig.js +1 -1
- package/dist/clientConfig.js.map +1 -1
- package/dist/constants.d.ts +129 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +254 -5
- package/dist/constants.js.map +1 -1
- package/dist/cooking.d.ts.map +1 -1
- package/dist/cooking.js +5 -0
- package/dist/cooking.js.map +1 -1
- package/dist/dreadwoodsZones.d.ts +74 -0
- package/dist/dreadwoodsZones.d.ts.map +1 -0
- package/dist/dreadwoodsZones.js +101 -0
- package/dist/dreadwoodsZones.js.map +1 -0
- package/dist/equipment.d.ts +3 -0
- package/dist/equipment.d.ts.map +1 -1
- package/dist/equipment.js +24 -0
- package/dist/equipment.js.map +1 -1
- package/dist/groundItems.d.ts.map +1 -1
- package/dist/groundItems.js +12 -0
- package/dist/groundItems.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/landmarks.d.ts +395 -19
- package/dist/landmarks.d.ts.map +1 -1
- package/dist/landmarks.js +548 -80
- package/dist/landmarks.js.map +1 -1
- package/dist/messages.d.ts +72 -6
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +8 -0
- package/dist/messages.js.map +1 -1
- package/dist/mining.d.ts +16 -11
- package/dist/mining.d.ts.map +1 -1
- package/dist/mining.js +54 -15
- package/dist/mining.js.map +1 -1
- package/dist/quests.d.ts +2 -2
- package/dist/quests.d.ts.map +1 -1
- package/dist/quests.js +30 -2
- package/dist/quests.js.map +1 -1
- package/dist/spiderCave.d.ts +17 -3
- package/dist/spiderCave.d.ts.map +1 -1
- package/dist/spiderCave.js +25 -3
- package/dist/spiderCave.js.map +1 -1
- package/dist/woodwork.d.ts +118 -0
- package/dist/woodwork.d.ts.map +1 -1
- package/dist/woodwork.js +178 -4
- package/dist/woodwork.js.map +1 -1
- package/dist/zones.d.ts.map +1 -1
- package/dist/zones.js +9 -2
- package/dist/zones.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Retains camp improvements when loading older adventure saves. */
|
|
2
|
+
export type AdventureProgress = {
|
|
3
|
+
campTier: number;
|
|
4
|
+
};
|
|
5
|
+
export declare function normalizeAdventure(raw: unknown): AdventureProgress;
|
|
6
|
+
export declare const CAMP_UPGRADES: readonly [{
|
|
7
|
+
readonly name: 'A place to rest';
|
|
8
|
+
readonly detail: 'Build a bench and a tidy woodpile beside your repaired storage hut.';
|
|
9
|
+
readonly wood: 10;
|
|
10
|
+
readonly coins: 0;
|
|
11
|
+
}, {
|
|
12
|
+
readonly name: 'A place to belong';
|
|
13
|
+
readonly detail: 'Add a woven rug, a planter, and a lantern to your camp.';
|
|
14
|
+
readonly wood: 15;
|
|
15
|
+
readonly coins: 25;
|
|
16
|
+
}, {
|
|
17
|
+
readonly name: 'A place to remember';
|
|
18
|
+
readonly detail: 'Build a trophy stand and raise your explorer banner.';
|
|
19
|
+
readonly wood: 20;
|
|
20
|
+
readonly coins: 50;
|
|
21
|
+
}];
|
|
22
|
+
export type AdventureAction = 'refresh' | 'camp_upgrade' | 'wave' | 'cheer';
|
|
23
|
+
export type AdventureCard = {
|
|
24
|
+
id: string;
|
|
25
|
+
title: string;
|
|
26
|
+
text: string;
|
|
27
|
+
progress?: string;
|
|
28
|
+
complete?: boolean;
|
|
29
|
+
actions?: Array<{
|
|
30
|
+
label: string;
|
|
31
|
+
action: AdventureAction;
|
|
32
|
+
enabled: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
icon?: string;
|
|
35
|
+
};
|
|
36
|
+
export type AdventurePage = {
|
|
37
|
+
id: 'camp' | 'emotes';
|
|
38
|
+
label: string;
|
|
39
|
+
cards: AdventureCard[];
|
|
40
|
+
};
|
|
41
|
+
export type AdventureSnapshot = {
|
|
42
|
+
pages: AdventurePage[];
|
|
43
|
+
camp: {
|
|
44
|
+
tier: number;
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
} | null;
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=adventure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adventure.d.ts","sourceRoot":"","sources":["../src/adventure.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAGlE;AACD,eAAO,MAAM,aAAa;aACtB,IAAI,EAAE,iBAAiB;aAAE,MAAM,EAAE,qEAAqE;aAAE,IAAI,EAAE,EAAE;aAAE,KAAK,EAAE,CAAC;;aAC1H,IAAI,EAAE,mBAAmB;aAAE,MAAM,EAAE,yDAAyD;aAAE,IAAI,EAAE,EAAE;aAAE,KAAK,EAAE,EAAE;;aACjH,IAAI,EAAE,qBAAqB;aAAE,MAAM,EAAE,sDAAsD;aAAE,IAAI,EAAE,EAAE;aAAE,KAAK,EAAE,EAAE;EAC1G,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC/E,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAC7F,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function normalizeAdventure(raw) {
|
|
2
|
+
const v = raw && typeof raw === 'object' ? raw : {};
|
|
3
|
+
return { campTier: typeof v.campTier === 'number' && Number.isFinite(v.campTier) ? Math.max(0, Math.min(3, Math.floor(v.campTier))) : 0 };
|
|
4
|
+
}
|
|
5
|
+
export const CAMP_UPGRADES = [
|
|
6
|
+
{ name: 'A place to rest', detail: 'Build a bench and a tidy woodpile beside your repaired storage hut.', wood: 10, coins: 0 },
|
|
7
|
+
{ name: 'A place to belong', detail: 'Add a woven rug, a planter, and a lantern to your camp.', wood: 15, coins: 25 },
|
|
8
|
+
{ name: 'A place to remember', detail: 'Build a trophy stand and raise your explorer banner.', wood: 20, coins: 50 },
|
|
9
|
+
];
|
|
10
|
+
//# sourceMappingURL=adventure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adventure.js","sourceRoot":"","sources":["../src/adventure.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAC7C,MAAM,CAAC,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5I,CAAC;AACD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,qEAAqE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;IAC9H,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,yDAAyD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACrH,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,sDAAsD,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;CAC5G,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { NpcKind } from './constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Area transitions: the cover a player sees while the client builds a place
|
|
4
|
+
* a teleport has just dropped them into.
|
|
5
|
+
*
|
|
6
|
+
* Walking is invisible work - chunks stream in one at a time and the prop
|
|
7
|
+
* queue drains a couple of milliseconds a frame. A teleport is not: the whole
|
|
8
|
+
* view swaps at once, so the client has twenty-five chunks of terrain to
|
|
9
|
+
* build, a few hundred props to spawn and, for a creature area, a model to
|
|
10
|
+
* fetch and parse, all in the first second. Uncovered, entering the Spider
|
|
11
|
+
* Cave measured as four seconds of continuous stutter (22 long tasks, the
|
|
12
|
+
* worst 414 ms) with spiders already biting. Covered, the client does the
|
|
13
|
+
* same work flat out behind a screen and lifts it when everything stands.
|
|
14
|
+
*
|
|
15
|
+
* The server sends `area_transition` with one of these ids immediately
|
|
16
|
+
* before the chunk data for the destination. Everything else is client-side;
|
|
17
|
+
* see dreadwoods-frontend/AREA_TRANSITIONS.md for how to add one.
|
|
18
|
+
*/
|
|
19
|
+
export type AreaTransitionId = 'spider-cave' | 'spider-cave-out' | 'ice-prison' | 'ice-prison-out';
|
|
20
|
+
export type AreaTransition = {
|
|
21
|
+
/** The big line on the cover: the place you are arriving at. */
|
|
22
|
+
title: string;
|
|
23
|
+
/** The small line under it. Flavour, not status - the cover is brief. */
|
|
24
|
+
line: string;
|
|
25
|
+
/**
|
|
26
|
+
* Creature kinds whose imported models are fetched and parsed before the
|
|
27
|
+
* cover lifts, so the first one you meet is the real model and not a
|
|
28
|
+
* procedural stand-in that pops into it mid-fight. Kinds with no imported
|
|
29
|
+
* model are ignored.
|
|
30
|
+
*/
|
|
31
|
+
creatures: readonly NpcKind[];
|
|
32
|
+
};
|
|
33
|
+
export declare const AREA_TRANSITIONS: Record<AreaTransitionId, AreaTransition>;
|
|
34
|
+
//# sourceMappingURL=areaTransitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaTransitions.d.ts","sourceRoot":"","sources":["../src/areaTransitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEnG,MAAM,MAAM,cAAc,GAAG;IAC3B,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAqBrE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export const AREA_TRANSITIONS = {
|
|
2
|
+
'spider-cave': {
|
|
3
|
+
title: 'Spider Cave',
|
|
4
|
+
line: 'Something skitters in the dark...',
|
|
5
|
+
creatures: ['spider', 'arana'],
|
|
6
|
+
},
|
|
7
|
+
'spider-cave-out': {
|
|
8
|
+
title: 'Spider Hollow',
|
|
9
|
+
line: 'You crawl back up into the woods.',
|
|
10
|
+
creatures: ['spiderling'],
|
|
11
|
+
},
|
|
12
|
+
'ice-prison': {
|
|
13
|
+
title: 'The Ice Prison',
|
|
14
|
+
line: 'The cold in here has teeth...',
|
|
15
|
+
creatures: ['frostwolf'],
|
|
16
|
+
},
|
|
17
|
+
'ice-prison-out': {
|
|
18
|
+
title: 'The Frozen Hallway',
|
|
19
|
+
line: 'Back out into the wind.',
|
|
20
|
+
creatures: ['wolf'],
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=areaTransitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"areaTransitions.js","sourceRoot":"","sources":["../src/areaTransitions.ts"],"names":[],"mappings":"AAmCA,MAAM,CAAC,MAAM,gBAAgB,GAA6C;IACxE,aAAa,EAAE;QACb,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,mCAAmC;QACzC,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;KAC/B;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,eAAe;QACtB,IAAI,EAAE,mCAAmC;QACzC,SAAS,EAAE,CAAC,YAAY,CAAC;KAC1B;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,+BAA+B;QACrC,SAAS,EAAE,CAAC,WAAW,CAAC;KACzB;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB;CACF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blacksmithing recipes and station types.
|
|
3
|
+
*
|
|
4
|
+
* Smelting turns raw ore into metal bars at a furnace.
|
|
5
|
+
* Forging turns bars and timber into weapons, armour, and tools at an anvil.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ANVIL_KIND = "anvil";
|
|
8
|
+
export declare const FURNACE_KIND = "furnace";
|
|
9
|
+
export declare const BLACKSMITHING_HAMMER_KIND = "blacksmithinghammer";
|
|
10
|
+
export declare const BRONZE_BAR_ITEM_KIND = "bronzebar";
|
|
11
|
+
export declare const IRON_BAR_ITEM_KIND = "ironbar";
|
|
12
|
+
export declare const BLACKSMITH_RANGE = 2;
|
|
13
|
+
export declare const BLACKSMITH_INTERVAL_MS = 1800;
|
|
14
|
+
export type BlacksmithStation = 'anvil' | 'furnace';
|
|
15
|
+
export type BlacksmithCategory = 'smelting' | 'bronze' | 'iron';
|
|
16
|
+
export type BlacksmithRecipe = {
|
|
17
|
+
id: string;
|
|
18
|
+
output: string;
|
|
19
|
+
outputQty: number;
|
|
20
|
+
station: BlacksmithStation;
|
|
21
|
+
category: BlacksmithCategory;
|
|
22
|
+
level: number;
|
|
23
|
+
xp: number;
|
|
24
|
+
materials: ReadonlyArray<{
|
|
25
|
+
kind: string;
|
|
26
|
+
qty: number;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
export declare const BLACKSMITH_RECIPES: readonly BlacksmithRecipe[];
|
|
30
|
+
export declare function blacksmithRecipe(id: string): BlacksmithRecipe | null;
|
|
31
|
+
export declare function blacksmithRecipesForStation(station: BlacksmithStation): BlacksmithRecipe[];
|
|
32
|
+
//# sourceMappingURL=blacksmithing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blacksmithing.d.ts","sourceRoot":"","sources":["../src/blacksmithing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,YAAY,YAAY,CAAC;AACtC,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EA4LzD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAEpE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,EAAE,CAE1F"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blacksmithing recipes and station types.
|
|
3
|
+
*
|
|
4
|
+
* Smelting turns raw ore into metal bars at a furnace.
|
|
5
|
+
* Forging turns bars and timber into weapons, armour, and tools at an anvil.
|
|
6
|
+
*/
|
|
7
|
+
export const ANVIL_KIND = 'anvil';
|
|
8
|
+
export const FURNACE_KIND = 'furnace';
|
|
9
|
+
export const BLACKSMITHING_HAMMER_KIND = 'blacksmithinghammer';
|
|
10
|
+
export const BRONZE_BAR_ITEM_KIND = 'bronzebar';
|
|
11
|
+
export const IRON_BAR_ITEM_KIND = 'ironbar';
|
|
12
|
+
export const BLACKSMITH_RANGE = 2;
|
|
13
|
+
export const BLACKSMITH_INTERVAL_MS = 1800;
|
|
14
|
+
export const BLACKSMITH_RECIPES = [
|
|
15
|
+
// Smelting (Furnace)
|
|
16
|
+
{
|
|
17
|
+
id: 'smelt_bronzebar',
|
|
18
|
+
output: 'bronzebar',
|
|
19
|
+
outputQty: 1,
|
|
20
|
+
station: 'furnace',
|
|
21
|
+
category: 'smelting',
|
|
22
|
+
level: 1,
|
|
23
|
+
xp: 20,
|
|
24
|
+
materials: [
|
|
25
|
+
{ kind: 'copper', qty: 1 },
|
|
26
|
+
{ kind: 'tin', qty: 1 },
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: 'smelt_ironbar',
|
|
31
|
+
output: 'ironbar',
|
|
32
|
+
outputQty: 1,
|
|
33
|
+
station: 'furnace',
|
|
34
|
+
category: 'smelting',
|
|
35
|
+
level: 15,
|
|
36
|
+
xp: 45,
|
|
37
|
+
materials: [{ kind: 'iron', qty: 1 }],
|
|
38
|
+
},
|
|
39
|
+
// Bronze Forging (Anvil)
|
|
40
|
+
{
|
|
41
|
+
id: 'forge_bronzedagger',
|
|
42
|
+
output: 'bronzedagger',
|
|
43
|
+
outputQty: 1,
|
|
44
|
+
station: 'anvil',
|
|
45
|
+
category: 'bronze',
|
|
46
|
+
level: 1,
|
|
47
|
+
xp: 25,
|
|
48
|
+
materials: [{ kind: 'bronzebar', qty: 1 }],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: 'forge_hatchet',
|
|
52
|
+
output: 'hatchet',
|
|
53
|
+
outputQty: 1,
|
|
54
|
+
station: 'anvil',
|
|
55
|
+
category: 'bronze',
|
|
56
|
+
level: 3,
|
|
57
|
+
xp: 35,
|
|
58
|
+
materials: [
|
|
59
|
+
{ kind: 'bronzebar', qty: 1 },
|
|
60
|
+
{ kind: 'birchwood', qty: 1 },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'forge_copperpickaxe',
|
|
65
|
+
output: 'copperpickaxe',
|
|
66
|
+
outputQty: 1,
|
|
67
|
+
station: 'anvil',
|
|
68
|
+
category: 'bronze',
|
|
69
|
+
level: 5,
|
|
70
|
+
xp: 40,
|
|
71
|
+
materials: [
|
|
72
|
+
{ kind: 'bronzebar', qty: 1 },
|
|
73
|
+
{ kind: 'birchwood', qty: 1 },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'forge_bronzesword',
|
|
78
|
+
output: 'bronzesword',
|
|
79
|
+
outputQty: 1,
|
|
80
|
+
station: 'anvil',
|
|
81
|
+
category: 'bronze',
|
|
82
|
+
level: 5,
|
|
83
|
+
xp: 55,
|
|
84
|
+
materials: [{ kind: 'bronzebar', qty: 2 }],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: 'forge_bronzeshield',
|
|
88
|
+
output: 'bronzeshield',
|
|
89
|
+
outputQty: 1,
|
|
90
|
+
station: 'anvil',
|
|
91
|
+
category: 'bronze',
|
|
92
|
+
level: 7,
|
|
93
|
+
xp: 65,
|
|
94
|
+
materials: [{ kind: 'bronzebar', qty: 2 }],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: 'forge_bronzehelmet',
|
|
98
|
+
output: 'bronzehelmet',
|
|
99
|
+
outputQty: 1,
|
|
100
|
+
station: 'anvil',
|
|
101
|
+
category: 'bronze',
|
|
102
|
+
level: 9,
|
|
103
|
+
xp: 75,
|
|
104
|
+
materials: [{ kind: 'bronzebar', qty: 2 }],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'forge_bronzelegs',
|
|
108
|
+
output: 'bronzelegs',
|
|
109
|
+
outputQty: 1,
|
|
110
|
+
station: 'anvil',
|
|
111
|
+
category: 'bronze',
|
|
112
|
+
level: 11,
|
|
113
|
+
xp: 95,
|
|
114
|
+
materials: [{ kind: 'bronzebar', qty: 3 }],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'forge_bronzebody',
|
|
118
|
+
output: 'bronzebody',
|
|
119
|
+
outputQty: 1,
|
|
120
|
+
station: 'anvil',
|
|
121
|
+
category: 'bronze',
|
|
122
|
+
level: 14,
|
|
123
|
+
xp: 125,
|
|
124
|
+
materials: [{ kind: 'bronzebar', qty: 4 }],
|
|
125
|
+
},
|
|
126
|
+
// Iron Forging (Anvil)
|
|
127
|
+
{
|
|
128
|
+
id: 'forge_irondagger',
|
|
129
|
+
output: 'irondagger',
|
|
130
|
+
outputQty: 1,
|
|
131
|
+
station: 'anvil',
|
|
132
|
+
category: 'iron',
|
|
133
|
+
level: 15,
|
|
134
|
+
xp: 60,
|
|
135
|
+
materials: [{ kind: 'ironbar', qty: 1 }],
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: 'forge_ironpickaxe',
|
|
139
|
+
output: 'ironpickaxe',
|
|
140
|
+
outputQty: 1,
|
|
141
|
+
station: 'anvil',
|
|
142
|
+
category: 'iron',
|
|
143
|
+
level: 18,
|
|
144
|
+
xp: 80,
|
|
145
|
+
materials: [
|
|
146
|
+
{ kind: 'ironbar', qty: 2 },
|
|
147
|
+
{ kind: 'pinewood', qty: 1 },
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
id: 'forge_ironsword',
|
|
152
|
+
output: 'ironsword',
|
|
153
|
+
outputQty: 1,
|
|
154
|
+
station: 'anvil',
|
|
155
|
+
category: 'iron',
|
|
156
|
+
level: 20,
|
|
157
|
+
xp: 110,
|
|
158
|
+
materials: [{ kind: 'ironbar', qty: 2 }],
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
id: 'forge_ironshield',
|
|
162
|
+
output: 'ironshield',
|
|
163
|
+
outputQty: 1,
|
|
164
|
+
station: 'anvil',
|
|
165
|
+
category: 'iron',
|
|
166
|
+
level: 22,
|
|
167
|
+
xp: 130,
|
|
168
|
+
materials: [{ kind: 'ironbar', qty: 2 }],
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: 'forge_ironhelmet',
|
|
172
|
+
output: 'ironhelmet',
|
|
173
|
+
outputQty: 1,
|
|
174
|
+
station: 'anvil',
|
|
175
|
+
category: 'iron',
|
|
176
|
+
level: 25,
|
|
177
|
+
xp: 150,
|
|
178
|
+
materials: [{ kind: 'ironbar', qty: 2 }],
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: 'forge_ironlegs',
|
|
182
|
+
output: 'ironlegs',
|
|
183
|
+
outputQty: 1,
|
|
184
|
+
station: 'anvil',
|
|
185
|
+
category: 'iron',
|
|
186
|
+
level: 28,
|
|
187
|
+
xp: 180,
|
|
188
|
+
materials: [{ kind: 'ironbar', qty: 3 }],
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: 'forge_ironbody',
|
|
192
|
+
output: 'ironbody',
|
|
193
|
+
outputQty: 1,
|
|
194
|
+
station: 'anvil',
|
|
195
|
+
category: 'iron',
|
|
196
|
+
level: 30,
|
|
197
|
+
xp: 240,
|
|
198
|
+
materials: [{ kind: 'ironbar', qty: 4 }],
|
|
199
|
+
},
|
|
200
|
+
];
|
|
201
|
+
export function blacksmithRecipe(id) {
|
|
202
|
+
return BLACKSMITH_RECIPES.find((r) => r.id === id) ?? null;
|
|
203
|
+
}
|
|
204
|
+
export function blacksmithRecipesForStation(station) {
|
|
205
|
+
return BLACKSMITH_RECIPES.filter((r) => r.station === station);
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=blacksmithing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blacksmithing.js","sourceRoot":"","sources":["../src/blacksmithing.ts"],"names":[],"mappings":"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"}
|
package/dist/clientConfig.js
CHANGED
|
@@ -3,7 +3,7 @@ export const CAMERA_ZOOM_MIN = 8;
|
|
|
3
3
|
// surroundings and plan a route without making the character tiny.
|
|
4
4
|
// Leave enough room to read an encounter and plan a route on a phone without
|
|
5
5
|
// turning the game into a distant RTS view. The old 18-unit cap was still too
|
|
6
|
-
// close for the
|
|
6
|
+
// close for the Hope Beach approach.
|
|
7
7
|
export const CAMERA_ZOOM_MAX = 24;
|
|
8
8
|
/**
|
|
9
9
|
* Slightly elevated 3/4 view: character and ground ahead, not RTS top-down
|
package/dist/clientConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientConfig.js","sourceRoot":"","sources":["../src/clientConfig.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,8EAA8E;AAC9E,mEAAmE;AACnE,6EAA6E;AAC7E,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"clientConfig.js","sourceRoot":"","sources":["../src/clientConfig.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -23,6 +23,13 @@ export declare const PLAYABLE_CHUNKS_Z = 3;
|
|
|
23
23
|
export declare const FARMLAND_WIDTH: number;
|
|
24
24
|
export declare const WORLD_EAST_CHUNKS = 2;
|
|
25
25
|
export declare const WORLD_NORTH_CHUNKS = 23;
|
|
26
|
+
/**
|
|
27
|
+
* Open sea south of the playable strip. Padding the far side of the beach,
|
|
28
|
+
* not the near side, so every existing world coordinate is untouched - only
|
|
29
|
+
* WORLD_HEIGHT grows. It exists so the Long Pier has somewhere to go: the
|
|
30
|
+
* playable ocean is fourteen rows deep, which is a jetty, not a pier.
|
|
31
|
+
*/
|
|
32
|
+
export declare const WORLD_SOUTH_CHUNKS = 4;
|
|
26
33
|
export declare const DEMO_CHUNKS_X: number;
|
|
27
34
|
export declare const DEMO_CHUNKS_Z: number;
|
|
28
35
|
export declare const PLAYABLE_WIDTH: number;
|
|
@@ -45,6 +52,22 @@ export declare const GRID_CHUNKS_X: number;
|
|
|
45
52
|
export declare const GRID_CHUNKS_Z: number;
|
|
46
53
|
export declare const GRID_WIDTH: number;
|
|
47
54
|
export declare const GRID_HEIGHT: number;
|
|
55
|
+
/**
|
|
56
|
+
* Kinds that never carry an Identify marker, because nothing happens when you
|
|
57
|
+
* click them.
|
|
58
|
+
*
|
|
59
|
+
* The rule: Identify is for creatures, items, and things with an interaction
|
|
60
|
+
* behind them. Scenery is scenery. A marker over a prop with no handler is an
|
|
61
|
+
* advertised action that does nothing - which is exactly what a fallen log at
|
|
62
|
+
* the frog pond did, and what buried the shoreline in icons before shells and
|
|
63
|
+
* seaweed were listed here.
|
|
64
|
+
*
|
|
65
|
+
* One list, shared: the client reads it to decide whether to draw the marker
|
|
66
|
+
* and the server reads it to refuse the identify, so the two cannot drift.
|
|
67
|
+
* Adding a decorative EntityKind here is the whole fix; there is nothing to
|
|
68
|
+
* register on either side.
|
|
69
|
+
*/
|
|
70
|
+
export declare const NON_IDENTIFIABLE_KINDS: ReadonlySet<string>;
|
|
48
71
|
export declare function isPaperMapChunk(cx: number, cz: number): boolean;
|
|
49
72
|
export declare const HEIGHT_STEP = 0.45;
|
|
50
73
|
export declare const MAX_STEP_HEIGHT = 2;
|
|
@@ -69,7 +92,12 @@ export declare enum SurfaceType {
|
|
|
69
92
|
Stone = 7,
|
|
70
93
|
Mud = 8,
|
|
71
94
|
/** Northern snow. Walkable exactly like grass; snow.ts decides where it lies. */
|
|
72
|
-
Snow = 9
|
|
95
|
+
Snow = 9,
|
|
96
|
+
/**
|
|
97
|
+
* A frozen lake. Walkable like snow; the client draws it as cracked plates
|
|
98
|
+
* of pale blue ice. Laid by the frozen lake builder, never by the snow pass.
|
|
99
|
+
*/
|
|
100
|
+
Ice = 10
|
|
73
101
|
}
|
|
74
102
|
export declare enum TileType {
|
|
75
103
|
Grass = 0,
|
|
@@ -79,14 +107,89 @@ export declare enum TileType {
|
|
|
79
107
|
Sand = 4,
|
|
80
108
|
Ash = 5
|
|
81
109
|
}
|
|
82
|
-
export type EntityKind = 'tree' | 'rock' | 'shell' | 'seaweed' | 'wormcast' | 'beachhut' | 'farmhut' | 'table' | 'gardenfork' | 'woodennet' | 'bucket' | 'egg' | 'milkbucket' | 'fence' | 'tradingcart' | 'signpost' | 'feather' | 'crabmeat' | 'burrow' | 'rawrabbit' | 'brokenpier'
|
|
110
|
+
export type EntityKind = 'tree' | 'rock' | 'shell' | 'seaweed' | 'wormcast' | 'beachhut' | 'farmhut' | 'table' | 'gardenfork' | 'woodennet' | 'bucket' | 'egg' | 'milkbucket' | 'fence' | 'tradingcart' | 'signpost' | 'feather' | 'crabmeat' | 'burrow' | 'rawrabbit' | 'brokenpier'
|
|
111
|
+
/** One tile of the Hope Beach pier deck. See HOPE_PIER_X in landmarks.ts. */
|
|
112
|
+
| 'pier' | 'abandonedboat' | 'ship' | 'campfire'
|
|
83
113
|
/** Cast-iron range: the cooking spot indoors, where an open fire has no business being. */
|
|
84
|
-
| 'stove' | 'cookedcrab' | 'cookedrabbit' | 'cookedchicken' | 'lugworm' | 'maggot' | 'earthworm' | 'earthwormcast' | 'rottenmeat' | 'fishingline' | 'fishinghook' | 'fishingfloat' | 'coins' | 'lilypad' | 'reeds' | 'jetty' | 'rawbass' | 'cookedbass' | 'rawperch' | 'cookedperch' | 'rawtench' | 'cookedtench' | 'frog' | 'cookedfroglegs' | 'crops' | 'smallfishingrod' | 'mudhut' | 'fortwall' | 'archertower' | 'barbedwire' | 'barricade' | 'haybale' | 'horse' | 'trough' | 'barrel' | 'well' | 'farmcart' | 'scarecrow' | 'logpile' | 'flowers' | 'lantern' | 'bench' | 'compost' | 'farmtool' | 'ranchgate' | 'milestone' | 'tent' | 'cargo' | 'bush' | 'workbench' | 'workshop' | 'nettles' | 'sharprock' | 'storagehut' | 'bankchest' | 'birchwood' | 'woodenclub' | 'livoniapineclub' | 'leatherboots' | 'poplarhelmet' | 'poplarbody' | 'poplarlegs' | 'poplarspear' | 'pineshield' | 'hay' | 'caveentrance' | 'rattail' | 'ratteeth' | 'brokensaw' | 'bronzechest' | 'bronzechestkey' | 'goblincavekey' | 'goblinprisonkey' | 'blacksmithinghammer' | 'blacksmithingtongs' | 'copper' | 'tin' | 'iron' | 'bridge' | 'hatchet' | 'foldingsaw' | 'woolygloves' | 'woolyboots' | 'peasantclothes' | 'rangerclothes' | 'carvingknife' | 'pinebow' | 'apple' | 'wheat' | 'poplarwood' | 'pinewood' | 'sprucewood' | 'bircharrow' | 'sprucearrow' | 'stone' | 'grapes' | 'orange' | 'dungeondoor' | 'bones' | 'unlitbirchtorch' | 'litbirchtorch' | 'ratnest' | 'glowfungus' | 'silo' | 'grainmill' | 'pumpwindmill' | 'watertower' | 'packbarn' | 'packcoop' | 'packstable' | 'foxtracks' | 'foxtail' | 'rabbithutch' | 'bountyboard' | 'smallsatchel' | 'stonehouse' | 'townwall' | 'towngate' | 'marketstall' | 'fishingpeg' | 'waterfall' | 'ashwood' | 'flyfishingrod' | '
|
|
85
|
-
|
|
114
|
+
| 'stove' | 'cookedcrab' | 'cookedrabbit' | 'cookedchicken' | 'lugworm' | 'maggot' | 'earthworm' | 'earthwormcast' | 'rottenmeat' | 'fishingline' | 'fishinghook' | 'fishingfloat' | 'coins' | 'lilypad' | 'reeds' | 'jetty' | 'rawbass' | 'cookedbass' | 'rawperch' | 'cookedperch' | 'rawtench' | 'cookedtench' | 'frog' | 'cookedfroglegs' | 'crops' | 'smallfishingrod' | 'mudhut' | 'fortwall' | 'archertower' | 'barbedwire' | 'barricade' | 'haybale' | 'horse' | 'trough' | 'barrel' | 'well' | 'farmcart' | 'scarecrow' | 'logpile' | 'flowers' | 'lantern' | 'bench' | 'compost' | 'farmtool' | 'ranchgate' | 'milestone' | 'tent' | 'cargo' | 'bush' | 'workbench' | 'workshop' | 'nettles' | 'sharprock' | 'storagehut' | 'bankchest' | 'birchwood' | 'woodenclub' | 'livoniapineclub' | 'leatherboots' | 'poplarhelmet' | 'poplarbody' | 'poplarlegs' | 'poplarspear' | 'pineshield' | 'hay' | 'caveentrance' | 'rattail' | 'ratteeth' | 'brokensaw' | 'bronzechest' | 'bronzechestkey' | 'goblincavekey' | 'goblinprisonkey' | 'blacksmithinghammer' | 'blacksmithingtongs' | 'anvil' | 'furnace' | 'bronzebar' | 'ironbar' | 'bronzedagger' | 'bronzesword' | 'bronzeshield' | 'bronzehelmet' | 'bronzebody' | 'bronzelegs' | 'irondagger' | 'ironpickaxe' | 'ironsword' | 'ironshield' | 'ironhelmet' | 'ironbody' | 'ironlegs' | 'copper' | 'tin' | 'iron' | 'bridge' | 'hatchet' | 'foldingsaw' | 'woolygloves' | 'woolyboots' | 'peasantclothes' | 'rangerclothes' | 'carvingknife' | 'pinebow' | 'apple' | 'wheat' | 'poplarwood' | 'pinewood' | 'sprucewood' | 'bircharrow' | 'sprucearrow' | 'stone' | 'grapes' | 'orange' | 'dungeondoor' | 'bones' | 'unlitbirchtorch' | 'litbirchtorch' | 'ratnest' | 'glowfungus' | 'silo' | 'grainmill' | 'pumpwindmill' | 'watertower' | 'packbarn' | 'packcoop' | 'packstable' | 'foxtracks' | 'foxtail' | 'rabbithutch' | 'bountyboard' | 'smallsatchel' | 'stonehouse' | 'townwall' | 'towngate' | 'marketstall' | 'fishingpeg' | 'waterfall' | 'ashwood' | 'flyfishingrod' | 'spinningrod' | 'heavybeachcastingrod'
|
|
115
|
+
/** Salt & Sand Tackle: sea line, pre-tied rig, and a spinner lure. */
|
|
116
|
+
| 'sealine' | 'searig' | 'seaspinner' | 'flyhook' | 'rawtrout' | 'cookedtrout' | 'cobweb' | 'webveil' | 'spideregg' | 'spidersilk' | 'wolffang'
|
|
117
|
+
/** A snow wolf's winter coat. Fenwick at the Northern Gate buys them. */
|
|
118
|
+
| 'wolfpelt'
|
|
119
|
+
/** A hole cut through the frozen lake, with a shadow moving under it. */
|
|
120
|
+
| 'icehole'
|
|
121
|
+
/** The iced-in jetty on the frozen lake's east bank; walkable deck. */
|
|
122
|
+
| 'icejetty'
|
|
123
|
+
/** A tall pole flying the stag banner, marking the fishers' ground. */
|
|
124
|
+
| 'stagbanner'
|
|
125
|
+
/** Slabs of broken ice heaved up along the lake's edge. */
|
|
126
|
+
| 'iceshard'
|
|
127
|
+
/** The frozen lake's catch, hauled up through an ice hole, and the same fish roasted. */
|
|
128
|
+
| 'rawfrostpike' | 'cookedfrostpike'
|
|
129
|
+
/**
|
|
130
|
+
* The frost set, reusable anywhere in the north: glowing crystal clusters
|
|
131
|
+
* (`small`, `cluster`, `node`), rune-carved stone pillars, a portcullis in a
|
|
132
|
+
* stone arch (`n`/`e`/`s`/`w` facing), a patch of ice spikes on the floor,
|
|
133
|
+
* a rope bridge (`ns-<tiles>` / `ew-<tiles>`, centred on its tile) and a
|
|
134
|
+
* rune-carved doorway with an open passage (`n`/`e`/`s`/`w`).
|
|
135
|
+
*/
|
|
136
|
+
| 'icecrystal' | 'runepillar' | 'irongate' | 'frosttrap' | 'ropebridge' | 'runearch'
|
|
137
|
+
/**
|
|
138
|
+
* Ice stalagmites (`spire`, `cluster`, `field`), a waterfall frozen down a
|
|
139
|
+
* wall face (`<facing>-<height steps>`, standing on the wall tile), and a
|
|
140
|
+
* natural arch of rock and ice seven tiles across with a five-tile passage
|
|
141
|
+
* (`n`/`e`/`s`/`w`).
|
|
142
|
+
*/
|
|
143
|
+
| 'stalagmite' | 'icefall' | 'icearch'
|
|
144
|
+
/**
|
|
145
|
+
* The Ice Prison set: a barred cell cut into an ice wall with its prisoner
|
|
146
|
+
* still inside (`<facing>` of the bars), an iron cage hung from a chain, a
|
|
147
|
+
* gate smashed off its posts (`<facing>`, three tiles across), a flight of
|
|
148
|
+
* stone steps, a hooded stone warder, and the ringed shrine with its seal.
|
|
149
|
+
*/
|
|
150
|
+
| 'icecell' | 'hangingcage' | 'brokengate' | 'stonestair' | 'hoodedstatue' | 'shrine' | 'orerock' | 'minehead' | 'copperpickaxe'
|
|
151
|
+
/**
|
|
152
|
+
* Ice fishing. Smelt are the bait fish taken off the Long Pier; the bait is
|
|
153
|
+
* cut from them at the Frozen Lake's bait table; the short rod fishes a
|
|
154
|
+
* hole in the ice and the auger is what cuts the hole. `baittable` is the
|
|
155
|
+
* table itself, on the lake's east bank.
|
|
156
|
+
*/
|
|
157
|
+
| 'rawsmelt' | 'smeltbait' | 'icefishingrod' | 'iceauger' | 'baittable';
|
|
158
|
+
export type NpcKind = 'seagull' | 'crab' | 'seabass' | 'beagle' | 'trader' | 'woody' | 'rabbit' | 'petrabbit' | 'forbes' | 'jobless' | 'driver' | 'duck' | 'angler' | 'wilson' | 'pig' | 'cow' | 'chicken' | 'sheep'
|
|
159
|
+
/**
|
|
160
|
+
* The farm's sheep gone feral, out in the woodland between the farm gate and
|
|
161
|
+
* the beach path. A separate kind from `sheep` on purpose: the pen animals at
|
|
162
|
+
* No Harm Farm must stay unattackable, and only this one carries combat
|
|
163
|
+
* stats. Same model, same wander - the difference is entirely in the rules.
|
|
164
|
+
*/
|
|
165
|
+
| 'wildsheep' | 'clark' | 'clarksson' | 'stablemaster' | 'ranger' | 'debbie' | 'anne' | 'wallarcher' | 'hijacker' | 'pony' | 'rat' | 'soldier' | 'captain' | 'goblin' | 'grem' | 'spineless' | 'john' | 'nicholas' | 'robin' | 'kyle' | 'banker' | 'victoria' | 'bob' | 'spider'
|
|
166
|
+
/** Level-5 Dreadwoods spider, the population of Spider Hollow. */
|
|
167
|
+
| 'spiderling' | 'arana' | 'bandit' | 'amazon' | 'liv' | 'fox' | 'rimdel' | 'bruce' | 'wolf'
|
|
86
168
|
/** Takes the entry fee at the Trout Fishery gate. */
|
|
87
169
|
| 'fisheryguard'
|
|
88
170
|
/** Sells fly rods, line and flies from the fishery lodge. */
|
|
89
171
|
| 'sam'
|
|
172
|
+
/** Salt & Sand Tackle, at the shore end of the Long Pier on Hope Beach. */
|
|
173
|
+
| 'saul'
|
|
174
|
+
/** Keeps the stores at the garrison behind the Northern Gate. */
|
|
175
|
+
| 'quartermaster' | 'rolo' | 'bram' | 'tova'
|
|
176
|
+
/** Sits over a hole on the frozen lake north-west of the War Camp. */
|
|
177
|
+
| 'icefisher'
|
|
178
|
+
/** Sells ice tackle and keeps the bait table at the Frozen Lake's camp. */
|
|
179
|
+
| 'baitmaster'
|
|
180
|
+
/**
|
|
181
|
+
* Forest monsters, on show at Hope Beach while their models are judged.
|
|
182
|
+
* Temporary placement - see SHOWCASE_MONSTERS in the backend's npcs.ts.
|
|
183
|
+
*/
|
|
184
|
+
| 'twigling' | 'stumpbeetle' | 'bristleboar' | 'mosswolf'
|
|
185
|
+
/** Ice cavern monsters, same temporary beach showcase as the forest set. */
|
|
186
|
+
| 'crystalskitter' | 'frostrevenant' | 'glaciallurker' | 'icetroll'
|
|
187
|
+
/**
|
|
188
|
+
* The pack kept in the Frozen Cells, the first room of the Ice Prison
|
|
189
|
+
* behind the Frozen Hallway's gate. The wolf model gone white with rime,
|
|
190
|
+
* and the first thing in the prison that fights back.
|
|
191
|
+
*/
|
|
192
|
+
| 'frostwolf'
|
|
90
193
|
/** Stocked trout swimming the fishery reservoir. Click to fish. */
|
|
91
194
|
| 'trout';
|
|
92
195
|
export type ChunkCoord = {
|
|
@@ -128,6 +231,8 @@ export declare function worldToChunk(x: number, z: number): ChunkCoord & {
|
|
|
128
231
|
lz: number;
|
|
129
232
|
};
|
|
130
233
|
export declare function toWorldZ(localZ: number): number;
|
|
234
|
+
/** Inverse of toWorldZ. Local z runs past PLAYABLE_HEIGHT out over the south sea. */
|
|
235
|
+
export declare function toLocalZ(worldZ: number): number;
|
|
131
236
|
export declare function chunksAround(cx: number, cz: number, radius: number): ChunkCoord[];
|
|
132
237
|
export declare function localIndex(lx: number, lz: number): number;
|
|
133
238
|
export declare function isWalkableSurface(surface: SurfaceType): boolean;
|
|
@@ -238,6 +343,24 @@ export declare function blockingFootprintRadius(kind: EntityKind, style: string
|
|
|
238
343
|
export declare function isCaveTunnelExitStyle(style: string | undefined): boolean;
|
|
239
344
|
export declare function isGoblinCaveStyle(style: string | undefined): boolean;
|
|
240
345
|
export declare function isSpiderCaveStyle(style: string | undefined): boolean;
|
|
346
|
+
/**
|
|
347
|
+
* The den in Spider Hollow: the Dreadwoods' way down into the Spider Cave, and
|
|
348
|
+
* where the cave's exit brings you back up. Its own style rather than a second
|
|
349
|
+
* burrow because it is a different thing to look at - a hole under the roots
|
|
350
|
+
* of a dead tree, silked over - and a compact footprint in a wood, not a
|
|
351
|
+
* hillside.
|
|
352
|
+
*/
|
|
353
|
+
/**
|
|
354
|
+
* How big a rat is drawn, from its level. One model serves every rat in the
|
|
355
|
+
* world - the den vermin and tunnel rats at level 2, the pit's giants at
|
|
356
|
+
* level 10 - and the size is the level: 5.4 at level 2, 7.6 at level 10,
|
|
357
|
+
* growing on past that if a bigger rat is ever spawned. The client reads
|
|
358
|
+
* this off NpcPublic.level, so a rat needs no `scale` sent for it.
|
|
359
|
+
*/
|
|
360
|
+
export declare function ratWorldScale(level: number): number;
|
|
361
|
+
/** The level at which a rat is a giant: red-eyed, and named as one. */
|
|
362
|
+
export declare const GIANT_RAT_LEVEL = 10;
|
|
363
|
+
export declare function isSpiderDenStyle(style: string | undefined): boolean;
|
|
241
364
|
/** Wolf den mouth in the woods around Calverton. */
|
|
242
365
|
export declare function isWolfDenStyle(style: string | undefined): boolean;
|
|
243
366
|
/** Crawl-out hole inside a wolf den cavern. */
|
|
@@ -251,6 +374,8 @@ export declare function caveEntranceApproachOffset(style: string | undefined): {
|
|
|
251
374
|
dz: number;
|
|
252
375
|
};
|
|
253
376
|
export declare function visitCaveEntranceBlockedOffsets(style: string | undefined, visit: (dx: number, dz: number) => void): void;
|
|
377
|
+
/** Yaw in degrees from a `face<deg>` style suffix (`unbuilt-face180`), or null. */
|
|
378
|
+
export declare function faceStyleDegrees(style: string | undefined): number | null;
|
|
254
379
|
export declare function visitBlockedWalkOffsets(kind: EntityKind, style: string | undefined, scale: number | undefined, visit: (dx: number, dz: number) => void, doorFacing?: BuildingDoorFacing): void;
|
|
255
380
|
export declare function isWalkable(tile: TileType): boolean;
|
|
256
381
|
//# sourceMappingURL=constants.d.ts.map
|