stardew-valley-data 0.26.0 → 0.27.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/CHANGELOG.md +13 -0
- package/data/joja-development.json +42 -0
- package/dist/index.d.mts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +59 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +59 -1
- package/dist/index.mjs.map +1 -1
- package/images/shop/Joja Development Form.png +0 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
|
|
6
6
|
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.27.0] - 2026-03-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `data/joja-development.json` — 5 Joja Community Development projects with `id`, `name`,
|
|
13
|
+
`description`, `cost`, `ccEquivalent` (maps to Community Center room mail flag), and `order`:
|
|
14
|
+
Greenhouse (35,000g), Bridge (25,000g), Panning (20,000g), Minecarts (15,000g), Bus (40,000g)
|
|
15
|
+
- `parseJoja()` parser added — new `joja` field on `SaveData` tracking `isMember` (from `JojaMember`
|
|
16
|
+
mail flag), `completed` (event `502261`), and `developments[]` (array of `{ id, purchased }`
|
|
17
|
+
driven by `joja-development.json`)
|
|
18
|
+
- `SaveJoja` and `SaveJojaDevelopment` interfaces added to save file types
|
|
19
|
+
- `images/shop/Joja Development Form.png` downloaded (640×288)
|
|
20
|
+
|
|
8
21
|
## [0.26.0] - 2026-03-22
|
|
9
22
|
|
|
10
23
|
### Added
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "jojaPantry",
|
|
4
|
+
"name": "Greenhouse",
|
|
5
|
+
"description": "Repairs the old ruins on the farm, turning it into a greenhouse.",
|
|
6
|
+
"cost": 35000,
|
|
7
|
+
"ccEquivalent": "ccPantry",
|
|
8
|
+
"order": 0
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": "jojaCraftsRoom",
|
|
12
|
+
"name": "Bridge",
|
|
13
|
+
"description": "Repairs the broken bridge east of the Mines, enabling access to the Quarry.",
|
|
14
|
+
"cost": 25000,
|
|
15
|
+
"ccEquivalent": "ccCraftsRoom",
|
|
16
|
+
"order": 1
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"id": "jojaFishTank",
|
|
20
|
+
"name": "Panning",
|
|
21
|
+
"description": "Removes the glimmering boulder near the mine entrance, enabling copper panning.",
|
|
22
|
+
"cost": 20000,
|
|
23
|
+
"ccEquivalent": "ccFishTank",
|
|
24
|
+
"order": 2
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "jojaBoilerRoom",
|
|
28
|
+
"name": "Minecarts",
|
|
29
|
+
"description": "Repairs the minecart system between the Bus Stop, the Mountains, and Pelican Town.",
|
|
30
|
+
"cost": 15000,
|
|
31
|
+
"ccEquivalent": "ccBoilerRoom",
|
|
32
|
+
"order": 3
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "jojaVault",
|
|
36
|
+
"name": "Bus",
|
|
37
|
+
"description": "Repairs the bus that runs to the Calico Desert.",
|
|
38
|
+
"cost": 40000,
|
|
39
|
+
"ccEquivalent": "ccVault",
|
|
40
|
+
"order": 4
|
|
41
|
+
}
|
|
42
|
+
]
|
package/dist/index.d.mts
CHANGED
|
@@ -2676,6 +2676,7 @@ interface SaveData {
|
|
|
2676
2676
|
perfection: SavePerfection;
|
|
2677
2677
|
mineProgress: SaveMineProgress;
|
|
2678
2678
|
communityCenter: SaveCommunityCenter;
|
|
2679
|
+
joja: SaveJoja;
|
|
2679
2680
|
}
|
|
2680
2681
|
/** Core player profile including name, money, skills, and mastery progress. */
|
|
2681
2682
|
interface SavePlayer {
|
|
@@ -2962,6 +2963,17 @@ interface SaveCommunityCenter {
|
|
|
2962
2963
|
jojaAbandoned: boolean;
|
|
2963
2964
|
rooms: SaveCommunityCenterRooms;
|
|
2964
2965
|
}
|
|
2966
|
+
/** A single Joja development project with purchase status. */
|
|
2967
|
+
interface SaveJojaDevelopment {
|
|
2968
|
+
id: string;
|
|
2969
|
+
purchased: boolean;
|
|
2970
|
+
}
|
|
2971
|
+
/** Joja membership, development project completion, and route status. */
|
|
2972
|
+
interface SaveJoja {
|
|
2973
|
+
isMember: boolean;
|
|
2974
|
+
completed: boolean;
|
|
2975
|
+
developments: SaveJojaDevelopment[];
|
|
2976
|
+
}
|
|
2965
2977
|
/** Mine and Skull Cavern progress including deepest levels reached and key ownership. */
|
|
2966
2978
|
interface SaveMineProgress {
|
|
2967
2979
|
deepestMineLevel: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -2676,6 +2676,7 @@ interface SaveData {
|
|
|
2676
2676
|
perfection: SavePerfection;
|
|
2677
2677
|
mineProgress: SaveMineProgress;
|
|
2678
2678
|
communityCenter: SaveCommunityCenter;
|
|
2679
|
+
joja: SaveJoja;
|
|
2679
2680
|
}
|
|
2680
2681
|
/** Core player profile including name, money, skills, and mastery progress. */
|
|
2681
2682
|
interface SavePlayer {
|
|
@@ -2962,6 +2963,17 @@ interface SaveCommunityCenter {
|
|
|
2962
2963
|
jojaAbandoned: boolean;
|
|
2963
2964
|
rooms: SaveCommunityCenterRooms;
|
|
2964
2965
|
}
|
|
2966
|
+
/** A single Joja development project with purchase status. */
|
|
2967
|
+
interface SaveJojaDevelopment {
|
|
2968
|
+
id: string;
|
|
2969
|
+
purchased: boolean;
|
|
2970
|
+
}
|
|
2971
|
+
/** Joja membership, development project completion, and route status. */
|
|
2972
|
+
interface SaveJoja {
|
|
2973
|
+
isMember: boolean;
|
|
2974
|
+
completed: boolean;
|
|
2975
|
+
developments: SaveJojaDevelopment[];
|
|
2976
|
+
}
|
|
2965
2977
|
/** Mine and Skull Cavern progress including deepest levels reached and key ownership. */
|
|
2966
2978
|
interface SaveMineProgress {
|
|
2967
2979
|
deepestMineLevel: number;
|
package/dist/index.js
CHANGED
|
@@ -41233,6 +41233,63 @@ function parseIslandUpgrades(mail) {
|
|
|
41233
41233
|
}));
|
|
41234
41234
|
}
|
|
41235
41235
|
|
|
41236
|
+
// data/joja-development.json
|
|
41237
|
+
var joja_development_default = [
|
|
41238
|
+
{
|
|
41239
|
+
id: "jojaPantry",
|
|
41240
|
+
name: "Greenhouse",
|
|
41241
|
+
description: "Repairs the old ruins on the farm, turning it into a greenhouse.",
|
|
41242
|
+
cost: 35e3,
|
|
41243
|
+
ccEquivalent: "ccPantry",
|
|
41244
|
+
order: 0
|
|
41245
|
+
},
|
|
41246
|
+
{
|
|
41247
|
+
id: "jojaCraftsRoom",
|
|
41248
|
+
name: "Bridge",
|
|
41249
|
+
description: "Repairs the broken bridge east of the Mines, enabling access to the Quarry.",
|
|
41250
|
+
cost: 25e3,
|
|
41251
|
+
ccEquivalent: "ccCraftsRoom",
|
|
41252
|
+
order: 1
|
|
41253
|
+
},
|
|
41254
|
+
{
|
|
41255
|
+
id: "jojaFishTank",
|
|
41256
|
+
name: "Panning",
|
|
41257
|
+
description: "Removes the glimmering boulder near the mine entrance, enabling copper panning.",
|
|
41258
|
+
cost: 2e4,
|
|
41259
|
+
ccEquivalent: "ccFishTank",
|
|
41260
|
+
order: 2
|
|
41261
|
+
},
|
|
41262
|
+
{
|
|
41263
|
+
id: "jojaBoilerRoom",
|
|
41264
|
+
name: "Minecarts",
|
|
41265
|
+
description: "Repairs the minecart system between the Bus Stop, the Mountains, and Pelican Town.",
|
|
41266
|
+
cost: 15e3,
|
|
41267
|
+
ccEquivalent: "ccBoilerRoom",
|
|
41268
|
+
order: 3
|
|
41269
|
+
},
|
|
41270
|
+
{
|
|
41271
|
+
id: "jojaVault",
|
|
41272
|
+
name: "Bus",
|
|
41273
|
+
description: "Repairs the bus that runs to the Calico Desert.",
|
|
41274
|
+
cost: 4e4,
|
|
41275
|
+
ccEquivalent: "ccVault",
|
|
41276
|
+
order: 4
|
|
41277
|
+
}
|
|
41278
|
+
];
|
|
41279
|
+
|
|
41280
|
+
// src/save-file/parsers/v1/joja.ts
|
|
41281
|
+
var DEVELOPMENT_IDS = joja_development_default.map((d) => d.id);
|
|
41282
|
+
function parseJoja(mail, events2) {
|
|
41283
|
+
return {
|
|
41284
|
+
isMember: mail.has("JojaMember"),
|
|
41285
|
+
completed: events2.has("502261"),
|
|
41286
|
+
developments: DEVELOPMENT_IDS.map((id) => ({
|
|
41287
|
+
id,
|
|
41288
|
+
purchased: mail.has(id)
|
|
41289
|
+
}))
|
|
41290
|
+
};
|
|
41291
|
+
}
|
|
41292
|
+
|
|
41236
41293
|
// src/save-file/parsers/v1/mail.ts
|
|
41237
41294
|
var QI_ORDER_IDS = new Set(
|
|
41238
41295
|
special_orders_default.filter((o) => o.type === "qi").map((o) => o.id)
|
|
@@ -41726,7 +41783,8 @@ var v1 = (ctx) => ({
|
|
|
41726
41783
|
raccoons: parseRaccoons(ctx.root, ctx.mailSet),
|
|
41727
41784
|
perfection: parsePerfection(ctx.root),
|
|
41728
41785
|
mineProgress: parseMineProgress(ctx.player, ctx.root, ctx.mailSet),
|
|
41729
|
-
communityCenter: parseCommunityCenter(ctx.mailSet, ctx.eventsSet)
|
|
41786
|
+
communityCenter: parseCommunityCenter(ctx.mailSet, ctx.eventsSet),
|
|
41787
|
+
joja: parseJoja(ctx.mailSet, ctx.eventsSet)
|
|
41730
41788
|
});
|
|
41731
41789
|
var PARSER_SETS = {
|
|
41732
41790
|
1: v1
|