stardew-valley-data 0.21.0 → 0.22.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 +24 -5
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,11 +5,20 @@ 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.22.0] - 2026-03-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `parseHorse()` parser added — new `horse` field on `SaveData` capturing horse name, type, and
|
|
13
|
+
HorseId from the Farm location; returns `null` if no horse exists
|
|
14
|
+
- `SaveHorse` interface added to save file types (`{ name: string; type: 'horse'; id: string }`)
|
|
15
|
+
|
|
8
16
|
## [0.21.0] - 2026-03-21
|
|
9
17
|
|
|
10
18
|
### Fix
|
|
11
19
|
|
|
12
|
-
-
|
|
20
|
+
- Special item IDs updated to match `Powers.json` keys: 12 special-items, 19 books, 5 masteries, 5
|
|
21
|
+
skill-books all converted to PascalCase format
|
|
13
22
|
|
|
14
23
|
## [0.20.0] - 2026-03-21
|
|
15
24
|
|
|
@@ -24,17 +33,27 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
24
33
|
|
|
25
34
|
## [0.19.0] - 2026-03-21
|
|
26
35
|
|
|
36
|
+
### Added
|
|
37
|
+
|
|
38
|
+
- **Prismatic Slime** added to `data/monsters.json` as a top-level monster (HP 1000, damage 35);
|
|
39
|
+
drops Slime and Prismatic Shard; image downloaded as GIF
|
|
40
|
+
- **Dragon Tooth** (`id: "852"`) added to `data/monster-loot.json` — 500g sell price, dropped by
|
|
41
|
+
Lava Lurk; image moved from `images/minerals/` to `images/monsters/monster-loot/`
|
|
42
|
+
- **Frost Jelly** extracted from Green Slime variants as its own top-level monster entry
|
|
43
|
+
|
|
27
44
|
### Fix
|
|
28
45
|
|
|
29
|
-
-
|
|
30
|
-
|
|
46
|
+
- `monster-loot.json` `droppedBy` arrays updated to use actual monster IDs from `monsters.json`
|
|
47
|
+
instead of kebab-case slugs
|
|
48
|
+
- Dragon Tooth image path references updated in `wizard-shop.json` and `island-trader-shop.json`
|
|
31
49
|
|
|
32
50
|
## [0.18.0] - 2026-03-21
|
|
33
51
|
|
|
34
52
|
### Added
|
|
35
53
|
|
|
36
|
-
-
|
|
37
|
-
|
|
54
|
+
- `bookseller: number[]` field added to `SeasonData` type and all four seasons in
|
|
55
|
+
`data/seasons.json` with possible Bookseller visit dates
|
|
56
|
+
- Bookseller calendar icon downloaded to `images/seasons/calendar-icons/Bookseller.png`
|
|
38
57
|
|
|
39
58
|
## [0.17.0] - 2026-03-21
|
|
40
59
|
|
package/dist/index.d.mts
CHANGED
|
@@ -2651,6 +2651,7 @@ interface SaveData {
|
|
|
2651
2651
|
islandUpgrades: SaveIslandUpgrades;
|
|
2652
2652
|
children: SaveChild[];
|
|
2653
2653
|
pet: SavePet | null;
|
|
2654
|
+
horse: SaveHorse | null;
|
|
2654
2655
|
powers: SavePowers;
|
|
2655
2656
|
raccoons: SaveRaccoons;
|
|
2656
2657
|
perfection: SavePerfection;
|
|
@@ -2894,6 +2895,12 @@ interface SavePet {
|
|
|
2894
2895
|
breed: number;
|
|
2895
2896
|
friendship: number;
|
|
2896
2897
|
}
|
|
2898
|
+
/** The player's horse with name and unique ID. */
|
|
2899
|
+
interface SaveHorse {
|
|
2900
|
+
name: string;
|
|
2901
|
+
type: 'horse';
|
|
2902
|
+
id: string;
|
|
2903
|
+
}
|
|
2897
2904
|
/** Powers and special items collection with acquisition status. */
|
|
2898
2905
|
interface SavePowers {
|
|
2899
2906
|
specialItems: SavePowerEntry[];
|
package/dist/index.d.ts
CHANGED
|
@@ -2651,6 +2651,7 @@ interface SaveData {
|
|
|
2651
2651
|
islandUpgrades: SaveIslandUpgrades;
|
|
2652
2652
|
children: SaveChild[];
|
|
2653
2653
|
pet: SavePet | null;
|
|
2654
|
+
horse: SaveHorse | null;
|
|
2654
2655
|
powers: SavePowers;
|
|
2655
2656
|
raccoons: SaveRaccoons;
|
|
2656
2657
|
perfection: SavePerfection;
|
|
@@ -2894,6 +2895,12 @@ interface SavePet {
|
|
|
2894
2895
|
breed: number;
|
|
2895
2896
|
friendship: number;
|
|
2896
2897
|
}
|
|
2898
|
+
/** The player's horse with name and unique ID. */
|
|
2899
|
+
interface SaveHorse {
|
|
2900
|
+
name: string;
|
|
2901
|
+
type: 'horse';
|
|
2902
|
+
id: string;
|
|
2903
|
+
}
|
|
2897
2904
|
/** Powers and special items collection with acquisition status. */
|
|
2898
2905
|
interface SavePowers {
|
|
2899
2906
|
specialItems: SavePowerEntry[];
|
package/dist/index.js
CHANGED
|
@@ -40975,6 +40975,28 @@ function parsePet(root) {
|
|
|
40975
40975
|
}
|
|
40976
40976
|
return null;
|
|
40977
40977
|
}
|
|
40978
|
+
function parseHorse(root) {
|
|
40979
|
+
const locations2 = ensureArray(root.locations?.GameLocation);
|
|
40980
|
+
for (const loc of locations2) {
|
|
40981
|
+
const l = loc;
|
|
40982
|
+
const name = str(l.name);
|
|
40983
|
+
if (name !== "Farm") continue;
|
|
40984
|
+
const characters = ensureArray(l.characters?.NPC);
|
|
40985
|
+
for (const npc of characters) {
|
|
40986
|
+
const n = npc;
|
|
40987
|
+
const xsiType = str(
|
|
40988
|
+
n["@_xsi:type"] ?? n["@_type"]
|
|
40989
|
+
);
|
|
40990
|
+
if (xsiType !== "Horse") continue;
|
|
40991
|
+
return {
|
|
40992
|
+
name: str(n.name),
|
|
40993
|
+
type: "horse",
|
|
40994
|
+
id: str(n.HorseId)
|
|
40995
|
+
};
|
|
40996
|
+
}
|
|
40997
|
+
}
|
|
40998
|
+
return null;
|
|
40999
|
+
}
|
|
40978
41000
|
|
|
40979
41001
|
// src/save-file/parsers/v1/fish.ts
|
|
40980
41002
|
function parseFishCaught(fishCaught) {
|
|
@@ -41540,6 +41562,7 @@ var v1 = (ctx) => ({
|
|
|
41540
41562
|
islandUpgrades: parseIslandUpgrades(ctx.mailSet),
|
|
41541
41563
|
children: parseChildren(ctx.root),
|
|
41542
41564
|
pet: parsePet(ctx.root),
|
|
41565
|
+
horse: parseHorse(ctx.root),
|
|
41543
41566
|
powers: parsePowers(ctx.mailSet, ctx.eventsSet),
|
|
41544
41567
|
raccoons: parseRaccoons(ctx.root, ctx.mailSet),
|
|
41545
41568
|
perfection: parsePerfection(ctx.root),
|