Skip to content

Commit ccb55a4

Browse files
author
tom
committed
feat(godot): connecteurs mer Space_* entre les quadrants
Sprites Sp/connector_h/v, tailles proportionnelles et couloirs recentres dans sector_layout.
1 parent d0c348c commit ccb55a4

5 files changed

Lines changed: 79 additions & 63 deletions

File tree

godot/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,13 @@ Format des entrées : `AAAA-MM-JJ HH:MM:SS` (heure locale).
1919
- **`export_board_image.py`**, **`calibrate_sector_layout.py`** — outils référence (PNG composé optionnel)
2020
- **`assets/textures/board_reference.png`** — preview export 4 quadrants
2121

22+
### Réalisé (suite)
23+
24+
- **Connecteurs mer**`Space_*` rendus (Sp + `connector_h`/`connector_v`), tailles selon aspect atlas, positions couloirs entre quadrants
25+
2226
### À faire (prochaine étape critique)
2327

24-
- [ ] **Connecteurs mer** (`Space_*`) — sprites Sp1–Sp12 visibles entre quadrants
28+
- [ ] Synchroniser journal d’ordres sidebar ↔ `%OrdersLog` bataille
2529
- [ ] Tuiles directionnelles emboîtées (échelle Unity) si souhaité
2630
- [ ] `Battleground.unity` pour calibration pixel-perfect
2731
- [ ] Bombes H, combats détaillés, animations

godot/data/sector_layout.json

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -206,82 +206,82 @@
206206
},
207207
"Moon_N": {
208208
"x": 140.0,
209-
"y": 108.0,
209+
"y": 100.0,
210210
"r": 12
211211
},
212212
"Moon_S": {
213213
"x": 140.0,
214-
"y": 172.0,
214+
"y": 180.0,
215215
"r": 12
216216
},
217217
"Moon_W": {
218-
"x": 108.0,
218+
"x": 100.0,
219219
"y": 140.0,
220220
"r": 12
221221
},
222222
"Moon_E": {
223-
"x": 172.0,
223+
"x": 180.0,
224224
"y": 140.0,
225225
"r": 12
226226
},
227227
"Space_1": {
228-
"x": 124.0,
229-
"y": 124.0,
228+
"x": 118.0,
229+
"y": 118.0,
230230
"r": 10
231231
},
232232
"Space_2": {
233-
"x": 156.0,
234-
"y": 124.0,
233+
"x": 162.0,
234+
"y": 118.0,
235235
"r": 10
236236
},
237237
"Space_3": {
238-
"x": 156.0,
239-
"y": 156.0,
238+
"x": 162.0,
239+
"y": 162.0,
240240
"r": 10
241241
},
242242
"Space_4": {
243-
"x": 124.0,
244-
"y": 156.0,
243+
"x": 118.0,
244+
"y": 162.0,
245245
"r": 10
246246
},
247247
"Space_5": {
248-
"x": 96.0,
248+
"x": 92.0,
249249
"y": 140.0,
250250
"r": 10
251251
},
252252
"Space_6": {
253-
"x": 108.0,
254-
"y": 112.0,
253+
"x": 110.0,
254+
"y": 110.0,
255255
"r": 10
256256
},
257257
"Space_7": {
258-
"x": 172.0,
259-
"y": 112.0,
258+
"x": 170.0,
259+
"y": 110.0,
260260
"r": 10
261261
},
262262
"Space_8": {
263-
"x": 184.0,
263+
"x": 188.0,
264264
"y": 140.0,
265265
"r": 10
266266
},
267267
"Space_9": {
268-
"x": 172.0,
269-
"y": 168.0,
268+
"x": 170.0,
269+
"y": 170.0,
270270
"r": 10
271271
},
272272
"Space_10": {
273-
"x": 184.0,
274-
"y": 168.0,
273+
"x": 188.0,
274+
"y": 170.0,
275275
"r": 10
276276
},
277277
"Space_11": {
278-
"x": 108.0,
279-
"y": 168.0,
278+
"x": 110.0,
279+
"y": 170.0,
280280
"r": 10
281281
},
282282
"Space_12": {
283-
"x": 96.0,
284-
"y": 168.0,
283+
"x": 92.0,
284+
"y": 170.0,
285285
"r": 10
286286
},
287287
"_meta": {

godot/scripts/battle/board_map.gd

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -194,34 +194,19 @@ func _draw_layer(sector_id: String) -> int:
194194
return 1
195195

196196

197-
func _tile_design_diameter(sector_id: String) -> float:
198-
if sector_id.begins_with("HQ_"):
199-
return 34.0
200-
if sector_id == "Sun":
201-
return 36.0
202-
if sector_id.begins_with("Moon_"):
203-
return 22.0
204-
# Correspond à LAND_STEP — tuiles jointives sans empilement alpha excessif.
205-
return LAND_STEP
206-
207-
208197
func _draw_tiles(board: Rect2, sx: float, sy: float, scale: float) -> void:
209198
for sector_id: String in _sorted_sector_ids():
210-
# Connecteurs mer : zones cliquables conservées, rendu simplifié (fond bleu nuit).
211-
if sector_id.begins_with("Space_"):
212-
continue
213199
var d: Dictionary = _layout[sector_id] as Dictionary
214200
var cx := board.position.x + float(d["x"]) * sx
215201
var cy := board.position.y + float(d["y"]) * sy
216202
var tex: AtlasTexture = BoardAtlas.tile_texture(sector_id)
217203
if tex == null or tex.atlas == null:
218204
continue
219-
var native := BoardAtlas.tile_native_size(sector_id)
220-
var diameter := _tile_design_diameter(sector_id) * scale
221-
var fit := diameter / maxf(native.x, native.y)
222-
var w := native.x * fit
223-
var h := native.y * fit
224-
var rect := Rect2(Vector2(cx - w * 0.5, cy - h * 0.5), Vector2(w, h))
205+
var design := BoardAtlas.tile_design_size(sector_id) * scale
206+
var rect := Rect2(
207+
Vector2(cx - design.x * 0.5, cy - design.y * 0.5),
208+
design
209+
)
225210
draw_texture_rect(tex, rect, false, BoardAtlas.sector_tile_modulate(sector_id))
226211

227212

godot/scripts/core/board_atlas.gd

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ extends RefCounted
44

55
const ATLAS_PATH := "res://assets/textures/FORCE-AD-13a.png"
66
const DATA_PATH := "res://data/atlas_sprites.json"
7+
const LAND_STEP := 88.0 / 3.0
78

89
static var _data: Dictionary = {}
910
static var _texture: Texture2D
@@ -114,6 +115,8 @@ static func tile_sprite_id(sector_id: String) -> String:
114115
var sp_key := "Sp" + sector_id.trim_prefix("Space_")
115116
if shapes.has(sp_key):
116117
return str(shapes[sp_key])
118+
if sector_id in ["Space_5", "Space_8", "Space_12", "Space_11"]:
119+
return str(defaults.get("connector_v", "FORCE-AD-13a_83"))
117120
return str(defaults.get("connector_h", "FORCE-AD-13a_105"))
118121
if sector_id == "Sun" or sector_id.begins_with("Moon_"):
119122
return str(shapes.get("CE", defaults.get("neutral", "FORCE-AD-13a_77")))
@@ -153,6 +156,30 @@ static func tile_native_size(sector_id: String) -> Vector2:
153156
return Vector2(float(sz.x), float(sz.y))
154157

155158

159+
static func tile_design_size(sector_id: String) -> Vector2:
160+
if sector_id.begins_with("Space_"):
161+
return _sea_connector_design_size(sector_id)
162+
if sector_id.begins_with("HQ_"):
163+
return Vector2(34.0, 34.0)
164+
if sector_id == "Sun":
165+
return Vector2(36.0, 36.0)
166+
if sector_id.begins_with("Moon_"):
167+
return Vector2(22.0, 22.0)
168+
return Vector2(LAND_STEP, LAND_STEP)
169+
170+
171+
static func _sea_connector_design_size(sector_id: String) -> Vector2:
172+
var native := tile_native_size(sector_id)
173+
var long_side := 40.0
174+
if native.x > native.y * 1.25:
175+
var h := long_side * (native.y / native.x)
176+
return Vector2(long_side, h)
177+
if native.y > native.x * 1.25:
178+
var w := long_side * (native.x / native.y)
179+
return Vector2(w, long_side)
180+
return Vector2(20.0, 20.0)
181+
182+
156183
static func _camp_multiply_color(camp: GameConstants.Camp) -> Color:
157184
var tints: Dictionary = {
158185
GameConstants.Camp.GREEN: Color(1.0, 0.42, 0.38),

godot/tools/generate_sector_layout.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,22 @@
3939

4040
CENTER = {
4141
"Sun": (140.0, 140.0),
42-
"Moon_N": (140.0, 108.0),
43-
"Moon_S": (140.0, 172.0),
44-
"Moon_W": (108.0, 140.0),
45-
"Moon_E": (172.0, 140.0),
46-
"Space_1": (124.0, 124.0),
47-
"Space_2": (156.0, 124.0),
48-
"Space_3": (156.0, 156.0),
49-
"Space_4": (124.0, 156.0),
50-
"Space_5": (96.0, 140.0),
51-
"Space_6": (108.0, 112.0),
52-
"Space_7": (172.0, 112.0),
53-
"Space_8": (184.0, 140.0),
54-
"Space_9": (172.0, 168.0),
55-
"Space_10": (184.0, 168.0),
56-
"Space_11": (108.0, 168.0),
57-
"Space_12": (96.0, 168.0),
42+
"Moon_N": (140.0, 100.0),
43+
"Moon_S": (140.0, 180.0),
44+
"Moon_W": (100.0, 140.0),
45+
"Moon_E": (180.0, 140.0),
46+
"Space_1": (118.0, 118.0),
47+
"Space_2": (162.0, 118.0),
48+
"Space_3": (162.0, 162.0),
49+
"Space_4": (118.0, 162.0),
50+
"Space_5": (92.0, 140.0),
51+
"Space_6": (110.0, 110.0),
52+
"Space_7": (170.0, 110.0),
53+
"Space_8": (188.0, 140.0),
54+
"Space_9": (170.0, 170.0),
55+
"Space_10": (188.0, 170.0),
56+
"Space_11": (110.0, 170.0),
57+
"Space_12": (92.0, 170.0),
5858
}
5959

6060
layout: dict = {}

0 commit comments

Comments
 (0)