@dreadwood-types/types 0.1.0
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/README.md +43 -0
- package/dist/appearance.d.ts +80 -0
- package/dist/appearance.d.ts.map +1 -0
- package/dist/appearance.js +319 -0
- package/dist/appearance.js.map +1 -0
- package/dist/bank.d.ts +15 -0
- package/dist/bank.d.ts.map +1 -0
- package/dist/bank.js +45 -0
- package/dist/bank.js.map +1 -0
- package/dist/clientConfig.d.ts +103 -0
- package/dist/clientConfig.d.ts.map +1 -0
- package/dist/clientConfig.js +209 -0
- package/dist/clientConfig.js.map +1 -0
- package/dist/constants.d.ts +205 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +713 -0
- package/dist/constants.js.map +1 -0
- package/dist/cooking.d.ts +26 -0
- package/dist/cooking.d.ts.map +1 -0
- package/dist/cooking.js +41 -0
- package/dist/cooking.js.map +1 -0
- package/dist/equipment.d.ts +47 -0
- package/dist/equipment.d.ts.map +1 -0
- package/dist/equipment.js +186 -0
- package/dist/equipment.js.map +1 -0
- package/dist/goblinCave.d.ts +112 -0
- package/dist/goblinCave.d.ts.map +1 -0
- package/dist/goblinCave.js +69 -0
- package/dist/goblinCave.js.map +1 -0
- package/dist/groundItems.d.ts +17 -0
- package/dist/groundItems.d.ts.map +1 -0
- package/dist/groundItems.js +104 -0
- package/dist/groundItems.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/landmarks.d.ts +366 -0
- package/dist/landmarks.d.ts.map +1 -0
- package/dist/landmarks.js +584 -0
- package/dist/landmarks.js.map +1 -0
- package/dist/messages.d.ts +723 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +38 -0
- package/dist/messages.js.map +1 -0
- package/dist/nameFilter.d.ts +8 -0
- package/dist/nameFilter.d.ts.map +1 -0
- package/dist/nameFilter.js +94 -0
- package/dist/nameFilter.js.map +1 -0
- package/dist/quests.d.ts +63 -0
- package/dist/quests.d.ts.map +1 -0
- package/dist/quests.js +233 -0
- package/dist/quests.js.map +1 -0
- package/dist/torches.d.ts +7 -0
- package/dist/torches.d.ts.map +1 -0
- package/dist/torches.js +11 -0
- package/dist/torches.js.map +1 -0
- package/dist/woodwork.d.ts +206 -0
- package/dist/woodwork.d.ts.map +1 -0
- package/dist/woodwork.js +365 -0
- package/dist/woodwork.js.map +1 -0
- package/dist/xp.d.ts +74 -0
- package/dist/xp.d.ts.map +1 -0
- package/dist/xp.js +126 -0
- package/dist/xp.js.map +1 -0
- package/dist/zones.d.ts +30 -0
- package/dist/zones.d.ts.map +1 -0
- package/dist/zones.js +143 -0
- package/dist/zones.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type CookingRecipe = {
|
|
2
|
+
input: string;
|
|
3
|
+
output: string;
|
|
4
|
+
level: number;
|
|
5
|
+
xp: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const COOKING_RECIPES: readonly CookingRecipe[];
|
|
8
|
+
export declare function cookingRecipeForInput(input: string): CookingRecipe | null;
|
|
9
|
+
export declare const COOK_INTERVAL_MS = 1000;
|
|
10
|
+
export declare const CAMPFIRE_COOK_RANGE = 3;
|
|
11
|
+
export type FoodInfo = {
|
|
12
|
+
heal: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Heals roughly tripled alongside maxHealthForLevel.
|
|
16
|
+
*
|
|
17
|
+
* These numbers were set when every player had exactly 20 health, so a cooked
|
|
18
|
+
* perch restored nearly half a health bar. With health now scaling to ~62 at
|
|
19
|
+
* level 15 and ~107 at level 30, the old values healed a rounding error and
|
|
20
|
+
* food would have stopped being a meaningful resource at the exact point the
|
|
21
|
+
* fights got hard. Raw fish still hurt — the penalty is unchanged in spirit,
|
|
22
|
+
* just scaled to match.
|
|
23
|
+
*/
|
|
24
|
+
export declare const FOOD_INFO: Record<string, FoodInfo>;
|
|
25
|
+
export declare function foodInfoFor(kind: string): FoodInfo | null;
|
|
26
|
+
//# sourceMappingURL=cooking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooking.d.ts","sourceRoot":"","sources":["../src/cooking.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAOnD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEzE;AAED,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAa9C,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEzD"}
|
package/dist/cooking.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export const COOKING_RECIPES = [
|
|
2
|
+
{ input: 'crabmeat', output: 'cookedcrab', level: 1, xp: 30 },
|
|
3
|
+
{ input: 'rawbass', output: 'cookedbass', level: 1, xp: 40 },
|
|
4
|
+
{ input: 'frog', output: 'cookedfroglegs', level: 1, xp: 35 },
|
|
5
|
+
{ input: 'rawrabbit', output: 'cookedrabbit', level: 5, xp: 45 },
|
|
6
|
+
{ input: 'rawtench', output: 'cookedtench', level: 20, xp: 55 },
|
|
7
|
+
{ input: 'rawperch', output: 'cookedperch', level: 7, xp: 70 },
|
|
8
|
+
];
|
|
9
|
+
export function cookingRecipeForInput(input) {
|
|
10
|
+
return COOKING_RECIPES.find((r) => r.input === input) ?? null;
|
|
11
|
+
}
|
|
12
|
+
export const COOK_INTERVAL_MS = 1000;
|
|
13
|
+
export const CAMPFIRE_COOK_RANGE = 3;
|
|
14
|
+
/**
|
|
15
|
+
* Heals roughly tripled alongside maxHealthForLevel.
|
|
16
|
+
*
|
|
17
|
+
* These numbers were set when every player had exactly 20 health, so a cooked
|
|
18
|
+
* perch restored nearly half a health bar. With health now scaling to ~62 at
|
|
19
|
+
* level 15 and ~107 at level 30, the old values healed a rounding error and
|
|
20
|
+
* food would have stopped being a meaningful resource at the exact point the
|
|
21
|
+
* fights got hard. Raw fish still hurt — the penalty is unchanged in spirit,
|
|
22
|
+
* just scaled to match.
|
|
23
|
+
*/
|
|
24
|
+
export const FOOD_INFO = {
|
|
25
|
+
crabmeat: { heal: 3 },
|
|
26
|
+
cookedcrab: { heal: 9 },
|
|
27
|
+
rawrabbit: { heal: -3 },
|
|
28
|
+
cookedrabbit: { heal: 15 },
|
|
29
|
+
cookedchicken: { heal: 9 },
|
|
30
|
+
rawbass: { heal: -3 },
|
|
31
|
+
cookedbass: { heal: 12 },
|
|
32
|
+
cookedfroglegs: { heal: 9 },
|
|
33
|
+
rawtench: { heal: -3 },
|
|
34
|
+
cookedtench: { heal: 18 },
|
|
35
|
+
rawperch: { heal: -3 },
|
|
36
|
+
cookedperch: { heal: 24 },
|
|
37
|
+
};
|
|
38
|
+
export function foodInfoFor(kind) {
|
|
39
|
+
return FOOD_INFO[kind] ?? null;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=cooking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooking.js","sourceRoot":"","sources":["../src/cooking.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAC7D,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAC7D,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAChE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC/D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;CAC/D,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAMrC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAA6B;IACjD,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACrB,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACvB,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACvB,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACrB,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACxB,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACtB,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;IACtB,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;CAC1B,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { CombatStance } from './messages.js';
|
|
2
|
+
export type EquipSlot = 'helmet' | 'top' | 'bottom' | 'boots' | 'weapon' | 'offhand' | 'hands' | 'ammo';
|
|
3
|
+
export declare const EQUIP_SLOTS: EquipSlot[];
|
|
4
|
+
export type EquipmentSlots = Record<EquipSlot, string | null>;
|
|
5
|
+
export type EquipInfo = {
|
|
6
|
+
slot: EquipSlot;
|
|
7
|
+
armour: number;
|
|
8
|
+
damageMin: number;
|
|
9
|
+
damageMax: number;
|
|
10
|
+
/** Maximum tiles away this weapon can initiate combat. */
|
|
11
|
+
attackInitiationRange?: number;
|
|
12
|
+
/** Mastery level needed to equip a combat weapon. */
|
|
13
|
+
masteryRequirement?: number;
|
|
14
|
+
};
|
|
15
|
+
export declare const MELEE_ATTACK_INITIATION_RANGE = 1;
|
|
16
|
+
/** Bow tiers initiate combat at 5 then 8 tiles, respectively. */
|
|
17
|
+
export declare const BOW_ATTACK_INITIATION_RANGES: readonly [5, 8];
|
|
18
|
+
export declare const EQUIP_INFO: Record<string, EquipInfo>;
|
|
19
|
+
export declare const EQUIP_SLOT_LABELS: Record<EquipSlot, string>;
|
|
20
|
+
export declare function equipInfoFor(kind: string): EquipInfo | null;
|
|
21
|
+
export declare function isEquippableKind(kind: string): boolean;
|
|
22
|
+
export declare function isCombatWeaponKind(kind: string): boolean;
|
|
23
|
+
export declare function weaponMasteryRequirement(kind: string | null | undefined): number;
|
|
24
|
+
/** Combat begins from this many tiles away; melee weapons remain adjacent-only. */
|
|
25
|
+
export declare function attackInitiationRangeForWeapon(kind: string | null | undefined): number;
|
|
26
|
+
export declare function isRangedWeaponKind(kind: string | null | undefined): boolean;
|
|
27
|
+
export declare function isAmmoKind(kind: string | null | undefined): boolean;
|
|
28
|
+
/** Persist ammo stack size beside the slot kinds in the Mixed equipment blob. */
|
|
29
|
+
export declare function packEquipment(slots: EquipmentSlots, ammoQty: number): EquipmentSlots & {
|
|
30
|
+
ammoQty: number;
|
|
31
|
+
};
|
|
32
|
+
export declare function unpackAmmoQty(raw: unknown, ammoKind: string | null): number;
|
|
33
|
+
/**
|
|
34
|
+
* The offensive skill a weapon actually uses. Derived from what is equipped
|
|
35
|
+
* rather than a manual toggle, so the stat panel and the damage roll can never
|
|
36
|
+
* disagree with the weapon in hand.
|
|
37
|
+
*/
|
|
38
|
+
export declare function stanceForWeapon(weaponKind: string | null | undefined): CombatStance;
|
|
39
|
+
export declare function emptyEquipment(): EquipmentSlots;
|
|
40
|
+
export declare function normalizeEquipment(raw: unknown): EquipmentSlots;
|
|
41
|
+
export declare function normalizeWeaponPrecision(raw: unknown, weaponKind: string | null): number | null;
|
|
42
|
+
export declare function equipmentArmour(slots: EquipmentSlots): number;
|
|
43
|
+
export declare function playerDamageRange(primaryLevel: number, precisionLevel: number, weaponKind: string | null, weaponPrecision?: number | null, _stance?: CombatStance, ammoKind?: string | null): {
|
|
44
|
+
min: number;
|
|
45
|
+
max: number;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=equipment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equipment.d.ts","sourceRoot":"","sources":["../src/equipment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,KAAK,GACL,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,SAAS,EASlC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C,iEAAiE;AACjE,eAAO,MAAM,4BAA4B,YAAI,CAAC,EAAE,CAAC,CAAU,CAAC;AAE5D,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAgChD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASvD,CAAC;AAOF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIhF;AAED,mFAAmF;AACnF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGtF;AAUD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE3E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEnE;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,MAAM,GACd,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAKtC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM3E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,CAEnF;AAED,wBAAgB,cAAc,IAAI,cAAc,CAW/C;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAgB/D;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAQ7D;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,eAAe,GAAE,MAAM,GAAG,IAAW,EACrC,OAAO,CAAC,EAAE,YAAY,EACtB,QAAQ,GAAE,MAAM,GAAG,IAAW,GAC7B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAc9B"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { effectiveAttackLevel, maxHitForStrength, weaponPrecisionBonus, } from './xp.js';
|
|
2
|
+
export const EQUIP_SLOTS = [
|
|
3
|
+
'helmet',
|
|
4
|
+
'top',
|
|
5
|
+
'bottom',
|
|
6
|
+
'boots',
|
|
7
|
+
'weapon',
|
|
8
|
+
'offhand',
|
|
9
|
+
'hands',
|
|
10
|
+
'ammo',
|
|
11
|
+
];
|
|
12
|
+
export const MELEE_ATTACK_INITIATION_RANGE = 1;
|
|
13
|
+
/** Bow tiers initiate combat at 5 then 8 tiles, respectively. */
|
|
14
|
+
export const BOW_ATTACK_INITIATION_RANGES = [5, 8];
|
|
15
|
+
export const EQUIP_INFO = {
|
|
16
|
+
unlitbirchtorch: { slot: 'offhand', armour: 0, damageMin: 0, damageMax: 0 },
|
|
17
|
+
litbirchtorch: { slot: 'offhand', armour: 0, damageMin: 0, damageMax: 0 },
|
|
18
|
+
gardenfork: { slot: 'weapon', armour: 0, damageMin: 1, damageMax: 2 },
|
|
19
|
+
woodennet: { slot: 'weapon', armour: 0, damageMin: 0, damageMax: 0 },
|
|
20
|
+
smallfishingrod: { slot: 'weapon', armour: 0, damageMin: 0, damageMax: 0 },
|
|
21
|
+
foldingsaw: { slot: 'weapon', armour: 0, damageMin: 0, damageMax: 1 },
|
|
22
|
+
hatchet: { slot: 'weapon', armour: 0, damageMin: 1, damageMax: 2 },
|
|
23
|
+
woodenclub: { slot: 'weapon', armour: 0, damageMin: 2, damageMax: 3, masteryRequirement: 6 },
|
|
24
|
+
// Livonia's Pine Club — her 5% drop. Sits between the wooden club (2-3 @ 6)
|
|
25
|
+
// Livonia's rare club is the high-damage melee drop. The Poplar Spear is a
|
|
26
|
+
// lower-damage crafted reach weapon, not a later direct-damage upgrade.
|
|
27
|
+
livoniapineclub: { slot: 'weapon', armour: 0, damageMin: 4, damageMax: 5, masteryRequirement: 10 },
|
|
28
|
+
woolyhat: { slot: 'helmet', armour: 1, damageMin: 0, damageMax: 0 },
|
|
29
|
+
woolygloves: { slot: 'hands', armour: 1, damageMin: 0, damageMax: 0 },
|
|
30
|
+
woolyboots: { slot: 'boots', armour: 1, damageMin: 0, damageMax: 0 },
|
|
31
|
+
leatherboots: { slot: 'boots', armour: 1, damageMin: 0, damageMax: 0 },
|
|
32
|
+
poplarhelmet: { slot: 'helmet', armour: 1, damageMin: 0, damageMax: 0 },
|
|
33
|
+
poplarbody: { slot: 'top', armour: 3, damageMin: 0, damageMax: 0 },
|
|
34
|
+
poplarlegs: { slot: 'bottom', armour: 1, damageMin: 0, damageMax: 0 },
|
|
35
|
+
poplarspear: { slot: 'weapon', armour: 0, damageMin: 2, damageMax: 4, masteryRequirement: 18 },
|
|
36
|
+
pineshield: { slot: 'offhand', armour: 2, damageMin: 0, damageMax: 0 },
|
|
37
|
+
pinebow: {
|
|
38
|
+
slot: 'weapon',
|
|
39
|
+
armour: 0,
|
|
40
|
+
damageMin: 2,
|
|
41
|
+
damageMax: 4,
|
|
42
|
+
attackInitiationRange: BOW_ATTACK_INITIATION_RANGES[0],
|
|
43
|
+
masteryRequirement: 14,
|
|
44
|
+
},
|
|
45
|
+
bircharrow: { slot: 'ammo', armour: 0, damageMin: 0, damageMax: 0 },
|
|
46
|
+
sprucearrow: { slot: 'ammo', armour: 0, damageMin: 2, damageMax: 3 },
|
|
47
|
+
};
|
|
48
|
+
export const EQUIP_SLOT_LABELS = {
|
|
49
|
+
helmet: 'Helmet',
|
|
50
|
+
top: 'Top',
|
|
51
|
+
bottom: 'Bottom',
|
|
52
|
+
boots: 'Boots',
|
|
53
|
+
weapon: 'Weapon',
|
|
54
|
+
offhand: 'Off-hand',
|
|
55
|
+
hands: 'Hands',
|
|
56
|
+
ammo: 'Ammo',
|
|
57
|
+
};
|
|
58
|
+
const LEGACY_SLOT_KEYS = {
|
|
59
|
+
head: 'helmet',
|
|
60
|
+
feet: 'boots',
|
|
61
|
+
};
|
|
62
|
+
export function equipInfoFor(kind) {
|
|
63
|
+
return EQUIP_INFO[kind] ?? null;
|
|
64
|
+
}
|
|
65
|
+
export function isEquippableKind(kind) {
|
|
66
|
+
return kind in EQUIP_INFO;
|
|
67
|
+
}
|
|
68
|
+
export function isCombatWeaponKind(kind) {
|
|
69
|
+
const info = equipInfoFor(kind);
|
|
70
|
+
return Boolean(info && info.slot === 'weapon' && info.damageMax > 0);
|
|
71
|
+
}
|
|
72
|
+
export function weaponMasteryRequirement(kind) {
|
|
73
|
+
if (!kind)
|
|
74
|
+
return 1;
|
|
75
|
+
const info = equipInfoFor(kind);
|
|
76
|
+
return Math.max(1, Math.floor(info?.masteryRequirement ?? 1));
|
|
77
|
+
}
|
|
78
|
+
/** Combat begins from this many tiles away; melee weapons remain adjacent-only. */
|
|
79
|
+
export function attackInitiationRangeForWeapon(kind) {
|
|
80
|
+
const configured = kind ? equipInfoFor(kind)?.attackInitiationRange : undefined;
|
|
81
|
+
return Math.max(MELEE_ATTACK_INITIATION_RANGE, Math.floor(configured ?? MELEE_ATTACK_INITIATION_RANGE));
|
|
82
|
+
}
|
|
83
|
+
/** Ranged weapons train Archery; everything else trains Strength. */
|
|
84
|
+
const RANGED_WEAPON_KINDS = new Set(['pinebow']);
|
|
85
|
+
const AMMO_KINDS = new Set(Object.entries(EQUIP_INFO)
|
|
86
|
+
.filter(([, info]) => info.slot === 'ammo')
|
|
87
|
+
.map(([kind]) => kind));
|
|
88
|
+
export function isRangedWeaponKind(kind) {
|
|
89
|
+
return !!kind && RANGED_WEAPON_KINDS.has(kind);
|
|
90
|
+
}
|
|
91
|
+
export function isAmmoKind(kind) {
|
|
92
|
+
return !!kind && AMMO_KINDS.has(kind);
|
|
93
|
+
}
|
|
94
|
+
/** Persist ammo stack size beside the slot kinds in the Mixed equipment blob. */
|
|
95
|
+
export function packEquipment(slots, ammoQty) {
|
|
96
|
+
return {
|
|
97
|
+
...slots,
|
|
98
|
+
ammoQty: slots.ammo ? Math.max(0, Math.floor(ammoQty)) : 0,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export function unpackAmmoQty(raw, ammoKind) {
|
|
102
|
+
if (!ammoKind || !isAmmoKind(ammoKind))
|
|
103
|
+
return 0;
|
|
104
|
+
if (!raw || typeof raw !== 'object')
|
|
105
|
+
return 1;
|
|
106
|
+
const q = raw.ammoQty;
|
|
107
|
+
if (typeof q === 'number' && Number.isFinite(q) && q >= 1)
|
|
108
|
+
return Math.floor(q);
|
|
109
|
+
return 1;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The offensive skill a weapon actually uses. Derived from what is equipped
|
|
113
|
+
* rather than a manual toggle, so the stat panel and the damage roll can never
|
|
114
|
+
* disagree with the weapon in hand.
|
|
115
|
+
*/
|
|
116
|
+
export function stanceForWeapon(weaponKind) {
|
|
117
|
+
return isRangedWeaponKind(weaponKind) ? 'archery' : 'strength';
|
|
118
|
+
}
|
|
119
|
+
export function emptyEquipment() {
|
|
120
|
+
return {
|
|
121
|
+
helmet: null,
|
|
122
|
+
top: null,
|
|
123
|
+
bottom: null,
|
|
124
|
+
boots: null,
|
|
125
|
+
weapon: null,
|
|
126
|
+
offhand: null,
|
|
127
|
+
hands: null,
|
|
128
|
+
ammo: null,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export function normalizeEquipment(raw) {
|
|
132
|
+
const slots = emptyEquipment();
|
|
133
|
+
if (!raw || typeof raw !== 'object')
|
|
134
|
+
return slots;
|
|
135
|
+
const record = raw;
|
|
136
|
+
const assign = (slot, kind) => {
|
|
137
|
+
if (typeof kind !== 'string' || slots[slot])
|
|
138
|
+
return;
|
|
139
|
+
const info = equipInfoFor(kind);
|
|
140
|
+
if (info && info.slot === slot)
|
|
141
|
+
slots[slot] = kind;
|
|
142
|
+
};
|
|
143
|
+
for (const slot of EQUIP_SLOTS)
|
|
144
|
+
assign(slot, record[slot]);
|
|
145
|
+
for (const [legacyKey, slot] of Object.entries(LEGACY_SLOT_KEYS)) {
|
|
146
|
+
const kind = record[legacyKey];
|
|
147
|
+
if (typeof kind !== 'string')
|
|
148
|
+
continue;
|
|
149
|
+
assign(slot, kind);
|
|
150
|
+
}
|
|
151
|
+
return slots;
|
|
152
|
+
}
|
|
153
|
+
export function normalizeWeaponPrecision(raw, weaponKind) {
|
|
154
|
+
if (!weaponKind || !isCombatWeaponKind(weaponKind))
|
|
155
|
+
return null;
|
|
156
|
+
if (typeof raw === 'number' && Number.isFinite(raw) && raw >= 1) {
|
|
157
|
+
return Math.max(1, Math.floor(raw));
|
|
158
|
+
}
|
|
159
|
+
return 1;
|
|
160
|
+
}
|
|
161
|
+
export function equipmentArmour(slots) {
|
|
162
|
+
let total = 0;
|
|
163
|
+
for (const slot of EQUIP_SLOTS) {
|
|
164
|
+
const kind = slots[slot];
|
|
165
|
+
if (!kind)
|
|
166
|
+
continue;
|
|
167
|
+
total += equipInfoFor(kind)?.armour ?? 0;
|
|
168
|
+
}
|
|
169
|
+
return total;
|
|
170
|
+
}
|
|
171
|
+
export function playerDamageRange(primaryLevel, precisionLevel, weaponKind, weaponPrecision = null, _stance, ammoKind = null) {
|
|
172
|
+
const effective = effectiveAttackLevel(primaryLevel, precisionLevel);
|
|
173
|
+
const cap = maxHitForStrength(effective);
|
|
174
|
+
const info = weaponKind ? equipInfoFor(weaponKind) : null;
|
|
175
|
+
const bonusMin = info && info.slot === 'weapon' ? info.damageMin : 0;
|
|
176
|
+
const bonusMax = info && info.slot === 'weapon' ? info.damageMax : 0;
|
|
177
|
+
const ammo = ammoKind ? equipInfoFor(ammoKind) : null;
|
|
178
|
+
const ammoMin = ammo && ammo.slot === 'ammo' ? ammo.damageMin : 0;
|
|
179
|
+
const ammoMax = ammo && ammo.slot === 'ammo' ? ammo.damageMax : 0;
|
|
180
|
+
const craft = weaponPrecisionBonus(weaponPrecision);
|
|
181
|
+
return {
|
|
182
|
+
min: 1 + bonusMin + craft + ammoMin,
|
|
183
|
+
max: cap + bonusMax + craft + ammoMax,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=equipment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equipment.js","sourceRoot":"","sources":["../src/equipment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/** Hidden underground rooms. Never add these coordinates to the paper map. */
|
|
2
|
+
export declare const GOBLIN_CAVE_CENTER_X: number;
|
|
3
|
+
export declare const GOBLIN_CAVE_ENTRY: {
|
|
4
|
+
readonly x: number;
|
|
5
|
+
readonly z: 500;
|
|
6
|
+
};
|
|
7
|
+
export declare const GOBLIN_CAVE_EXIT: {
|
|
8
|
+
readonly x: number;
|
|
9
|
+
readonly z: 503;
|
|
10
|
+
};
|
|
11
|
+
export declare const GOBLIN_CAVE_EXIT_STYLE = "goblin-return-north";
|
|
12
|
+
export declare const GOBLIN_CAVE_EXIT_SCALE = 1.5;
|
|
13
|
+
export declare const GOBLIN_CAVE_OUTSIDE: {
|
|
14
|
+
readonly x: 10;
|
|
15
|
+
readonly z: 654;
|
|
16
|
+
};
|
|
17
|
+
export declare const GOBLIN_CAVE_ROOMS: readonly [{
|
|
18
|
+
readonly cx: number;
|
|
19
|
+
readonly minZ: 477;
|
|
20
|
+
readonly maxZ: 503;
|
|
21
|
+
readonly halfW: 11;
|
|
22
|
+
}, {
|
|
23
|
+
readonly cx: number;
|
|
24
|
+
readonly minZ: 448;
|
|
25
|
+
readonly maxZ: 468;
|
|
26
|
+
readonly halfW: 13;
|
|
27
|
+
}, {
|
|
28
|
+
readonly cx: number;
|
|
29
|
+
readonly minZ: 432;
|
|
30
|
+
readonly maxZ: 442;
|
|
31
|
+
readonly halfW: 26;
|
|
32
|
+
}, {
|
|
33
|
+
readonly cx: number;
|
|
34
|
+
readonly minZ: 416;
|
|
35
|
+
readonly maxZ: 436;
|
|
36
|
+
readonly halfW: 10;
|
|
37
|
+
}, {
|
|
38
|
+
readonly cx: number;
|
|
39
|
+
readonly minZ: 414;
|
|
40
|
+
readonly maxZ: 436;
|
|
41
|
+
readonly halfW: 10;
|
|
42
|
+
}, {
|
|
43
|
+
readonly cx: number;
|
|
44
|
+
readonly minZ: 382;
|
|
45
|
+
readonly maxZ: 402;
|
|
46
|
+
readonly halfW: 10;
|
|
47
|
+
}];
|
|
48
|
+
export declare const GREM_ROOM: {
|
|
49
|
+
readonly cx: number;
|
|
50
|
+
readonly minZ: 382;
|
|
51
|
+
readonly maxZ: 402;
|
|
52
|
+
readonly halfW: 10;
|
|
53
|
+
};
|
|
54
|
+
export declare const GREM_SPAWN: {
|
|
55
|
+
readonly x: number;
|
|
56
|
+
readonly z: number;
|
|
57
|
+
};
|
|
58
|
+
export declare const GREM_WORLD_SCALE = 2.4;
|
|
59
|
+
export declare const GOBLIN_PRISON_KEY = "goblinprisonkey";
|
|
60
|
+
/** Personal, key-unlocked portcullises. Both span three tiles along Z. */
|
|
61
|
+
export declare const GOBLIN_PRISON_DOORS: readonly [{
|
|
62
|
+
readonly x: number;
|
|
63
|
+
readonly z: number;
|
|
64
|
+
readonly style: 'goblin-prison-north';
|
|
65
|
+
}, {
|
|
66
|
+
readonly x: number;
|
|
67
|
+
readonly z: number;
|
|
68
|
+
readonly style: 'goblin-prison-south';
|
|
69
|
+
}];
|
|
70
|
+
/** Kept for saved-tile regression fixtures that refer to the southern cell. */
|
|
71
|
+
export declare const GOBLIN_PRISON_CELL_DOOR: {
|
|
72
|
+
readonly x: number;
|
|
73
|
+
readonly z: number;
|
|
74
|
+
readonly style: 'goblin-prison-south';
|
|
75
|
+
};
|
|
76
|
+
/** Old rescues already spent Grem's key; never charge those characters again. */
|
|
77
|
+
export declare function normalizeGoblinPrisonUnlocked(raw: unknown, findRimdel: unknown): boolean;
|
|
78
|
+
export declare const GOBLIN_CAVE_GATE: {
|
|
79
|
+
readonly x: number;
|
|
80
|
+
readonly z: 474;
|
|
81
|
+
};
|
|
82
|
+
export declare const GOBLIN_CAVE_GATE_STYLE = "goblin-gate";
|
|
83
|
+
export declare const GOBLIN_CAVE_KILLS_REQUIRED = 10;
|
|
84
|
+
export declare const GOBLIN_CAVE_SPAWNS: {
|
|
85
|
+
x: number;
|
|
86
|
+
z: number;
|
|
87
|
+
}[];
|
|
88
|
+
export declare const GOBLIN_CAVE_CORRIDOR_RATS: {
|
|
89
|
+
x: number;
|
|
90
|
+
z: number;
|
|
91
|
+
}[];
|
|
92
|
+
export declare const GOBLIN_CAVE_KITCHEN_RATS: {
|
|
93
|
+
x: number;
|
|
94
|
+
z: number;
|
|
95
|
+
}[];
|
|
96
|
+
export declare const GOBLIN_CAVE_PRISON_RATS: {
|
|
97
|
+
x: number;
|
|
98
|
+
z: number;
|
|
99
|
+
}[];
|
|
100
|
+
export declare const GOBLIN_CAVE_RAT_SPAWNS: {
|
|
101
|
+
x: number;
|
|
102
|
+
z: number;
|
|
103
|
+
}[];
|
|
104
|
+
export declare const RIMDEL_SPAWN: {
|
|
105
|
+
readonly x: number;
|
|
106
|
+
readonly z: 418;
|
|
107
|
+
};
|
|
108
|
+
export declare function inGoblinCave(x: number, z: number): boolean;
|
|
109
|
+
/** Use the spawn, not death position: luring a battlefield goblin cannot earn entry. */
|
|
110
|
+
export declare function isGoblinCaveGuardSpawn(x: number, z: number): boolean;
|
|
111
|
+
export declare function normalizeGoblinCaveKills(raw: unknown): number;
|
|
112
|
+
//# sourceMappingURL=goblinCave.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goblinCave.d.ts","sourceRoot":"","sources":["../src/goblinCave.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,QAAkB,CAAC;AACpD,eAAO,MAAM,iBAAiB;aAAK,CAAC;aAAmB,CAAC,EAAE,GAAG;CAAW,CAAC;AACzE,eAAO,MAAM,gBAAgB;aAAK,CAAC;aAAwB,CAAC,EAAE,GAAG;CAAW,CAAC;AAC7E,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAC1C,eAAO,MAAM,mBAAmB;aAAK,CAAC,EAAE,EAAE;aAAE,CAAC,EAAE,GAAG;CAAW,CAAC;AAC9D,eAAO,MAAM,iBAAiB;aAC1B,EAAE;aAAwB,IAAI,EAAE,GAAG;aAAE,IAAI,EAAE,GAAG;aAAE,KAAK,EAAE,EAAE;;aACzD,EAAE;aAAwB,IAAI,EAAE,GAAG;aAAE,IAAI,EAAE,GAAG;aAAE,KAAK,EAAE,EAAE;;aACzD,EAAE;aAAwB,IAAI,EAAE,GAAG;aAAE,IAAI,EAAE,GAAG;aAAE,KAAK,EAAE,EAAE;;aACzD,EAAE;aAA6B,IAAI,EAAE,GAAG;aAAE,IAAI,EAAE,GAAG;aAAE,KAAK,EAAE,EAAE;;aAC9D,EAAE;aAA6B,IAAI,EAAE,GAAG;aAAE,IAAI,EAAE,GAAG;aAAE,KAAK,EAAE,EAAE;;aAC9D,EAAE;aAA6B,IAAI,EAAE,GAAG;aAAE,IAAI,EAAE,GAAG;aAAE,KAAK,EAAE,EAAE;EACxD,CAAC;AACX,eAAO,MAAM,SAAS;;mBAFmB,GAAG;mBAAQ,GAAG;oBAAS,EAAE;CAErB,CAAC;AAC9C,eAAO,MAAM,UAAU;aAAK,CAAC;aAAgB,CAAC;CAA+B,CAAC;AAC9E,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AACnD,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB;aAC5B,CAAC;aACD,CAAC;aAAiC,KAAK,EAAE,qBAAqB;;aAC9D,CAAC;aACD,CAAC;aAAkC,KAAK,EAAE,qBAAqB;EACzD,CAAC;AACX,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB;;;oBAHU,qBAAqB;CAGN,CAAC;AAE9D,iFAAiF;AACjF,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAExF;AACD,eAAO,MAAM,gBAAgB;aAAK,CAAC;aAAwB,CAAC,EAAE,GAAG;CAAW,CAAC;AAC7E,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,kBAAkB;;;GAI+B,CAAC;AAE/D,eAAO,MAAM,yBAAyB;;;GAEwB,CAAC;AAE/D,eAAO,MAAM,wBAAwB;;;GAEyB,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;;GAE0B,CAAC;AAE/D,eAAO,MAAM,sBAAsB;;;GAIlC,CAAC;AAEF,eAAO,MAAM,YAAY;aAAK,CAAC;aAA6B,CAAC,EAAE,GAAG;CAAW,CAAC;AAE9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAG7D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { GRID_WIDTH } from './constants.js';
|
|
2
|
+
/** Hidden underground rooms. Never add these coordinates to the paper map. */
|
|
3
|
+
export const GOBLIN_CAVE_CENTER_X = GRID_WIDTH - 28;
|
|
4
|
+
export const GOBLIN_CAVE_ENTRY = { x: GRID_WIDTH - 20, z: 500 };
|
|
5
|
+
export const GOBLIN_CAVE_EXIT = { x: GOBLIN_CAVE_CENTER_X, z: 503 };
|
|
6
|
+
export const GOBLIN_CAVE_EXIT_STYLE = 'goblin-return-north';
|
|
7
|
+
export const GOBLIN_CAVE_EXIT_SCALE = 1.5;
|
|
8
|
+
export const GOBLIN_CAVE_OUTSIDE = { x: 10, z: 654 };
|
|
9
|
+
export const GOBLIN_CAVE_ROOMS = [
|
|
10
|
+
{ cx: GOBLIN_CAVE_CENTER_X, minZ: 477, maxZ: 503, halfW: 11 },
|
|
11
|
+
{ cx: GOBLIN_CAVE_CENTER_X, minZ: 448, maxZ: 468, halfW: 13 },
|
|
12
|
+
{ cx: GOBLIN_CAVE_CENTER_X, minZ: 432, maxZ: 442, halfW: 26 },
|
|
13
|
+
{ cx: GOBLIN_CAVE_CENTER_X - 17, minZ: 416, maxZ: 436, halfW: 10 },
|
|
14
|
+
{ cx: GOBLIN_CAVE_CENTER_X + 17, minZ: 414, maxZ: 436, halfW: 10 },
|
|
15
|
+
{ cx: GOBLIN_CAVE_CENTER_X + 14, minZ: 382, maxZ: 402, halfW: 10 },
|
|
16
|
+
];
|
|
17
|
+
export const GREM_ROOM = GOBLIN_CAVE_ROOMS[5];
|
|
18
|
+
export const GREM_SPAWN = { x: GREM_ROOM.cx, z: GREM_ROOM.minZ + 9 };
|
|
19
|
+
export const GREM_WORLD_SCALE = 2.4;
|
|
20
|
+
export const GOBLIN_PRISON_KEY = 'goblinprisonkey';
|
|
21
|
+
/** Personal, key-unlocked portcullises. Both span three tiles along Z. */
|
|
22
|
+
export const GOBLIN_PRISON_DOORS = [
|
|
23
|
+
{ x: GOBLIN_CAVE_ROOMS[4].cx - GOBLIN_CAVE_ROOMS[4].halfW + 3,
|
|
24
|
+
z: GOBLIN_CAVE_ROOMS[4].minZ + 4, style: 'goblin-prison-north' },
|
|
25
|
+
{ x: GOBLIN_CAVE_ROOMS[4].cx - GOBLIN_CAVE_ROOMS[4].halfW + 3,
|
|
26
|
+
z: GOBLIN_CAVE_ROOMS[4].minZ + 13, style: 'goblin-prison-south' },
|
|
27
|
+
];
|
|
28
|
+
/** Kept for saved-tile regression fixtures that refer to the southern cell. */
|
|
29
|
+
export const GOBLIN_PRISON_CELL_DOOR = GOBLIN_PRISON_DOORS[1];
|
|
30
|
+
/** Old rescues already spent Grem's key; never charge those characters again. */
|
|
31
|
+
export function normalizeGoblinPrisonUnlocked(raw, findRimdel) {
|
|
32
|
+
return raw === true || findRimdel === 'active' || findRimdel === 'completed';
|
|
33
|
+
}
|
|
34
|
+
export const GOBLIN_CAVE_GATE = { x: GOBLIN_CAVE_CENTER_X, z: 474 };
|
|
35
|
+
export const GOBLIN_CAVE_GATE_STYLE = 'goblin-gate';
|
|
36
|
+
export const GOBLIN_CAVE_KILLS_REQUIRED = 10;
|
|
37
|
+
export const GOBLIN_CAVE_SPAWNS = [
|
|
38
|
+
[-7, 482], [-3, 482], [2, 482], [7, 482],
|
|
39
|
+
[-6, 486], [-1, 486], [5, 486],
|
|
40
|
+
[-6, 490], [-1, 490], [4, 490],
|
|
41
|
+
].map(([dx, z]) => ({ x: GOBLIN_CAVE_CENTER_X + dx, z: z }));
|
|
42
|
+
export const GOBLIN_CAVE_CORRIDOR_RATS = [
|
|
43
|
+
[-14, 437], [-5, 437], [5, 437], [14, 437],
|
|
44
|
+
].map(([dx, z]) => ({ x: GOBLIN_CAVE_CENTER_X + dx, z: z }));
|
|
45
|
+
export const GOBLIN_CAVE_KITCHEN_RATS = [
|
|
46
|
+
[-22, 422], [-12, 427], [-24, 432],
|
|
47
|
+
].map(([dx, z]) => ({ x: GOBLIN_CAVE_CENTER_X + dx, z: z }));
|
|
48
|
+
export const GOBLIN_CAVE_PRISON_RATS = [
|
|
49
|
+
[8, 428], [9, 433], [8, 420],
|
|
50
|
+
].map(([dx, z]) => ({ x: GOBLIN_CAVE_CENTER_X + dx, z: z }));
|
|
51
|
+
export const GOBLIN_CAVE_RAT_SPAWNS = [
|
|
52
|
+
...GOBLIN_CAVE_CORRIDOR_RATS,
|
|
53
|
+
...GOBLIN_CAVE_KITCHEN_RATS,
|
|
54
|
+
...GOBLIN_CAVE_PRISON_RATS,
|
|
55
|
+
];
|
|
56
|
+
export const RIMDEL_SPAWN = { x: GOBLIN_CAVE_CENTER_X + 22, z: 418 };
|
|
57
|
+
export function inGoblinCave(x, z) {
|
|
58
|
+
return x >= GOBLIN_CAVE_CENTER_X - 35 && x <= GOBLIN_CAVE_CENTER_X + 35 && z >= GREM_ROOM.minZ - 2 && z <= 506;
|
|
59
|
+
}
|
|
60
|
+
/** Use the spawn, not death position: luring a battlefield goblin cannot earn entry. */
|
|
61
|
+
export function isGoblinCaveGuardSpawn(x, z) {
|
|
62
|
+
const room = GOBLIN_CAVE_ROOMS[0];
|
|
63
|
+
return Math.abs(x - room.cx) <= room.halfW && z >= room.minZ && z <= room.maxZ;
|
|
64
|
+
}
|
|
65
|
+
export function normalizeGoblinCaveKills(raw) {
|
|
66
|
+
return typeof raw === 'number' && Number.isFinite(raw)
|
|
67
|
+
? Math.min(GOBLIN_CAVE_KILLS_REQUIRED, Math.max(0, Math.floor(raw))) : 0;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=goblinCave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goblinCave.js","sourceRoot":"","sources":["../src/goblinCave.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const GROUND_ITEM_KINDS: readonly string[];
|
|
2
|
+
/**
|
|
3
|
+
* Item kinds that should never show a "Drop" action, e.g. because dropping them would
|
|
4
|
+
* softlock progression. Empty by default — every known item is droppable unless a kind
|
|
5
|
+
* is explicitly listed here for a specific, documented reason.
|
|
6
|
+
*/
|
|
7
|
+
export declare const UNDROPPABLE_ITEM_KINDS: readonly string[];
|
|
8
|
+
export declare function isGroundItemKind(kind: string): boolean;
|
|
9
|
+
export declare function isUndroppableItemKind(kind: string): boolean;
|
|
10
|
+
export declare function isDroppableItemKind(kind: string): boolean;
|
|
11
|
+
export declare const DROPPED_ITEM_LIFETIME_MS = 30000;
|
|
12
|
+
/** Death loot stays on the tile this long; any player may pick it up. */
|
|
13
|
+
export declare const DEATH_DROP_LIFETIME_MS = 60000;
|
|
14
|
+
/** Default late-life fade for timed ground items that do not set `fadeMs`. */
|
|
15
|
+
export declare const GROUND_ITEM_FADE_MS = 10000;
|
|
16
|
+
export declare function groundItemFadeAlpha(remainingMs: number, fadeMs?: number): number;
|
|
17
|
+
//# sourceMappingURL=groundItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groundItems.d.ts","sourceRoot":"","sources":["../src/groundItems.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAuE9C,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAO,CAAC;AAI5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,SAAsB,GAC3B,MAAM,CAKR"}
|