File size: 24,724 Bytes
68f5a46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
{
  "themes": {
    "User Custom - Template": {
      "background": "backgrounds/theme_background.png",
      "inventory": [
        { "type": "weapon", "name": "Random weapon", "description": "A powerful weapon." }
      ],
      "skills": [
        { "branch": "Skill Group 1", "name": "Skill One", "learned": false }
      ],
      "persistentTargets": [
        { "name": "Background Target 1", "x": 500, "y": 500, "collisionType": "alert", "collisiontext": "First Test" }
      ],
      "story": [
        {
          "part": 0,
          "objectives": [
            { "id": 1, "name": "Mission Details", "complete": false, "progress": 0, "inventoryRequired": [] }
          ],
          "targets": [
            { "name": "Target 1", "x": 150, "y": 150, "collisionType": "alert", "collisiontext": "First Test" }
          ]
        },
        {
          "part": 1,
          "objectives": [
            { "id": 2, "name": "Mission Details", "complete": false, "progress": 0, "inventoryRequired": [] }
          ],
          "targets": [
            { "name": "Target 2", "x": 250, "y": 250, "collisionType": "alert", "collisiontext": "First Test" }
          ]
        }
      ],
      "actions": {}
    },
    "Default": {
      "background": "backgrounds/1stGameLoc123.png",
      "inventory": [
        { "type": "book", "name": "My Memories", "description": "Currently I dont remember when I start this journey...." },
        { "type": "weapon", "name": "Sword", "description": "A sharp blade." },
        { "type": "armor", "name": "Shield", "description": "Protects against attacks." },
        { "type": "consumable", "name": "Health Potion", "description": "Restores health." }
      ],
      "skills": [
        { "branch": "Combat", "name": "Basic Attack", "learned": false },
        { "branch": "Magic", "name": "Fireball", "learned": false },
        { "branch": "Stealth", "name": "Sneak", "learned": false }
      ],
      "persistentTargets": [],
      "story": [
        {
          "part": 0,
          "objectives": [],
          "targets": [
            { "name": "Target 1", "x": 50, "y": 50, "collisionType": "alert", "collisiontext": "First Test",
              "subtargets": [
                { "name": "Target 1 sub 1", "x": 100, "y": 75, "collisionType": "alert", "collisiontext": "First Test in Sub of First Test" }
              ]
            },
            { "name": "Target 2", "x": 100, "y": 100, "collisionType": "", "collisiontext": "" },
            { "name": "Target 2 - SM Demo", "x": 600, "y": 600, "collisionType": "smmodal", "modalStates": {
              "default": {
                "title": "Entrance",
                "content": "You've reached the Entrance. What's your next step?",
                "items": [
                  { "label": "Ask for guidance on next move", "action": "guidance" },
                  { "label": "Buy an Axe", "action": "buyAxe" }
                ],
                "consequences": [],
                "modalimg": "backgrounds/1stGameLoc123.png"
              },
              "guidance": {
                "title": "Entrance - Guidance",
                "content": "The path to the north leads to the forest, and the path to the south leads to the village.",
                "items": [
                  { "label": "Head North", "action": "forest" },
                  { "label": "Return", "action": "default" }
                ],
                "consequences": []
              },
              "forest": {
                "title": "Forest",
                "content": "Went to the forest",
                "items": [],
                "consequences": ["gainleaf"]
              }
            }},
            { "name": "Entrance", "x": 995, "y": 660, "collisionType": "modal", "modalConfig": {
              "title": "Entrance",
              "content": "You've reached the Entrance. What's your next step?",
              "actions": [
                { "label": "Ask for guidance on next move", "action": "askforDirections" },
                { "label": "Buy an Axe", "action": "buyAxeAlert" }
              ]
            }},
            { "name": "Market Stall", "x": 200, "y": 300, "collisionType": "", "collisiontext": "" },
            { "name": "Inn Entrance", "x": 400, "y": 450, "collisionType": "", "collisiontext": "" },
            { "name": "Town Hall", "x": 600, "y": 350, "collisionType": "", "collisiontext": "" },
            { "name": "Fountain", "x": 500, "y": 500, "collisionType": "", "collisiontext": "" },
            { "name": "Bridge", "x": 1100, "y": 700, "collisionType": "", "collisiontext": "" },
            { "name": "Waterfall", "x": 1300, "y": 800, "collisionType": "", "collisiontext": "" },
            { "name": "Mountain Peak", "x": 1500, "y": 100, "collisionType": "", "collisiontext": "" },
            { "name": "Switch Test 1", "x": 700, "y": 700, "collisionType": "storypartchange", "collisiontext": "First Test", "transitionToPart": 1 }
          ]
        },
        {
          "part": 1,
          "objectives": [],
          "targets": [
            { "name": "Target 1", "x": 50, "y": 50, "collisionType": "alert", "collisiontext": "First Test" },
            { "name": "Switch Back Test 1", "x": 600, "y": 400, "collisionType": "storypartchange", "collisiontext": "First Test", "transitionToPart": 0 }
          ]
        }
      ],
      "actions": {}
    },
    "Space Odyssey": {
      "background": "backgrounds/SpaceOdysseyGameLoc.png",
      "inventory": [
        { "type": "weapon", "name": "Laser Gun", "description": "A powerful laser weapon." },
        { "type": "tool", "name": "Repair Kit", "description": "A kit for repairing various equipment." },
        { "type": "tool", "name": "Mining Laser", "description": "A tool for extracting minerals from asteroids." }
      ],
      "skills": [
        { "branch": "Piloting", "name": "Astro Navigation", "learned": false },
        { "branch": "Engineering", "name": "Repair Mastery", "learned": false }
      ],
      "persistentTargets": [
        { "name": "Space Station", "x": 200, "y": 300, "collisionType": "", "collisiontext": "" },
        { "name": "Alien Planet", "x": 940, "y": 460, "collisionType": "alert", "collisiontext": "You have arrived at an alien planet. The inhabitants seem cautious but willing to negotiate." },
        { "name": "Abandoned Spaceship", "x": 460, "y": 570, "collisionType": "alert", "collisiontext": "You have discovered an abandoned spaceship of ancient origin." },
        { "name": "Colony", "x": 640, "y": 500, "collisionType": "modal", "modalConfig": {
          "title": "Human Colony",
          "content": "You have reached the human colony. Rest and prepare for your upcoming missions.",
          "actions": [
            { "label": "Request Mission Briefing", "action": "requestBriefing" },
            { "label": "Purchase Upgrades", "action": "purchaseUpgrades" }
          ]
        }},
        { "name": "Meteor Field", "x": 1100, "y": 470, "collisionType": "modal", "modalConfig": {
          "title": "Dangerous Meteor Field",
          "content": "You have entered a dense meteor field. Navigate carefully.",
          "actions": [
            { "label": "Activate Shields", "action": "activateShields" },
            { "label": "Scan for Rare Minerals", "action": "scanMinerals" }
          ]
        }}
      ],
      "story": [
        {
          "part": 0,
          "objectives": [
            { "id": 1, "name": "Dock at the Space Station", "complete": false, "progress": 0, "inventoryRequired": [] },
            { "id": 2, "name": "Repair the Communication Array", "complete": false, "progress": 0, "inventoryRequired": ["Repair Kit"] }
          ],
          "targets": [
            { "name": "Space Station Docking Bay", "x": 500, "y": 400, "collisionType": "alert", "collisiontext": "Welcome to the space station." },
            { "name": "Communication Room", "x": 800, "y": 200, "collisionType": "alert", "collisiontext": "The communication array needs repair." },
            { "name": "To Asteroid Field", "x": 900, "y": 100, "collisionType": "storypartchange", "transitionToPart": 1, "collisiontext": "Proceed to investigate the asteroid field." }
          ]
        },
        {
          "part": 1,
          "objectives": [
            { "id": 3, "name": "Collect Rare Asteroid Minerals", "complete": false, "progress": 0, "inventoryRequired": ["Mining Laser"] }
          ],
          "targets": [
            { "name": "Asteroid Field", "x": 1200, "y": 300, "collisionType": "alert", "collisiontext": "Scan asteroids for rare minerals." },
            { "name": "Alien Encounter", "x": 1250, "y": 350, "collisionType": "alert", "collisiontext": "An alien ship approaches." },
            { "name": "To Alien Homeworld", "x": 1100, "y": 200, "collisionType": "storypartchange", "transitionToPart": 2, "collisiontext": "Travel to the alien homeworld." }
          ]
        },
        {
          "part": 2,
          "objectives": [
            { "id": 4, "name": "Negotiate Peace with the Aliens", "complete": false, "progress": 0, "inventoryRequired": [] },
            { "id": 5, "name": "Gather Alien Artifacts", "complete": false, "progress": 0, "inventoryRequired": ["Artifact Scanner"] }
          ],
          "targets": [
            { "name": "Alien Council Chamber", "x": 600, "y": 250, "collisionType": "modal", "modalConfig": {
              "title": "Alien Council Chamber",
              "content": "Present your case for peace.",
              "actions": [
                { "label": "Present Peace Offer", "action": "presentPeaceOffer" },
                { "label": "Listen to Alien Concerns", "action": "listenConcerns" }
              ]
            }},
            { "name": "Alien Ruins", "x": 750, "y": 400, "collisionType": "alert", "collisiontext": "Ancient alien ruins discovered." },
            { "name": "Return to Human Colony", "x": 800, "y": 150, "collisionType": "storypartchange", "transitionToPart": 3, "collisiontext": "Return to share findings." }
          ]
        }
      ],
      "actions": {}
    },
    "Medieval Fantasy": {
      "background": "backgrounds/MedievalFantasyGameLoc.png",
      "inventory": [
        { "type": "weapon", "name": "Longsword", "description": "A sturdy steel blade." }
      ],
      "skills": [
        { "branch": "Piloting", "name": "Astro Navigation", "learned": false }
      ],
      "persistentTargets": [
        { "name": "Market Stall", "x": 200, "y": 300, "collisionType": "", "collisiontext": "" },
        { "name": "Inn Entrance", "x": 400, "y": 450, "collisionType": "", "collisiontext": "" },
        { "name": "Castle", "x": 940, "y": 460, "collisionType": "alert", "collisiontext": "The King summons you to find and release his champion." },
        { "name": "Hidden Space", "x": 460, "y": 570, "collisionType": "alert", "collisiontext": "A hidden space. Nobody is here." },
        { "name": "Home", "x": 640, "y": 500, "collisionType": "modal", "modalConfig": {
          "title": "Your Space",
          "content": "Rest and prepare for your tasks.",
          "actions": [
            { "label": "Ask for guidance", "action": "askforDirections" },
            { "label": "Buy an Axe", "action": "buyAxeAlert" }
          ]
        }},
        { "name": "Marketplace", "x": 1100, "y": 470, "collisionType": "modal", "modalConfig": {
          "title": "Marketplace",
          "content": "A bustling marketplace.",
          "actions": [
            { "label": "Ask for directions", "action": "askforDirections" },
            { "label": "Buy an Axe", "action": "buyAxeAlert" },
            { "label": "Ask about the knight", "action": "knightalert" }
          ]
        }},
        { "name": "Mini Waterfall", "x": 500, "y": 640, "collisionType": "alert", "collisiontext": "A calming waterfall. There's a trail of water leading nearby." }
      ],
      "story": [
        {
          "part": 0,
          "objectives": [
            { "id": 1, "name": "Investigate the Disappearances", "complete": false, "progress": 0, "inventoryRequired": [] },
            { "id": 6, "name": "Rescue the Captured Knight", "complete": false, "progress": 0, "inventoryRequired": ["Longsword"] }
          ],
          "targets": [
            { "name": "Village Elder's House", "x": 500, "y": 400, "collisionType": "alert", "collisiontext": "The village needs your help investigating disappearances." },
            { "name": "Mysterious Forest", "x": 800, "y": 200, "collisionType": "alert", "collisiontext": "An eerie silence envelops the forest." },
            { "name": "To Goblin Bandits", "x": 900, "y": 100, "collisionType": "storypartchange", "transitionToPart": 1, "collisiontext": "Follow the tracks deeper into the forest." }
          ]
        },
        {
          "part": 1,
          "objectives": [
            { "id": 2, "name": "Defeat the Goblin Bandits", "complete": false, "progress": 0, "inventoryRequired": ["Longsword"] }
          ],
          "targets": [
            { "name": "Bandit Camp", "x": 1200, "y": 300, "collisionType": "alert", "collisiontext": "Goblins attack! Prepare for battle!" },
            { "name": "Prisoner Cages", "x": 1250, "y": 350, "collisionType": "alert", "collisiontext": "You free the villagers. They mention a sorcerer." },
            { "name": "To Gather Information", "x": 1100, "y": 200, "collisionType": "storypartchange", "transitionToPart": 2, "collisiontext": "Gather information about the sorcerer." }
          ]
        }
      ],
      "actions": {}
    },
    "Cyberpunk": {
      "background": "backgrounds/CyberpunkGameLoc.png",
      "inventory": [
        { "type": "weapon", "name": "Plasma Rifle", "description": "A high-tech firearm with plasma rounds." },
        { "type": "armor", "name": "NanoSuit", "description": "Protects with reactive nano technology." },
        { "type": "consumable", "name": "Stim Pack", "description": "Enhances reflexes temporarily." }
      ],
      "skills": [
        { "branch": "Hacking", "name": "Cyber Intrusion", "learned": false },
        { "branch": "Combat", "name": "Gun Kata", "learned": false },
        { "branch": "Stealth", "name": "Cloaking", "learned": false }
      ],
      "persistentTargets": [],
      "story": [
        {
          "part": 0,
          "objectives": [],
          "targets": [
            { "name": "Target 1", "x": 50, "y": 50, "collisionType": "alert", "collisiontext": "First Test" },
            { "name": "MegaCorp Server", "x": 200, "y": 50, "collisionType": "alert", "collisiontext": "Corporate server detected" },
            { "name": "City Police", "x": 50, "y": 250, "collisionType": "alert", "collisiontext": "Law enforcement nearby" },
            { "name": "Rival Gang", "x": 550, "y": 550, "collisionType": "alert", "collisiontext": "Gang territory" }
          ]
        }
      ],
      "actions": {}
    },
    "Super Teacher": {
      "background": "backgrounds/SuperTeacherGameLoc.png",
      "inventory": [
        { "type": "book", "name": "Math Advice", "description": "Useful topical knowledge." },
        { "type": "book", "name": "Science Advice", "description": "Useful topical knowledge." },
        { "type": "book", "name": "English Advice", "description": "Useful topical knowledge." },
        { "type": "book", "name": "Economics Advice", "description": "Useful topical knowledge." }
      ],
      "skills": [
        { "branch": "Multitask", "name": "Movement Speed", "learned": false },
        { "branch": "Multitask", "name": "Stop Window Interference for 1 min", "learned": false }
      ],
      "persistentTargets": [
        { "name": "Super Teacher Toolkit", "x": 1000, "y": 330, "collisionType": "alert", "collisiontext": "Teaching tools available" }
      ],
      "story": [
        {
          "part": 0,
          "objectives": [],
          "targets": [
            { "name": "Random Noise Interference", "x": 250, "y": 110, "collisionType": "alert", "collisiontext": "Distraction detected" },
            { "name": "Student 1", "x": 310, "y": 620, "collisionType": "alert", "collisiontext": "Needs help with English" },
            { "name": "Student 2", "x": 660, "y": 610, "collisionType": "alert", "collisiontext": "Doesn't speak English" },
            { "name": "Student 3", "x": 1010, "y": 620, "collisionType": "alert", "collisiontext": "Needs help with Math" }
          ]
        }
      ],
      "actions": {}
    },
    "Fantasy Adventure": {
      "background": "backgrounds/eldoria_background.png",
      "inventory": [
        { "type": "book", "name": "Book of Eldrak", "description": "An ancient tome with half a map." },
        { "type": "amulet", "name": "Peculiar Amulet", "description": "Reveals the unseen." },
        { "type": "map", "name": "Tattered Map", "description": "Hints at Whispering Woods locations." },
        { "type": "artifact", "name": "Magical Acorn", "description": "Gift from the forest spirit." },
        { "type": "relic", "name": "Shrine Relic", "description": "Enhances magical abilities." },
        { "type": "record", "name": "Echoing Cave Echoes", "description": "Reveals secrets and hidden paths." }
      ],
      "skills": [
        { "branch": "Combat", "name": "Sword Mastery", "learned": false },
        { "branch": "Magic", "name": "Elemental Control", "learned": false },
        { "branch": "Lore", "name": "Ancient Lore", "learned": true },
        { "branch": "Stealth", "name": "Eavesdropping", "learned": true },
        { "branch": "Stealth", "name": "Stealth Movement", "learned": true },
        { "branch": "Diplomacy", "name": "Negotiation", "learned": true },
        { "branch": "Magic", "name": "Artifact Mastery", "learned": true }
      ],
      "persistentTargets": [
        { "name": "Lila's Home", "x": 460, "y": 600, "collisionType": "alert", "collisiontext": "A cozy cottage where the quest begins." },
        { "name": "Eldoria Library", "x": 360, "y": 620, "collisionType": "alert", "collisiontext": "A treasure trove of books and maps." }
      ],
      "story": [
        {
          "part": 0,
          "objectives": [],
          "targets": [
            { "name": "Eldoria Main Square", "x": 410, "y": 590, "collisionType": "requirementsgated", "collisiontext": "The heart of Eldoria.", "requirements": 8 },
            { "name": "Whispering Forest Edge", "x": 830, "y": 700, "collisionType": "alert", "collisiontext": "The mysterious forest borders Eldoria." },
            { "name": "Serene Hills", "x": 520, "y": 490, "collisionType": "alert", "collisiontext": "Gentle hills promise adventure." },
            { "name": "Marketplace", "x": 360, "y": 560, "collisionType": "alert", "collisiontext": "Rumors of ancient artifacts." },
            { "name": "Eldoria", "x": 490, "y": 420, "collisionType": "storypartchange", "collisiontext": "Your journey begins.", "transitionToPart": 1 },
            { "name": "Old Sage's Hut", "x": 600, "y": 480, "collisionType": "alert", "collisiontext": "Seek the sage's wisdom." }
          ]
        },
        {
          "part": 1,
          "objectives": [],
          "targets": [
            { "name": "Library of Eldrak", "x": 620, "y": 600, "collisionType": "alert", "collisiontext": "You discover the ancient Book of Eldrak." },
            { "name": "Meridia Market", "x": 750, "y": 590, "collisionType": "alert", "collisiontext": "A peculiar amulet catches your eye." },
            { "name": "Suspicious Place", "x": 810, "y": 530, "collisionType": "decision", "collisiontext": "Do you know why you came here?" },
            { "name": "The Ancient Oak", "x": 300, "y": 130, "collisionType": "modal", "modalConfig": {
              "title": "The Ancient Oak Area",
              "content": "The Ancient Oak stands before you.",
              "actions": [
                { "label": "Talk to the Ancient Oak", "action": "approachAncientOak" }
              ]
            }},
            { "name": "Magical Acorn", "x": 400, "y": 140, "collisionType": "modal", "modalConfig": {
              "title": "Magical Acorn Area",
              "content": "A spirit appears as you approach the acorn.",
              "actions": [
                { "label": "Talk to the spirit", "action": "acquireMagicalAcorn" }
              ]
            }}
          ]
        }
      ],
      "actions": {}
    },
    "Construction": {
      "background": "backgrounds/ConstructionGameLoc.png",
      "inventory": [
        { "type": "tool", "name": "Hammer", "description": "A sturdy hammer for construction." },
        { "type": "tool", "name": "Screwdriver", "description": "For fastening screws." },
        { "type": "equipment", "name": "Safety Helmet", "description": "Protects from falling objects." },
        { "type": "equipment", "name": "Safety Vest", "description": "High-visibility vest." },
        { "type": "consumable", "name": "Energy Bar", "description": "Provides energy." }
      ],
      "skills": [
        { "branch": "Construction", "name": "Electrical Wiring", "learned": true },
        { "branch": "Construction", "name": "Concrete Pouring", "learned": true },
        { "branch": "Safety", "name": "Fall Protection", "learned": false },
        { "branch": "Safety", "name": "Hazard Recognition", "learned": true },
        { "branch": "Equipment Operation", "name": "Forklift Certification", "learned": false }
      ],
      "persistentTargets": [
        { "name": "Blueprints", "x": 300, "y": 670, "collisionType": "alert", "collisiontext": "Consult the blueprints." },
        { "name": "Water Cooler", "x": 490, "y": 650, "collisionType": "alert", "collisiontext": "Take a break and hydrate." }
      ],
      "story": [
        {
          "part": 0,
          "objectives": [
            { "id": "Objective1_1", "name": "Attend Morning Briefing", "complete": false },
            { "id": "Objective1_2", "name": "Gather Required Tools", "complete": false }
          ],
          "targets": [
            { "name": "Construction Site", "x": 470, "y": 310, "collisionType": "alert", "collisiontext": "You arrive at the construction site." },
            { "name": "Foreman's Office", "x": 1270, "y": 690, "collisionType": "alert", "collisiontext": "Morning briefing with the foreman." },
            { "name": "Tool Shed", "x": 430, "y": 540, "collisionType": "alert", "collisiontext": "Gather your tools." },
            { "name": "Continue Construction", "x": 1100, "y": 520, "collisionType": "storypartchange", "transitionToPart": 1, "collisiontext": "Continue to tasks." }
          ]
        },
        {
          "part": 1,
          "objectives": [
            { "id": "Objective2_1", "name": "Install Electrical Wiring", "complete": false },
            { "id": "Objective2_2", "name": "Assist with Concrete Pouring", "complete": false },
            { "id": "Objective2_3", "name": "Attend Safety Training", "complete": false }
          ],
          "targets": [
            { "name": "Electrical Room", "x": 37, "y": 13, "collisionType": "alert", "collisiontext": "Install electrical wiring." },
            { "name": "Foundation Area", "x": 370, "y": 50, "collisionType": "alert", "collisiontext": "Pour concrete for the foundation." },
            { "name": "Safety Meeting Point", "x": 530, "y": 160, "collisionType": "alert", "collisiontext": "Safety training session." },
            { "name": "Lunch Break Area", "x": 820, "y": 540, "collisionType": "alert", "collisiontext": "Lunch break time." }
          ]
        },
        {
          "part": 2,
          "objectives": [
            { "id": "Objective3_1", "name": "Inspect Completed Work", "complete": false },
            { "id": "Objective3_2", "name": "Clean Up and Secure Site", "complete": false }
          ],
          "targets": [
            { "name": "Inspection Point", "x": 90, "y": 600, "collisionType": "alert", "collisiontext": "Inspect your work." },
            { "name": "Equipment Storage", "x": 220, "y": 800, "collisionType": "alert", "collisiontext": "Store your equipment." },
            { "name": "Site Exit", "x": 900, "y": 900, "collisionType": "alert", "collisiontext": "End of day. Good work!" }
          ]
        }
      ],
      "actions": {}
    }
  }
}