lpc-forge 1.0.5 → 1.1.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.
Files changed (47) hide show
  1. package/dist/character/composer.js +22 -24
  2. package/dist/character/composer.js.map +1 -1
  3. package/dist/character/definitions.js +2 -2
  4. package/dist/character/definitions.js.map +1 -1
  5. package/dist/export/godot.d.ts +6 -0
  6. package/dist/export/godot.js +11 -3
  7. package/dist/export/godot.js.map +1 -1
  8. package/dist/license.js +38 -26
  9. package/dist/lighting/index.js +5 -5
  10. package/dist/lighting/index.js.map +1 -1
  11. package/dist/map/cellular.js +17 -4
  12. package/dist/map/cellular.js.map +1 -1
  13. package/dist/map/dungeon.js +11 -2
  14. package/dist/map/dungeon.js.map +1 -1
  15. package/dist/map/overworld.js +3 -0
  16. package/dist/map/overworld.js.map +1 -1
  17. package/dist/map/town.js +6 -1
  18. package/dist/map/town.js.map +1 -1
  19. package/dist/map/wfc.js +1 -0
  20. package/dist/map/wfc.js.map +1 -1
  21. package/dist/systems/dialog.js +3 -0
  22. package/dist/systems/dialog.js.map +1 -1
  23. package/dist/systems/enemy-ai.js +14 -9
  24. package/dist/systems/enemy-ai.js.map +1 -1
  25. package/dist/systems/inventory.js +3 -2
  26. package/dist/systems/inventory.js.map +1 -1
  27. package/dist/systems/loot.js +3 -1
  28. package/dist/systems/loot.js.map +1 -1
  29. package/dist/systems/quest.js +4 -0
  30. package/dist/systems/quest.js.map +1 -1
  31. package/dist/systems/save-load.js +2 -2
  32. package/dist/systems/scene-transition.js +3 -1
  33. package/dist/systems/scene-transition.js.map +1 -1
  34. package/dist/ui/generator.js +45 -62
  35. package/dist/ui/generator.js.map +1 -1
  36. package/dist/ui/icons.js +102 -129
  37. package/dist/ui/icons.js.map +1 -1
  38. package/dist/ui/pixel-utils.d.ts +27 -0
  39. package/dist/ui/pixel-utils.js +37 -0
  40. package/dist/ui/pixel-utils.js.map +1 -0
  41. package/dist/ui/portrait.js +1 -5
  42. package/dist/ui/portrait.js.map +1 -1
  43. package/dist/ui/props.js +83 -109
  44. package/dist/ui/props.js.map +1 -1
  45. package/dist/utils/rng.js +5 -0
  46. package/dist/utils/rng.js.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"overworld.js","sourceRoot":"","sources":["../../src/map/overworld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overworld.js","sourceRoot":"","sources":["../../src/map/overworld.ts"],"names":[],"mappings":"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"}
package/dist/map/town.js CHANGED
@@ -4,6 +4,9 @@ const DEFAULT_BUILDINGS = 6;
4
4
  const DEFAULT_MARKET_SIZE = 8;
5
5
  export function generateTown(config) {
6
6
  const { width, height, seed = Date.now(), buildings = DEFAULT_BUILDINGS, hasWall = false, marketSize = DEFAULT_MARKET_SIZE, } = config;
7
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width < 10 || height < 10) {
8
+ throw new Error(`Invalid map dimensions: ${width}×${height} (minimum 10×10)`);
9
+ }
7
10
  const rng = new SeededRNG(seed);
8
11
  const numBuildings = Math.max(4, Math.min(8, buildings));
9
12
  // Initialize grid with grass
@@ -46,7 +49,9 @@ export function generateTown(config) {
46
49
  const sqY = Math.floor(height / 2 - sqSize / 2);
47
50
  for (let dy = 0; dy < sqSize; dy++) {
48
51
  for (let dx = 0; dx < sqSize; dx++) {
49
- tiles[sqY + dy][sqX + dx] = TT.STONE;
52
+ if (sqY + dy >= 0 && sqY + dy < height && sqX + dx >= 0 && sqX + dx < width) {
53
+ tiles[sqY + dy][sqX + dx] = TT.STONE;
54
+ }
50
55
  }
51
56
  }
52
57
  // Market stalls in the square (small 2x2 structures)
@@ -1 +1 @@
1
- {"version":3,"file":"town.js","sourceRoot":"","sources":["../../src/map/town.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"town.js","sourceRoot":"","sources":["../../src/map/town.ts"],"names":[],"mappings":"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"}
package/dist/map/wfc.js CHANGED
@@ -88,6 +88,7 @@ export function generateWFC(config) {
88
88
  }
89
89
  }
90
90
  // Fallback: fill with grass
91
+ console.warn(`WFC generation failed after ${maxRetries} retries — filling with grass fallback`);
91
92
  const fallback = Array.from({ length: height }, () => Array(width).fill(TT.GRASS));
92
93
  return { width, height, tiles: fallback, rooms: [], seed, pois: [] };
93
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wfc.js","sourceRoot":"","sources":["../../src/map/wfc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wfc.js","sourceRoot":"","sources":["../../src/map/wfc.ts"],"names":[],"mappings":"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"}
@@ -225,6 +225,9 @@ func _ready() -> void:
225
225
  \t\tvar file := FileAccess.open(dialog_file, FileAccess.READ)
226
226
  \t\tvar json := JSON.new()
227
227
  \t\tif json.parse(file.get_as_text()) == OK:
228
+ \t\t\tif not json.data is Array:
229
+ \t\t\t\tpush_error("Dialog file must contain a JSON array")
230
+ \t\t\t\treturn
228
231
  \t\t\tdialog_data = json.data
229
232
  \tif dialog_data.is_empty():
230
233
  \t\tdialog_data = [
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/systems/dialog.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc;IAC5B,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEzB,CAAC;IAEA,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFpB,CAAC;IAEA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDtB,CAAC;IAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCvB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yFAAyF;QACtG,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,eAAe,EAAE;YAC/D,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,EAAE;YACrD,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,YAAY,EAAE;YACxD,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5D;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC;QAC/E,YAAY,EAAE,CAAC,UAAU,CAAC;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../src/systems/dialog.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc;IAC5B,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEzB,CAAC;IAEA,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFpB,CAAC;IAEA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDtB,CAAC;IAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CvB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yFAAyF;QACtG,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,eAAe,EAAE;YAC/D,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,EAAE;YACrD,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,YAAY,EAAE;YACxD,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5D;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC;QAC/E,YAAY,EAAE,CAAC,UAAU,CAAC;KAC3B,CAAC;AACJ,CAAC"}
@@ -33,6 +33,7 @@ var patrol_origin: Vector2
33
33
  var patrol_target: Vector2
34
34
  var direction := "down"
35
35
  var can_attack := true
36
+ var _hurt_processing := false
36
37
 
37
38
  func _ready() -> void:
38
39
  \thealth = max_health
@@ -55,13 +56,13 @@ func _physics_process(delta: float) -> void:
55
56
  \t\tState.IDLE:
56
57
  \t\t\t_process_idle()
57
58
  \t\tState.PATROL:
58
- \t\t\t_process_patrol()
59
+ \t\t\t_process_patrol(delta)
59
60
  \t\tState.CHASE:
60
- \t\t\t_process_chase()
61
+ \t\t\t_process_chase(delta)
61
62
  \t\tState.ATTACK:
62
63
  \t\t\tpass
63
64
  \t\tState.FLEE:
64
- \t\t\t_process_flee()
65
+ \t\t\t_process_flee(delta)
65
66
  \t\tState.HURT, State.DEAD:
66
67
  \t\t\tpass
67
68
 
@@ -73,9 +74,9 @@ func _process_idle() -> void:
73
74
  \t\tif patrol_timer.is_stopped():
74
75
  \t\t\tpatrol_timer.start()
75
76
 
76
- func _process_patrol() -> void:
77
+ func _process_patrol(delta: float) -> void:
77
78
  \tvar dir := (patrol_target - global_position).normalized()
78
- \tvelocity = dir * speed
79
+ \tvelocity = dir * speed * delta
79
80
  \t_update_direction(dir)
80
81
  \t_play_anim("walk")
81
82
  \tmove_and_slide()
@@ -83,7 +84,7 @@ func _process_patrol() -> void:
83
84
  \t\tpatrol_target = _random_patrol_point()
84
85
  \t\t_change_state(State.IDLE)
85
86
 
86
- func _process_chase() -> void:
87
+ func _process_chase(delta: float) -> void:
87
88
  \tif not target or not is_instance_valid(target):
88
89
  \t\ttarget = null
89
90
  \t\t_change_state(State.IDLE)
@@ -96,17 +97,17 @@ func _process_chase() -> void:
96
97
  \t\t_change_state(State.ATTACK)
97
98
  \t\treturn
98
99
  \tvar dir := (target.global_position - global_position).normalized()
99
- \tvelocity = dir * chase_speed
100
+ \tvelocity = dir * chase_speed * delta
100
101
  \t_update_direction(dir)
101
102
  \t_play_anim("walk")
102
103
  \tmove_and_slide()
103
104
 
104
- func _process_flee() -> void:
105
+ func _process_flee(delta: float) -> void:
105
106
  \tif not target or not is_instance_valid(target):
106
107
  \t\t_change_state(State.IDLE)
107
108
  \t\treturn
108
109
  \tvar dir := (global_position - target.global_position).normalized()
109
- \tvelocity = dir * chase_speed
110
+ \tvelocity = dir * chase_speed * delta
110
111
  \t_update_direction(dir)
111
112
  \t_play_anim("walk")
112
113
  \tmove_and_slide()
@@ -126,7 +127,11 @@ func _change_state(new_state: State) -> void:
126
127
  \t\tState.HURT:
127
128
  \t\t\tvelocity = Vector2.ZERO
128
129
  \t\t\t_play_anim("hurt")
130
+ \t\t\tif _hurt_processing:
131
+ \t\t\t\treturn
132
+ \t\t\t_hurt_processing = true
129
133
  \t\t\tawait get_tree().create_timer(0.4).timeout
134
+ \t\t\t_hurt_processing = false
130
135
  \t\t\tif state == State.HURT:
131
136
  \t\t\t\t_change_state(State.CHASE if target else State.IDLE)
132
137
  \t\tState.DEAD:
@@ -1 +1 @@
1
- {"version":3,"file":"enemy-ai.js","sourceRoot":"","sources":["../../src/systems/enemy-ai.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8LjB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE;SAC/C;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"enemy-ai.js","sourceRoot":"","sources":["../../src/systems/enemy-ai.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmMjB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,EAAE;SAC/C;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}
@@ -45,6 +45,7 @@ func _load_item_database() -> void:
45
45
  \t\t"ruby": {"name": "Ruby", "type": "gem", "icon": 8, "description": "A precious red gem.", "stackable": true, "value": 100},
46
46
  \t\t"spell_scroll": {"name": "Spell Scroll", "type": "consumable", "icon": 9, "description": "Contains a magical spell.", "stackable": true, "value": 25},
47
47
  \t\t"coin": {"name": "Gold Coin", "type": "currency", "icon": 10, "description": "Shiny gold coin.", "stackable": true, "value": 1},
48
+ \t\t"emerald": {"name": "Emerald", "type": "gem", "icon": 11, "description": "A precious green gem.", "stackable": true, "value": 120},
48
49
  \t}
49
50
 
50
51
  func get_item_data(item_id: String) -> Dictionary:
@@ -92,7 +93,7 @@ func remove_item(item_id: String, amount: int = 1) -> bool:
92
93
  \t\t\treturn true
93
94
  \treturn false
94
95
 
95
- func has_item(item_id: String, amount: int = 1) -> int:
96
+ func has_item(item_id: String, amount: int = 1) -> bool:
96
97
  \tvar total := 0
97
98
  \tfor i in range(MAX_SLOTS):
98
99
  \t\tif items[i].get("id", "") == item_id:
@@ -157,7 +158,7 @@ func save_data() -> Dictionary:
157
158
  \treturn {"items": items.duplicate(true), "equipment": equipment.duplicate(true)}
158
159
 
159
160
  func load_data(data: Dictionary) -> void:
160
- \titems = data.get("items", [])
161
+ \titems.assign(data.get("items", []))
161
162
  \tequipment = data.get("equipment", {})
162
163
  \tinventory_changed.emit()
163
164
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/systems/inventory.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB;IAC/B,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiK5B,CAAC;IAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+EvB,CAAC;IAEA,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEzB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,oEAAoE;QACjF,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;YAC3D,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,eAAe,EAAE;SAC/D;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;QAC9E,YAAY,EAAE,CAAC,WAAW,CAAC;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/systems/inventory.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB;IAC/B,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkK5B,CAAC;IAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+EvB,CAAC;IAEA,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEzB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,oEAAoE;QACjF,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,kBAAkB,EAAE;YACrE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;YAC3D,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,eAAe,EAAE;SAC/D;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;QAC9E,YAAY,EAAE,CAAC,WAAW,CAAC;KAC5B,CAAC;AACJ,CAAC"}
@@ -93,7 +93,9 @@ func _spawn_pickup(pos: Vector2, item_id: String, amount: int) -> void:
93
93
  \ttween.tween_property(pickup, "position:y", pos.y - 4, 0.5).set_trans(Tween.TRANS_SINE)
94
94
  \ttween.tween_property(pickup, "position:y", pos.y + 4, 0.5).set_trans(Tween.TRANS_SINE)
95
95
 
96
- \tget_tree().current_scene.add_child(pickup)
96
+ \tvar scene = get_tree().current_scene
97
+ \tif scene:
98
+ \t\tscene.add_child(pickup)
97
99
  `;
98
100
  return {
99
101
  name: 'loot',
@@ -1 +1 @@
1
- {"version":3,"file":"loot.js","sourceRoot":"","sources":["../../src/systems/loot.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY;IAC1B,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+FvB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,mFAAmF;QAChG,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5D;QACD,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;QAC3E,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loot.js","sourceRoot":"","sources":["../../src/systems/loot.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY;IAC1B,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGvB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,mFAAmF;QAChG,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5D;QACD,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;QAC3E,YAAY,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC"}
@@ -89,6 +89,10 @@ func _grant_rewards(quest: Dictionary) -> void:
89
89
  \tif inv and rewards.has("items"):
90
90
  \t\tfor item in rewards["items"]:
91
91
  \t\t\tinv.add_item(item["id"], item.get("amount", 1))
92
+ \tif rewards.has("xp"):
93
+ \t\tvar player_node = get_node_or_null("/root/Main/Player")
94
+ \t\tif player_node and player_node.has_method("add_xp"):
95
+ \t\t\tplayer_node.add_xp(rewards["xp"])
92
96
 
93
97
  func is_quest_active(quest_id: String) -> bool:
94
98
  \treturn active_quests.has(quest_id)
@@ -1 +1 @@
1
- {"version":3,"file":"quest.js","sourceRoot":"","sources":["../../src/systems/quest.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa;IAC3B,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiHxB,CAAC;IAEA,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CnB,CAAC;IAEA,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCrB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4EAA4E;QACzF,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,cAAc,EAAE;YAC7D,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAAE;YACnD,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW,EAAE;SACvD;QACD,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;QAC7E,YAAY,EAAE,CAAC,WAAW,CAAC;KAC5B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"quest.js","sourceRoot":"","sources":["../../src/systems/quest.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa;IAC3B,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqHxB,CAAC;IAEA,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CnB,CAAC;IAEA,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCrB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4EAA4E;QACzF,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,cAAc,EAAE;YAC7D,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAAE;YACnD,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW,EAAE;SACvD;QACD,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;QAC7E,YAAY,EAAE,CAAC,WAAW,CAAC;KAC5B,CAAC;AACJ,CAAC"}
@@ -107,7 +107,7 @@ func _gather_save_data() -> Dictionary:
107
107
  \t\t\t"position_x": player.global_position.x,
108
108
  \t\t\t"position_y": player.global_position.y,
109
109
  \t\t\t"health": player.health if "health" in player else 100,
110
- \t\t\t"level": player.get("level") if player.get("level") else 1,
110
+ \t\t\t"level": player.get("level") if player.get("level") != null else 1,
111
111
  \t\t}
112
112
  \t\tdata["scene"] = player.get_tree().current_scene.scene_file_path
113
113
 
@@ -122,7 +122,7 @@ func _apply_save_data(data: Dictionary) -> void:
122
122
  \tvar scene_path: String = data.get("scene", "")
123
123
  \tif scene_path != "":
124
124
  \t\tget_tree().change_scene_to_file(scene_path)
125
- \t\tawait get_tree().tree_changed
125
+ \t\tawait get_tree().create_timer(0.1).timeout
126
126
  \t\tawait get_tree().process_frame
127
127
 
128
128
  \tvar player := _find_player()
@@ -12,6 +12,7 @@ signal transition_finished
12
12
 
13
13
  var _target_scene := ""
14
14
  var _is_transitioning := false
15
+ var _duration := 0.5
15
16
 
16
17
  func _ready() -> void:
17
18
  \tcolor_rect.color = Color.BLACK
@@ -22,6 +23,7 @@ func change_scene(scene_path: String, duration := 0.5) -> void:
22
23
  \t\treturn
23
24
  \t_is_transitioning = true
24
25
  \t_target_scene = scene_path
26
+ \t_duration = duration
25
27
  \ttransition_started.emit()
26
28
 
27
29
  \tcolor_rect.visible = true
@@ -38,7 +40,7 @@ func _on_fade_out_done() -> void:
38
40
  \tawait get_tree().process_frame
39
41
 
40
42
  \tvar tween := create_tween()
41
- \ttween.tween_property(color_rect, "modulate:a", 0.0, 0.5)
43
+ \ttween.tween_property(color_rect, "modulate:a", 0.0, _duration)
42
44
  \ttween.tween_callback(_on_fade_in_done)
43
45
 
44
46
  func _on_fade_in_done() -> void:
@@ -1 +1 @@
1
- {"version":3,"file":"scene-transition.js","sourceRoot":"","sources":["../../src/systems/scene-transition.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB;IACrC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CtB,CAAC;IAEA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgBxB,CAAC;IAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,YAAY,EAAE;YAC9D,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,cAAc,EAAE;YACjE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5D;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;QACpF,YAAY,EAAE,CAAC,UAAU,CAAC;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scene-transition.js","sourceRoot":"","sources":["../../src/systems/scene-transition.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB;IACrC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDtB,CAAC;IAEA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgBxB,CAAC;IAEA,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvB,CAAC;IAEA,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,YAAY,EAAE;YAC9D,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,cAAc,EAAE;YACjE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE;SAC5D;QACD,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;QACpF,YAAY,EAAE,CAAC,UAAU,CAAC;KAC3B,CAAC;AACJ,CAAC"}
@@ -2,15 +2,7 @@ import sharp from 'sharp';
2
2
  import { mkdir } from 'node:fs/promises';
3
3
  import { join } from 'node:path';
4
4
  import { UI_THEMES } from './themes.js';
5
- function hexToRGBA(hex) {
6
- const h = hex.replace('#', '');
7
- return {
8
- r: parseInt(h.substring(0, 2), 16),
9
- g: parseInt(h.substring(2, 4), 16),
10
- b: parseInt(h.substring(4, 6), 16),
11
- alpha: 255,
12
- };
13
- }
5
+ import { hexToRGBA, setPixel, fillRect } from './pixel-utils.js';
14
6
  function createPixelBuffer(width, height, fillColor) {
15
7
  const { r, g, b, alpha } = hexToRGBA(fillColor);
16
8
  const buf = Buffer.alloc(width * height * 4);
@@ -22,51 +14,33 @@ function createPixelBuffer(width, height, fillColor) {
22
14
  }
23
15
  return buf;
24
16
  }
25
- function setPixel(buf, width, x, y, color) {
26
- if (x < 0 || y < 0 || x >= width)
27
- return;
28
- const idx = (y * width + x) * 4;
29
- if (idx + 3 >= buf.length)
30
- return;
31
- const { r, g, b, alpha } = hexToRGBA(color);
32
- buf[idx] = r;
33
- buf[idx + 1] = g;
34
- buf[idx + 2] = b;
35
- buf[idx + 3] = alpha;
36
- }
37
- function drawRect(buf, width, x, y, w, h, color) {
38
- for (let dy = 0; dy < h; dy++) {
39
- for (let dx = 0; dx < w; dx++) {
40
- setPixel(buf, width, x + dx, y + dy, color);
41
- }
42
- }
43
- }
44
17
  function drawBorder(buf, width, height, borderWidth, borderColor, cornerRadius) {
18
+ const bc = hexToRGBA(borderColor);
45
19
  // Top and bottom borders
46
20
  for (let bw = 0; bw < borderWidth; bw++) {
47
21
  for (let x = cornerRadius; x < width - cornerRadius; x++) {
48
- setPixel(buf, width, x, bw, borderColor);
49
- setPixel(buf, width, x, height - 1 - bw, borderColor);
22
+ setPixel(buf, width, height, x, bw, bc);
23
+ setPixel(buf, width, height, x, height - 1 - bw, bc);
50
24
  }
51
25
  }
52
26
  // Left and right borders
53
27
  for (let bw = 0; bw < borderWidth; bw++) {
54
28
  for (let y = cornerRadius; y < height - cornerRadius; y++) {
55
- setPixel(buf, width, bw, y, borderColor);
56
- setPixel(buf, width, width - 1 - bw, y, borderColor);
29
+ setPixel(buf, width, height, bw, y, bc);
30
+ setPixel(buf, width, height, width - 1 - bw, y, bc);
57
31
  }
58
32
  }
59
33
  // Corners (pixel-art style: fill diagonal steps)
60
34
  for (let i = 0; i < cornerRadius; i++) {
61
35
  for (let bw = 0; bw < borderWidth; bw++) {
62
36
  // Top-left
63
- setPixel(buf, width, cornerRadius - 1 - i + bw, i, borderColor);
37
+ setPixel(buf, width, height, cornerRadius - 1 - i + bw, i, bc);
64
38
  // Top-right
65
- setPixel(buf, width, width - cornerRadius + i - bw, i, borderColor);
39
+ setPixel(buf, width, height, width - cornerRadius + i - bw, i, bc);
66
40
  // Bottom-left
67
- setPixel(buf, width, cornerRadius - 1 - i + bw, height - 1 - i, borderColor);
41
+ setPixel(buf, width, height, cornerRadius - 1 - i + bw, height - 1 - i, bc);
68
42
  // Bottom-right
69
- setPixel(buf, width, width - cornerRadius + i - bw, height - 1 - i, borderColor);
43
+ setPixel(buf, width, height, width - cornerRadius + i - bw, height - 1 - i, bc);
70
44
  }
71
45
  }
72
46
  }
@@ -75,9 +49,9 @@ async function generatePanel(theme, width, height, outputPath) {
75
49
  const buf = createPixelBuffer(width, height, theme.bgColor);
76
50
  drawBorder(buf, width, height, theme.borderWidth, theme.borderColor, theme.cornerRadius);
77
51
  // Inner highlight (1px lighter border inside)
78
- const highlightColor = lightenColor(theme.borderColor, 30);
52
+ const highlightColor = hexToRGBA(lightenColor(theme.borderColor, 30));
79
53
  for (let x = theme.borderWidth + theme.cornerRadius; x < width - theme.borderWidth - theme.cornerRadius; x++) {
80
- setPixel(buf, width, x, theme.borderWidth, highlightColor);
54
+ setPixel(buf, width, height, x, theme.borderWidth, highlightColor);
81
55
  }
82
56
  await sharp(buf, { raw: { width, height, channels: 4 } })
83
57
  .png()
@@ -93,29 +67,33 @@ async function generateButton(theme, width, height, outputPath) {
93
67
  ];
94
68
  const totalHeight = height * 4;
95
69
  const buf = createPixelBuffer(width, totalHeight, '#00000000');
70
+ const borderCol = hexToRGBA(theme.borderColor);
96
71
  for (let state = 0; state < 4; state++) {
97
72
  const yOff = state * height;
73
+ const stateColor = hexToRGBA(stateColors[state]);
98
74
  // Fill
99
- drawRect(buf, width, 1, yOff + 1, width - 2, height - 2, stateColors[state]);
75
+ fillRect(buf, width, totalHeight, 1, yOff + 1, width - 2, height - 2, stateColor);
100
76
  // Border
101
77
  for (let x = 1; x < width - 1; x++) {
102
- setPixel(buf, width, x, yOff, theme.borderColor);
103
- setPixel(buf, width, x, yOff + height - 1, theme.borderColor);
78
+ setPixel(buf, width, totalHeight, x, yOff, borderCol);
79
+ setPixel(buf, width, totalHeight, x, yOff + height - 1, borderCol);
104
80
  }
105
81
  for (let y = 1; y < height - 1; y++) {
106
- setPixel(buf, width, 0, yOff + y, theme.borderColor);
107
- setPixel(buf, width, width - 1, yOff + y, theme.borderColor);
82
+ setPixel(buf, width, totalHeight, 0, yOff + y, borderCol);
83
+ setPixel(buf, width, totalHeight, width - 1, yOff + y, borderCol);
108
84
  }
109
85
  // Pressed state: dark top edge for "pushed in" look
110
86
  if (state === 2) {
87
+ const pressedColor = hexToRGBA(darkenColor(stateColors[state], 20));
111
88
  for (let x = 1; x < width - 1; x++) {
112
- setPixel(buf, width, x, yOff + 1, darkenColor(stateColors[state], 20));
89
+ setPixel(buf, width, totalHeight, x, yOff + 1, pressedColor);
113
90
  }
114
91
  }
115
92
  // Normal/hover: light bottom highlight
116
93
  if (state < 2) {
94
+ const highlightCol = hexToRGBA(lightenColor(stateColors[state], 20));
117
95
  for (let x = 2; x < width - 2; x++) {
118
- setPixel(buf, width, x, yOff + height - 2, lightenColor(stateColors[state], 20));
96
+ setPixel(buf, width, totalHeight, x, yOff + height - 2, highlightCol);
119
97
  }
120
98
  }
121
99
  }
@@ -127,22 +105,25 @@ async function generateButton(theme, width, height, outputPath) {
127
105
  async function generateBar(width, height, fillColor, bgColor, borderColor, outputPath) {
128
106
  const totalHeight = height * 2;
129
107
  const buf = createPixelBuffer(width, totalHeight, '#00000000');
108
+ const borderCol = hexToRGBA(borderColor);
109
+ const bgCol = hexToRGBA(bgColor);
110
+ const fillCol = hexToRGBA(fillColor);
130
111
  for (let variant = 0; variant < 2; variant++) {
131
112
  const yOff = variant * height;
132
113
  // Background
133
- drawRect(buf, width, 1, yOff + 1, width - 2, height - 2, bgColor);
114
+ fillRect(buf, width, totalHeight, 1, yOff + 1, width - 2, height - 2, bgCol);
134
115
  // Fill (only for "full" variant)
135
116
  if (variant === 1) {
136
- drawRect(buf, width, 2, yOff + 2, width - 4, height - 4, fillColor);
117
+ fillRect(buf, width, totalHeight, 2, yOff + 2, width - 4, height - 4, fillCol);
137
118
  }
138
119
  // Border
139
120
  for (let x = 1; x < width - 1; x++) {
140
- setPixel(buf, width, x, yOff, borderColor);
141
- setPixel(buf, width, x, yOff + height - 1, borderColor);
121
+ setPixel(buf, width, totalHeight, x, yOff, borderCol);
122
+ setPixel(buf, width, totalHeight, x, yOff + height - 1, borderCol);
142
123
  }
143
124
  for (let y = 1; y < height - 1; y++) {
144
- setPixel(buf, width, 0, yOff + y, borderColor);
145
- setPixel(buf, width, width - 1, yOff + y, borderColor);
125
+ setPixel(buf, width, totalHeight, 0, yOff + y, borderCol);
126
+ setPixel(buf, width, totalHeight, width - 1, yOff + y, borderCol);
146
127
  }
147
128
  }
148
129
  await sharp(buf, { raw: { width, height: totalHeight, channels: 4 } })
@@ -155,16 +136,16 @@ async function generateSlot(size, theme, outputPath) {
155
136
  const buf = createPixelBuffer(size, totalHeight, '#00000000');
156
137
  for (let variant = 0; variant < 2; variant++) {
157
138
  const yOff = variant * size;
158
- const bgCol = variant === 0 ? darkenColor(theme.bgColor, 10) : theme.bgColor;
159
- drawRect(buf, size, 1, yOff + 1, size - 2, size - 2, bgCol);
160
- const bCol = variant === 0 ? theme.borderColor : theme.accentColor;
139
+ const bgCol = hexToRGBA(variant === 0 ? darkenColor(theme.bgColor, 10) : theme.bgColor);
140
+ fillRect(buf, size, totalHeight, 1, yOff + 1, size - 2, size - 2, bgCol);
141
+ const bCol = hexToRGBA(variant === 0 ? theme.borderColor : theme.accentColor);
161
142
  for (let x = 1; x < size - 1; x++) {
162
- setPixel(buf, size, x, yOff, bCol);
163
- setPixel(buf, size, x, yOff + size - 1, bCol);
143
+ setPixel(buf, size, totalHeight, x, yOff, bCol);
144
+ setPixel(buf, size, totalHeight, x, yOff + size - 1, bCol);
164
145
  }
165
146
  for (let y = 1; y < size - 1; y++) {
166
- setPixel(buf, size, 0, yOff + y, bCol);
167
- setPixel(buf, size, size - 1, yOff + y, bCol);
147
+ setPixel(buf, size, totalHeight, 0, yOff + y, bCol);
148
+ setPixel(buf, size, totalHeight, size - 1, yOff + y, bCol);
168
149
  }
169
150
  }
170
151
  await sharp(buf, { raw: { width: size, height: totalHeight, channels: 4 } })
@@ -176,6 +157,8 @@ async function generateCursors(theme, outputPath) {
176
157
  const size = 16;
177
158
  const totalWidth = size * 4;
178
159
  const buf = createPixelBuffer(totalWidth, size, '#00000000');
160
+ const accentCol = hexToRGBA(theme.accentColor);
161
+ const textCol = hexToRGBA(theme.textColor);
179
162
  // Arrow cursor (state 0)
180
163
  const arrowPixels = [
181
164
  [0, 0], [0, 1], [1, 1], [0, 2], [1, 2], [2, 2],
@@ -186,7 +169,7 @@ async function generateCursors(theme, outputPath) {
186
169
  [6, 8], [7, 8],
187
170
  ];
188
171
  for (const [px, py] of arrowPixels) {
189
- setPixel(buf, totalWidth, px, py, theme.accentColor);
172
+ setPixel(buf, totalWidth, size, px, py, accentCol);
190
173
  }
191
174
  // Fill inner arrow
192
175
  const arrowFill = [
@@ -196,14 +179,14 @@ async function generateCursors(theme, outputPath) {
196
179
  [0, 6], [1, 6],
197
180
  ];
198
181
  for (const [px, py] of arrowFill) {
199
- setPixel(buf, totalWidth, px, py, theme.textColor);
182
+ setPixel(buf, totalWidth, size, px, py, textCol);
200
183
  }
201
184
  // Simple crosshair (state 3) — centered at offset 3*16
202
185
  for (let i = 2; i <= 12; i++) {
203
186
  if (i >= 6 && i <= 8)
204
187
  continue;
205
- setPixel(buf, totalWidth, 3 * size + i, 7, theme.accentColor);
206
- setPixel(buf, totalWidth, 3 * size + 7, i, theme.accentColor);
188
+ setPixel(buf, totalWidth, size, 3 * size + i, 7, accentCol);
189
+ setPixel(buf, totalWidth, size, 3 * size + 7, i, accentCol);
207
190
  }
208
191
  await sharp(buf, { raw: { width: totalWidth, height: size, channels: 4 } })
209
192
  .png()