fairy stuff

fairy quest and attack mode
This commit is contained in:
2026-10-05 18:19:49 +02:00
parent d56540785f
commit 002d1e83bf
17 changed files with 1435 additions and 526 deletions
+89
View File
@@ -0,0 +1,89 @@
{
"talk_range": 80,
"bubble_duration": 3.5,
"idle_interval": 45.0,
"idle_lines": ["idle_1", "idle_2", "idle_3"],
"dust_lines": ["dust_1", "dust_2", "dust_3"],
"attack_lines": ["attack_1", "attack_2", "attack_3"],
"auto": {
"room_01.json": { "on_enter": "welcome" }
},
"lines": {
"welcome": {
"light": "Wake up, sleepyhead! We have a long way to go.",
"shade": "Ooh, you found your dark side already?"
},
"idle_1": {
"light": "The butterflies always know the way.",
"shade": "Even in the dark, I can still see you."
},
"idle_2": {
"light": "Rest at a lantern and it will remember this place.",
"shade": "Careful - the gloom hides sharp things."
},
"idle_3": {
"light": "I will stay close. I always do.",
"shade": "You are not alone down here. I am right here."
},
"spot_greeting": {
"light": "Isn't this place pretty?",
"shade": "I can barely make you out in here."
},
"dust_1": {
"light": "Fairy dust! I can feel its sparkle.",
"shade": "Ooh, shiny. Even the dark likes this."
},
"dust_2": {
"light": "Another pinch of dust - keep going!",
"shade": "The dark tastes sweeter with this."
},
"dust_3": {
"light": "This dust hums when I hold it.",
"shade": "Keep collecting; I want all of it."
},
"quest_intro": {
"light": "I scattered my fairy dust across these rooms. Bring me 5 and I will fight beside you!",
"shade": "Find my 5 fairy dust. I will lend you my sting."
},
"quest_reward": {
"light": "You found them all! Now I can fight - press the Fairy Mode key!",
"shade": "All 5! My sting is yours. Press the Fairy Mode key."
},
"quest_return": {
"light": "That's all 5! Return to me at the fairy spot - I have something to show you!",
"shade": "All 5 gathered. Come back to my spot - I am ready to change."
},
"quest_unlock": {
"light": "Watch this - hold still!",
"shade": "Observe. I am about to change."
},
"quest_done": {
"light": "I am ready whenever you are!",
"shade": "Say the word and I strike."
},
"combat_on": {
"light": "To battle! I will pick off the stragglers.",
"shade": "Time to hunt. I like this form of yours."
},
"combat_off": {
"light": "Resting my wings now.",
"shade": "Fine, back to lurking."
},
"combat_empty": {
"light": "I am out of charge - I need to rest!",
"shade": "Empty. Let me recharge."
},
"attack_1": {
"light": "Huah!",
"shade": "Huah!"
},
"attack_2": {
"light": "Take this!",
"shade": "Take this!"
},
"attack_3": {
"light": "Hyah!",
"shade": "Hyah!"
}
}
}
+11
View File
@@ -6,5 +6,16 @@
"speed": 650.0,
"lifetime": 1.2,
"size": [14, 6]
},
"fairy": {
"charge_cost": 5.0,
"cooldown": 0.7,
"range": 560.0,
"voice_every": 3,
"damage_mult": 0.5,
"speed": 520.0,
"lifetime": 1.4,
"size": [16, 16],
"spread_deg": 6.0
}
}
+6
View File
@@ -22,6 +22,12 @@
},
"quest_point": {
"type": "quest_giver"
},
"fairy_spot": {
"type": "fairy_spot"
},
"fairy_dust": {
"type": "fairy_dust"
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

+31 -1
View File
@@ -144,6 +144,23 @@
"h": 260,
"group": "ground",
"layer": 0
},
{
"x": 20,
"y": 760,
"w": 140,
"h": 20,
"group": "moving",
"path": [
[
20,
760
],
[
20,
400
]
]
}
],
"enemies": [
@@ -171,7 +188,20 @@
"radius": 180,
"object_id": "flow_butterfly_jar",
"layer": 0,
"quest_id": ""
"quest_id": "",
"dialogue_id": "",
"auto": false
},
{
"x": 600,
"y": 140,
"type": "fairy_dust",
"radius": 40,
"object_id": "fairy_dust",
"layer": 0,
"quest_id": "",
"dialogue_id": "",
"auto": false
}
],
"exits": [
@@ -277,6 +277,15 @@
"object_id": "flow_butterfly",
"layer": 0,
"quest_id": ""
},
{
"x": 440,
"y": 400,
"type": "fairy_dust",
"radius": 40,
"object_id": "fairy_dust",
"layer": 0,
"quest_id": ""
}
],
"exits": [
@@ -136,6 +136,15 @@
"object_id": "lamp",
"layer": 0,
"quest_id": ""
},
{
"x": 740,
"y": 180,
"type": "fairy_dust",
"radius": 40,
"object_id": "fairy_dust",
"layer": 0,
"quest_id": ""
}
],
"exits": [
@@ -79,6 +79,15 @@
"object_id": "lamp",
"layer": 0,
"quest_id": ""
},
{
"x": 1100,
"y": 520,
"type": "fairy_dust",
"radius": 40,
"object_id": "fairy_dust",
"layer": 0,
"quest_id": ""
}
],
"exits": [
+101 -18
View File
@@ -14,6 +14,14 @@
"room9_top_left": [
220,
300
],
"room9_top_right": [
2660,
240
],
"room9_bottom_right": [
2660,
600
]
},
"platforms": [
@@ -38,42 +46,48 @@
"y": 440,
"w": 140,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 620,
"y": 500,
"w": 120,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 800,
"y": 560,
"w": 80,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 80,
"y": 660,
"w": 2699,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 1580,
"y": 540,
"w": 240,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 1980,
"y": 540,
"w": 100,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 2260,
@@ -81,6 +95,7 @@
"w": 140,
"h": 20,
"group": "moving",
"layer": 0,
"path": [
[
2260,
@@ -97,7 +112,24 @@
"y": 300,
"w": 320,
"h": 20,
"group": "ground"
"group": "ground",
"layer": 0
},
{
"x": 2780,
"y": 120,
"w": 20,
"h": 200,
"group": "ground",
"layer": 0
},
{
"x": 2780,
"y": 480,
"w": 20,
"h": 200,
"group": "ground",
"layer": 0
}
],
"enemies": [],
@@ -111,30 +143,32 @@
{
"x": 2012,
"y": 486,
"type": "combat_master"
"type": "combat_master",
"layer": 0
}
],
"props": [
{
"x": 800,
"y": 460,
"type": "player",
"radius": 180,
"object_id": "player"
},
{
"x": 1240,
"y": 660,
"type": "house",
"radius": 180,
"object_id": "house"
"object_id": "house",
"layer": 0,
"quest_id": "",
"dialogue_id": "",
"auto": false
},
{
"x": 1660,
"y": 540,
"type": "house",
"radius": 180,
"object_id": "house"
"object_id": "house",
"layer": 0,
"quest_id": "",
"dialogue_id": "",
"auto": false
},
{
"x": 1754,
@@ -142,7 +176,26 @@
"type": "diary",
"radius": 180,
"object_id": "diary",
"layer": 1
"layer": 1,
"quest_id": "",
"dialogue_id": "",
"auto": false
},
{
"x": 1460,
"y": 660,
"type": "save_point",
"radius": 90,
"object_id": "lamp"
},
{
"x": 840,
"y": 560,
"type": "fairy_dust",
"radius": 40,
"object_id": "fairy_dust",
"layer": 0,
"quest_id": ""
}
],
"exits": [
@@ -160,6 +213,36 @@
"hint": "",
"layer": 0,
"requires_boss_dead": false
},
{
"x": 2700,
"y": 560,
"w": 80,
"h": 100,
"to": "",
"spawn_id": "",
"spawn": [
2700,
560
],
"hint": "",
"layer": 0,
"requires_boss_dead": false
},
{
"x": 2700,
"y": 200,
"w": 80,
"h": 100,
"to": "room_10",
"spawn_id": "room10_top_left",
"spawn": [
140,
280
],
"hint": "",
"layer": 0,
"requires_boss_dead": false
}
],
"ability_doors": [],
@@ -0,0 +1,71 @@
{
"name": "room_10",
"display_name": "room_10",
"meta": {
"id": "room_10",
"name": "room_10"
},
"bounds": {},
"player_spawn": [
160,
260
],
"entry_spawns": {
"room10_top_left": [
140,
280
]
},
"platforms": [
{
"x": 20,
"y": 340,
"w": 440,
"h": 20,
"group": "ground",
"layer": 0
},
{
"x": 20,
"y": 120,
"w": 20,
"h": 220,
"group": "ground",
"layer": 0
}
],
"enemies": [],
"npcs": [],
"props": [
{
"x": 340,
"y": 300,
"type": "fairy_spot",
"radius": 180,
"object_id": "fairy_spot",
"dialogue_id": "spot_greeting",
"quest_id": "quest_fairy_dust"
}
],
"exits": [
{
"x": 40,
"y": 240,
"w": 80,
"h": 100,
"to": "room_09",
"spawn_id": "room9_top_right",
"spawn": [
2660,
240
],
"hint": "",
"layer": 0,
"requires_boss_dead": false
}
],
"ability_doors": [],
"room_w": 1600,
"room_h": 900,
"mist": false
}
@@ -47,17 +47,18 @@
"props": [],
"exits": [
{
"x": 1460,
"y": 360,
"w": 80,
"h": 100,
"to": "",
"spawn_id": "",
"spawn": [
1460,
360
]
}
"x": 1460,
"y": 360,
"w": 80,
"h": 100,
"to": "room_09.json",
"spawn_id": "",
"spawn": [
1754,
540
],
"requires_boss_dead": true
}
],
"ability_doors": [],
"room_w": 1600,