claude-code-sounds 1.0.0 → 1.1.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/LICENSE +21 -0
- package/README.md +167 -11
- package/bin/cli.js +750 -74
- package/package.json +1 -1
- package/themes/wc3-peon/download.sh +2 -1
- package/themes/wc3-peon/theme.json +5 -2
- package/themes/zelda-oot/download.sh +67 -0
- package/themes/zelda-oot/theme.json +110 -0
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
#
|
|
6
6
|
set -e
|
|
7
7
|
|
|
8
|
+
# shellcheck disable=SC2034 # passed by install.sh, reserved for theme use
|
|
8
9
|
SOUNDS_DIR="$1"
|
|
9
10
|
TMP_DIR="$2"
|
|
10
11
|
|
|
@@ -14,7 +15,7 @@ curl -sL -o "$ZIP" "https://sounds.spriters-resource.com/media/assets/422/425494
|
|
|
14
15
|
|
|
15
16
|
if ! file "$ZIP" | grep -q "Zip"; then
|
|
16
17
|
echo " Error: Failed to download WC3 sound pack."
|
|
17
|
-
|
|
18
|
+
exit 1
|
|
18
19
|
fi
|
|
19
20
|
|
|
20
21
|
unzip -qo "$ZIP" \
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"name": "WC3 Orc Peon",
|
|
3
3
|
"description": "Warcraft 3 Orc unit soundbites — Peons, Grunts, Shamans, and more",
|
|
4
4
|
"author": "ryparker",
|
|
5
|
+
"srcBase": "Orc",
|
|
5
6
|
"sounds": {
|
|
6
7
|
"start": {
|
|
7
8
|
"description": "Session starting — being summoned",
|
|
@@ -34,7 +35,8 @@
|
|
|
34
35
|
"stop": {
|
|
35
36
|
"description": "Done responding — acknowledgment",
|
|
36
37
|
"files": [
|
|
37
|
-
{ "src": "
|
|
38
|
+
{ "src": "Grunt/GruntYes4.wav", "name": "zug-zug.wav" },
|
|
39
|
+
{ "src": "Peon/PeonYesAttack2.wav", "name": "get-em.wav" },
|
|
38
40
|
{ "src": "Peon/PeonYesAttack1.wav", "name": "ok.wav" },
|
|
39
41
|
{ "src": "Peon/PeonYes1.wav", "name": "i-can-do-that.wav" },
|
|
40
42
|
{ "src": "Peon/PeonYes2.wav", "name": "be-happy-to.wav" },
|
|
@@ -52,7 +54,8 @@
|
|
|
52
54
|
{ "src": "Hellscream/GromWarcry1.wav", "name": "taste-the-fury.wav" },
|
|
53
55
|
{ "src": "Peon/PeonYesAttack3.wav", "name": "ill-try.wav" },
|
|
54
56
|
{ "src": "Peon/PeonWarcry1.wav", "name": "why-not.wav" },
|
|
55
|
-
{ "src": "
|
|
57
|
+
{ "src": "Grunt/GruntYes4.wav", "name": "zug-zug.wav" },
|
|
58
|
+
{ "src": "Peon/PeonYesAttack2.wav", "name": "get-em.wav" }
|
|
56
59
|
]
|
|
57
60
|
},
|
|
58
61
|
"idle": {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Downloads sound files for the zelda-oot theme.
|
|
4
|
+
# Called by install.sh with $1 = target sounds directory, $2 = temp directory.
|
|
5
|
+
#
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
# shellcheck disable=SC2034 # passed by install.sh, reserved for theme use
|
|
9
|
+
SOUNDS_DIR="$1"
|
|
10
|
+
TMP_DIR="$2"
|
|
11
|
+
OOT_DIR="$TMP_DIR/OOT"
|
|
12
|
+
|
|
13
|
+
mkdir -p "$OOT_DIR"
|
|
14
|
+
|
|
15
|
+
BASE_URL="https://noproblo.dayjo.org/zeldasounds/oot"
|
|
16
|
+
|
|
17
|
+
# All unique sound files needed by this theme
|
|
18
|
+
FILES=(
|
|
19
|
+
OOT_Navi_Hey1.wav
|
|
20
|
+
OOT_Navi_Hello1.wav
|
|
21
|
+
OOT_Navi_Listen1.wav
|
|
22
|
+
OOT_Navi_Look1.wav
|
|
23
|
+
OOT_Navi_WatchOut1.wav
|
|
24
|
+
OOT_GreatFairy_Laugh1.wav
|
|
25
|
+
OOT_Chest_Big.wav
|
|
26
|
+
OOT_Chest_Small.wav
|
|
27
|
+
OOT_MainMenu_Select.wav
|
|
28
|
+
OOT_Dialogue_Next.wav
|
|
29
|
+
OOT_Dialogue_Done_Mono.wav
|
|
30
|
+
OOT_Get_Heart.wav
|
|
31
|
+
OOT_Get_SmallItem1.wav
|
|
32
|
+
OOT_Get_Rupee.wav
|
|
33
|
+
OOT_Secret_Mono.wav
|
|
34
|
+
OOT_Song_Correct_Mono.wav
|
|
35
|
+
OOT_Song_Error.wav
|
|
36
|
+
OOT_PauseMenu_Open_Mono.wav
|
|
37
|
+
OOT_PauseMenu_Close_Mono.wav
|
|
38
|
+
OOT_ZTarget_Enemy.wav
|
|
39
|
+
OOT_Sword_Draw.wav
|
|
40
|
+
OOT_Sword_Spin.wav
|
|
41
|
+
OOT_AdultLink_Attack1.wav
|
|
42
|
+
OOT_AdultLink_StrongAttack1.wav
|
|
43
|
+
OOT_AdultLink_Hurt1.wav
|
|
44
|
+
OOT_Fanfare_SmallItem.wav
|
|
45
|
+
OOT_Error.wav
|
|
46
|
+
OOT_LowHealth.wav
|
|
47
|
+
OOT_Talon_Snore.wav
|
|
48
|
+
OOT_Ganondorf_Heheh.wav
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
echo " Downloading Zelda: Ocarina of Time sounds..."
|
|
52
|
+
|
|
53
|
+
FAILED=0
|
|
54
|
+
for FILE in "${FILES[@]}"; do
|
|
55
|
+
curl -sL -o "$OOT_DIR/$FILE" "$BASE_URL/$FILE"
|
|
56
|
+
if ! file "$OOT_DIR/$FILE" | grep -q "WAVE\|RIFF"; then
|
|
57
|
+
echo " Warning: Failed to download $FILE"
|
|
58
|
+
rm -f "$OOT_DIR/$FILE"
|
|
59
|
+
FAILED=$((FAILED + 1))
|
|
60
|
+
fi
|
|
61
|
+
done
|
|
62
|
+
|
|
63
|
+
if [ "$FAILED" -gt 0 ]; then
|
|
64
|
+
echo " Warning: $FAILED file(s) failed to download."
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
echo " Download complete."
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Zelda: Ocarina of Time",
|
|
3
|
+
"description": "Navi, Link, and iconic OOT jingles — Hey! Listen!",
|
|
4
|
+
"author": "ryparker",
|
|
5
|
+
"srcBase": "OOT",
|
|
6
|
+
"sounds": {
|
|
7
|
+
"start": {
|
|
8
|
+
"description": "Session starting — Navi greets you",
|
|
9
|
+
"files": [
|
|
10
|
+
{ "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
|
|
11
|
+
{ "src": "OOT_Navi_Hello1.wav", "name": "hello.wav" },
|
|
12
|
+
{ "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
|
|
13
|
+
{ "src": "OOT_GreatFairy_Laugh1.wav", "name": "great-fairy-laugh.wav" },
|
|
14
|
+
{ "src": "OOT_Chest_Big.wav", "name": "open-chest.wav" }
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"end": {
|
|
18
|
+
"description": "Session over — quest complete",
|
|
19
|
+
"files": [
|
|
20
|
+
{ "src": "OOT_Fanfare_SmallItem.wav", "name": "item-fanfare.wav" },
|
|
21
|
+
{ "src": "OOT_Secret_Mono.wav", "name": "secret-discovered.wav" },
|
|
22
|
+
{ "src": "OOT_Dialogue_Done_Mono.wav", "name": "dialogue-done.wav" }
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"permission": {
|
|
26
|
+
"description": "Permission prompt — Navi warns you",
|
|
27
|
+
"files": [
|
|
28
|
+
{ "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
|
|
29
|
+
{ "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
|
|
30
|
+
{ "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
|
|
31
|
+
{ "src": "OOT_PauseMenu_Open_Mono.wav", "name": "pause-menu.wav" },
|
|
32
|
+
{ "src": "OOT_ZTarget_Enemy.wav", "name": "z-target.wav" }
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"stop": {
|
|
36
|
+
"description": "Done responding — loot collected",
|
|
37
|
+
"files": [
|
|
38
|
+
{ "src": "OOT_Secret_Mono.wav", "name": "secret-discovered.wav" },
|
|
39
|
+
{ "src": "OOT_Get_SmallItem1.wav", "name": "get-item.wav" },
|
|
40
|
+
{ "src": "OOT_Get_Rupee.wav", "name": "get-rupee.wav" },
|
|
41
|
+
{ "src": "OOT_Chest_Small.wav", "name": "open-small-chest.wav" },
|
|
42
|
+
{ "src": "OOT_Song_Correct_Mono.wav", "name": "song-correct.wav" }
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"subagent": {
|
|
46
|
+
"description": "Spawning subagent — Link attacks",
|
|
47
|
+
"files": [
|
|
48
|
+
{ "src": "OOT_Sword_Draw.wav", "name": "sword-draw.wav" },
|
|
49
|
+
{ "src": "OOT_AdultLink_Attack1.wav", "name": "link-attack.wav" },
|
|
50
|
+
{ "src": "OOT_AdultLink_StrongAttack1.wav", "name": "link-strong-attack.wav" },
|
|
51
|
+
{ "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
|
|
52
|
+
{ "src": "OOT_Sword_Spin.wav", "name": "spin-attack.wav" }
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
"idle": {
|
|
56
|
+
"description": "Waiting for input — Navi pesters you",
|
|
57
|
+
"files": [
|
|
58
|
+
{ "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
|
|
59
|
+
{ "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
|
|
60
|
+
{ "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
|
|
61
|
+
{ "src": "OOT_LowHealth.wav", "name": "low-health.wav" },
|
|
62
|
+
{ "src": "OOT_Talon_Snore.wav", "name": "snore.wav" }
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"error": {
|
|
66
|
+
"description": "Tool failure — Link takes damage",
|
|
67
|
+
"files": [
|
|
68
|
+
{ "src": "OOT_Error.wav", "name": "error.wav" },
|
|
69
|
+
{ "src": "OOT_Song_Error.wav", "name": "song-error.wav" },
|
|
70
|
+
{ "src": "OOT_AdultLink_Hurt1.wav", "name": "link-hurt.wav" },
|
|
71
|
+
{ "src": "OOT_Ganondorf_Heheh.wav", "name": "ganondorf-laugh.wav" }
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"prompt": {
|
|
75
|
+
"description": "User submitted prompt — adventure continues",
|
|
76
|
+
"files": [
|
|
77
|
+
{ "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
|
|
78
|
+
{ "src": "OOT_Navi_Look1.wav", "name": "look.wav" },
|
|
79
|
+
{ "src": "OOT_MainMenu_Select.wav", "name": "menu-select.wav" },
|
|
80
|
+
{ "src": "OOT_Dialogue_Next.wav", "name": "dialogue-next.wav" },
|
|
81
|
+
{ "src": "OOT_Get_Heart.wav", "name": "get-heart.wav" }
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"task-completed": {
|
|
85
|
+
"description": "Task finished — treasure acquired",
|
|
86
|
+
"files": [
|
|
87
|
+
{ "src": "OOT_Fanfare_SmallItem.wav", "name": "item-fanfare.wav" },
|
|
88
|
+
{ "src": "OOT_Secret_Mono.wav", "name": "secret-discovered.wav" }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"compact": {
|
|
92
|
+
"description": "Context compaction — health running low",
|
|
93
|
+
"files": [
|
|
94
|
+
{ "src": "OOT_LowHealth.wav", "name": "low-health.wav" },
|
|
95
|
+
{ "src": "OOT_PauseMenu_Close_Mono.wav", "name": "pause-close.wav" },
|
|
96
|
+
{ "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
|
|
97
|
+
{ "src": "OOT_Error.wav", "name": "error.wav" }
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
"teammate-idle": {
|
|
101
|
+
"description": "Teammate went idle — Navi nags",
|
|
102
|
+
"files": [
|
|
103
|
+
{ "src": "OOT_Navi_Hey1.wav", "name": "hey.wav" },
|
|
104
|
+
{ "src": "OOT_Navi_Listen1.wav", "name": "listen.wav" },
|
|
105
|
+
{ "src": "OOT_Navi_WatchOut1.wav", "name": "watch-out.wav" },
|
|
106
|
+
{ "src": "OOT_LowHealth.wav", "name": "low-health.wav" }
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|