|
|
@@ -109,6 +109,18 @@ BASE_SYMBOLS = {
|
|
|
("symbol_coin", "a shiny golden coin fruit slot symbol"),
|
|
|
("symbol_seven", "a red lucky seven fruit slot symbol with gold trim"),
|
|
|
],
|
|
|
+ "pirate": [
|
|
|
+ ("symbol_treasure_chest", "a glossy pirate treasure chest overflowing with bright gold coins, premium mobile slot icon"),
|
|
|
+ ("symbol_pirate_hat", "a black pirate captain hat with gold trim and skull emblem, polished 3D slot symbol"),
|
|
|
+ ("symbol_parrot", "a cute colorful pirate parrot, bright tropical mobile slot symbol, clean edges"),
|
|
|
+ ("symbol_compass", "a golden pirate compass with blue glass face, polished 3D slot icon"),
|
|
|
+ ("symbol_map_scatter", "a rolled treasure map with red X mark, parchment and gold trim, glossy slot symbol, no text"),
|
|
|
+ ("symbol_anchor", "a shiny gold anchor wrapped with rope, pirate treasure slot icon"),
|
|
|
+ ("symbol_ship", "a cute miniature pirate ship with black sails on blue waves, polished 3D icon"),
|
|
|
+ ("symbol_gem", "a bright blue jewel gemstone on gold coins, premium pirate slot icon"),
|
|
|
+ ("symbol_cannon", "a cute stylized pirate cannon with gold details, mobile slot symbol"),
|
|
|
+ ("symbol_coin", "a shiny golden pirate coin with skull emboss, glossy slot icon"),
|
|
|
+ ],
|
|
|
"pirate_jelly": [
|
|
|
("jelly_pirate_red", "a red translucent jelly pirate mascot with a black skull pirate hat, winking, glossy gummy texture, cute mobile slot symbol"),
|
|
|
("jelly_pirate_pink", "a pink jelly candy pirate mascot holding a tiny gold coin, cheerful face, glossy 3D gummy texture"),
|
|
|
@@ -125,12 +137,22 @@ BASE_SYMBOLS = {
|
|
|
|
|
|
|
|
|
UI_ART = [
|
|
|
+ ("cover", False, "1024x1536", "vertical mobile game cover key art, title-safe top area, hero mascot and theme world, premium app store style, no small text"),
|
|
|
+ ("loading_screen", False, "1024x1536", "vertical mobile game loading screen background, theme world, clear center area for progress bar, no characters, no text"),
|
|
|
("bg_main", False, "1024x1536", "vertical mobile slot game background, clear top area for logo, central reel area, bright themed world, no characters, no text"),
|
|
|
("logo", True, "1024x1024", "glossy mobile slot game logo lettering, playful premium game title, thick outline, sparkles, transparent background"),
|
|
|
("reel_frame", True, "1024x1024", "rounded rectangle slot machine reel frame, glowing border, hollow transparent center, clean mobile game UI element"),
|
|
|
("btn_spin", True, "1024x1024", "large round glossy spin button with circular arrows icon, premium 3D mobile game button, transparent background"),
|
|
|
("btn_round", True, "1024x1024", "small round glossy secondary mobile game UI button, blank center, transparent background"),
|
|
|
+ ("btn_minus", True, "1024x1024", "small glossy circular minus button with a clear minus icon, mobile game UI, transparent background"),
|
|
|
+ ("btn_plus", True, "1024x1024", "small glossy circular plus button with a clear plus icon, mobile game UI, transparent background"),
|
|
|
+ ("btn_turbo", True, "1024x1024", "small glossy turbo lightning button icon, mobile slot game UI, transparent background"),
|
|
|
+ ("btn_auto", True, "1024x1024", "small glossy auto spin button icon with circular arrow, mobile slot game UI, transparent background"),
|
|
|
("hud_pill", True, "1024x1024", "horizontal rounded pill shaped mobile game HUD panel, glossy dark translucent material, blank, transparent background"),
|
|
|
+ ("coin", True, "1024x1024", "single shiny golden coin particle sprite, round clean edges, mobile game VFX asset, transparent background"),
|
|
|
+ ("menu_panel", True, "1024x1024", "large rounded mobile game menu panel frame, glossy themed material, blank center, transparent background"),
|
|
|
+ ("settings_panel", True, "1024x1024", "mobile game settings popup panel frame, glossy themed material, blank center, transparent background"),
|
|
|
+ ("paytable_panel", True, "1024x1024", "mobile slot paytable popup panel frame, glossy themed material, blank center, transparent background"),
|
|
|
("win_popup", True, "1024x1024", "big win popup frame, glossy gold and candy highlights, blank center, transparent background"),
|
|
|
("free_spin_badge", True, "1024x1024", "free spins bonus badge, glossy premium mobile slot UI, blank center, transparent background"),
|
|
|
]
|
|
|
@@ -423,6 +445,29 @@ def build_manifest(slot_config):
|
|
|
}
|
|
|
|
|
|
|
|
|
+def complete_manifest(manifest):
|
|
|
+ """Fill missing generated sections before running the image pipeline.
|
|
|
+
|
|
|
+ Older or hand-edited manifests may only contain characters. When a
|
|
|
+ slot_config exists, it is the source of truth for the complete asset plan.
|
|
|
+ """
|
|
|
+ manifest = copy.deepcopy(manifest or {})
|
|
|
+ if manifest.get("slot_config"):
|
|
|
+ full = build_manifest(manifest["slot_config"])
|
|
|
+ for key in ("game", "style", "characters", "ui_art", "vfx", "ui"):
|
|
|
+ manifest[key] = full.get(key)
|
|
|
+ manifest["slot_config"] = full.get("slot_config", manifest["slot_config"])
|
|
|
+ return manifest
|
|
|
+ if not manifest.get("ui_art"):
|
|
|
+ manifest["ui_art"] = [
|
|
|
+ {"id": aid, "transparent": transparent, "size": size, "prompt": prompt}
|
|
|
+ for aid, transparent, size, prompt in UI_ART
|
|
|
+ ]
|
|
|
+ manifest.setdefault("vfx", [])
|
|
|
+ manifest.setdefault("ui", [])
|
|
|
+ return manifest
|
|
|
+
|
|
|
+
|
|
|
def build_workflow(data):
|
|
|
slot_config = build_slot_config(data or {})
|
|
|
manifest = build_manifest(slot_config)
|