✅ PHASE 1 COMPLETE (Preparation): - CropGrowthSeasonSystem.js implemented (8 stages, 4 seasons, environment tinting) - 173 crop sprites organized in /assets/crops/faza1/ - Visual catalog created (tools/faza1_crop_catalog.html) - Fresh Tiled workspace prepared (fresh_workspace.tmx) 📝 GENERATION READY (113 sprites): - Asset manifest complete (KICKSTARTER_DEMO_ASSET_MANIFEST.md) - Generation script ready (generate_kickstarter_demo_assets.py) - Build checklist prepared (KICKSTARTER_BUILD_CHECKLIST.md) 🎯 ASSETS TO GENERATE: - 24 bug sprites (Common to Legendary) - 63 tool sprites (10 types × 6 tiers + enchanted) - 6 Ivan NPC sprites - 8 Blacksmith building sprites - 6 Repair Bench & UI sprites - 3 missing crops (pumpkin winter) - 3 item icons (wood, stone, bread) ⏰ STATUS: Awaiting API quota reset (01:19 CET - ~7 min) 🚀 NEXT: Auto-generate all 113 assets → Integration → DEMO COMPLETE
205 lines
8.7 KiB
Python
205 lines
8.7 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Kickstarter Demo - Batch Asset Generator
|
||
Generates all 113 remaining assets for the demo after API quota reset
|
||
"""
|
||
|
||
import time
|
||
from pathlib import Path
|
||
|
||
# Asset generation manifest
|
||
ASSETS_TO_GENERATE = {
|
||
# 🐞 BUG SYSTEM (24 sprites)
|
||
'bugs': {
|
||
'common': [
|
||
('butterfly_common', 'Common butterfly, orange and black wings, flying, chibi'),
|
||
('ladybug', 'Red ladybug with black spots, cute chibi style'),
|
||
('bee', 'Yellow and black honey bee, fuzzy, chibi'),
|
||
('ant', 'Small black ant, carrying leaf, chibi'),
|
||
('firefly', 'Glowing firefly, light effect, night, chibi'),
|
||
('grasshopper', 'Green grasshopper, jumping pose, chibi'),
|
||
],
|
||
'uncommon': [
|
||
('monarch_butterfly', 'Monarch butterfly, vibrant orange, detailed wings'),
|
||
('dragonfly', 'Dragonfly with iridescent wings, blue-green'),
|
||
('praying_mantis', 'Green praying mantis, hunting pose'),
|
||
('luna_moth', 'Pale green luna moth, large wings, nocturnal'),
|
||
('cicada', 'Brown cicada, detailed wings'),
|
||
('japanese_beetle', 'Metallic green Japanese beetle'),
|
||
],
|
||
'rare': [
|
||
('rainbow_beetle', 'Rainbow beetle with prismatic shell, iridescent'),
|
||
('atlas_moth', 'Giant atlas moth with detailed wing patterns'),
|
||
('orchid_mantis', 'Pink and white orchid mantis, flower camouflage'),
|
||
('jewel_wasp', 'Metallic emerald green jewel wasp'),
|
||
('hercules_beetle', 'Large horned Hercules beetle, powerful'),
|
||
('blue_morpho', 'Electric blue Morpho butterfly, glowing'),
|
||
],
|
||
'legendary': [
|
||
('golden_scarab', 'Golden scarab beetle, glowing aura, magical'),
|
||
('crystal_butterfly', 'Translucent crystal butterfly, ethereal'),
|
||
('phoenix_moth', 'Fire-themed phoenix moth, flame wings'),
|
||
('shadow_mantis', 'Dark purple shadow mantis, mysterious aura'),
|
||
('rainbow_stag_beetle', 'Rainbow prismatic stag beetle with large horns'),
|
||
('lunar_butterfly', 'Moon-glowing butterfly, silvery white'),
|
||
]
|
||
},
|
||
|
||
# 🔨 TOOLS (63 sprites - 10 types × 6 tiers + 3 enchanted)
|
||
'tools': {
|
||
'hoe': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'watering_can': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'axe': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'pickaxe': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'scythe': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'hammer': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'fishing_rod': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'bug_net': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'sword': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
'shovel': ['tier1_wood', 'tier2_steel', 'tier3_gold', 'tier4_emerald', 'tier5_diamond', 'tier6_ultimate'],
|
||
},
|
||
|
||
# 👨🔧 IVAN BLACKSMITH (6 sprites)
|
||
'ivan_npc': [
|
||
('ivan_portrait_64x64', 'Burly blacksmith portrait, bearded, leather apron, soot on face'),
|
||
('ivan_idle_down', 'Blacksmith standing, facing down, muscular chibi'),
|
||
('ivan_idle_up', 'Blacksmith standing, facing up'),
|
||
('ivan_idle_left', 'Blacksmith standing, facing left'),
|
||
('ivan_idle_right', 'Blacksmith standing, facing right'),
|
||
('ivan_working', 'Blacksmith hammering at anvil, work animation'),
|
||
],
|
||
|
||
# 🏚️ BLACKSMITH BUILDING (8 sprites)
|
||
'blacksmith_building': [
|
||
('ruined_32x32', 'Ruined blacksmith, collapsed roof, broken walls'),
|
||
('ruined_64x64', 'Ruined blacksmith, larger view'),
|
||
('ruined_96x96', 'Ruined blacksmith, detailed damage'),
|
||
('ruined_128x64', 'Ruined blacksmith, full building view'),
|
||
('restored_32x32', 'Restored blacksmith, sturdy, smoke from chimney'),
|
||
('restored_64x64', 'Restored blacksmith, larger view'),
|
||
('restored_96x96', 'Restored blacksmith, detailed'),
|
||
('restored_128x64', 'Restored blacksmith, full building with anvil visible'),
|
||
],
|
||
|
||
# 🛠️ REPAIR BENCH & UI (6 sprites)
|
||
'repair_bench': [
|
||
('bench_32x32', 'Wooden repair workbench, tools scattered'),
|
||
('bench_64x32', 'Wider repair bench with anvil'),
|
||
('anvil_icon', 'Anvil icon for UI, 32x32'),
|
||
('hammer_icon', 'Hammer icon for UI, 32x32'),
|
||
('enchant_glow_red', 'Red particle glow effect, 16x16'),
|
||
('enchant_glow_blue', 'Blue particle glow effect, 16x16'),
|
||
],
|
||
|
||
# 🌾 MISSING CROPS (3 sprites)
|
||
'crops': [
|
||
('pumpkin_winter_s2', 'Pumpkin sprout in winter, frost, cool tones'),
|
||
('pumpkin_winter_s3', 'Young pumpkin vine in winter, cold'),
|
||
('pumpkin_winter_s6', 'Ripe pumpkin in winter, frozen harvest'),
|
||
],
|
||
|
||
# 📦 ITEM ICONS (3 sprites)
|
||
'items': [
|
||
('wood_icon', 'Stack of wooden logs, brown'),
|
||
('stone_icon', 'Pile of gray rocks, stones'),
|
||
('bread_icon', 'Loaf of bread, golden brown'),
|
||
]
|
||
}
|
||
|
||
def generate_asset(category, name, description):
|
||
"""
|
||
Generate single asset using the generate_image tool
|
||
|
||
NOTE: This is a TEMPLATE script. Actual generation will be done
|
||
via the Gemini Agent's generate_image tool after quota reset.
|
||
|
||
This script serves as the manifest and organization guide.
|
||
"""
|
||
print(f" 📸 {category}/{name}.png - {description}")
|
||
|
||
# Prompt template for Style 32
|
||
style_spec = "Style 32 Dark-Chibi Noir, 32x32px, thick black outlines, chibi proportions, top-down view, post-apocalyptic garden aesthetic, vibrant colors, centered sprite"
|
||
|
||
full_prompt = f"{description}, {style_spec}"
|
||
|
||
# Return prompt for agent to use
|
||
return {
|
||
'name': f"{category}_{name}",
|
||
'prompt': full_prompt,
|
||
'category': category
|
||
}
|
||
|
||
def main():
|
||
print("=" * 60)
|
||
print("🎯 KICKSTARTER DEMO - ASSET GENERATION MANIFEST")
|
||
print("=" * 60)
|
||
|
||
generation_list = []
|
||
total_count = 0
|
||
|
||
# 1. BUGS
|
||
print("\n🐞 BUG SYSTEM:")
|
||
for rarity, bugs in ASSETS_TO_GENERATE['bugs'].items():
|
||
print(f"\n {rarity.upper()}:")
|
||
for bug_name, description in bugs:
|
||
asset = generate_asset('bugs', f"{rarity}_{bug_name}", description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# 2. TOOLS
|
||
print("\n\n🔨 TOOL SYSTEM:")
|
||
for tool_type, tiers in ASSETS_TO_GENERATE['tools'].items():
|
||
print(f"\n {tool_type.upper()}:")
|
||
for tier in tiers:
|
||
description = f"{tool_type} tool, {tier.replace('_', ' ')}, game icon"
|
||
asset = generate_asset('tools', f"{tool_type}_{tier}", description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# 3. IVAN BLACKSMITH
|
||
print("\n\n👨🔧 IVAN BLACKSMITH NPC:")
|
||
for name, description in ASSETS_TO_GENERATE['ivan_npc']:
|
||
asset = generate_asset('npc', name, description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# 4. BLACKSMITH BUILDING
|
||
print("\n\n🏚️ BLACKSMITH BUILDING:")
|
||
for name, description in ASSETS_TO_GENERATE['blacksmith_building']:
|
||
asset = generate_asset('buildings', name, description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# 5. REPAIR BENCH
|
||
print("\n\n🛠️ REPAIR BENCH & UI:")
|
||
for name, description in ASSETS_TO_GENERATE['repair_bench']:
|
||
asset = generate_asset('ui', name, description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# 6. MISSING CROPS
|
||
print("\n\n🌾 MISSING CROP SPRITES:")
|
||
for name, description in ASSETS_TO_GENERATE['crops']:
|
||
asset = generate_asset('crops', name, description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# 7. ITEM ICONS
|
||
print("\n\n📦 ITEM ICONS:")
|
||
for name, description in ASSETS_TO_GENERATE['items']:
|
||
asset = generate_asset('items', name, description)
|
||
generation_list.append(asset)
|
||
total_count += 1
|
||
|
||
# Summary
|
||
print("\n" + "=" * 60)
|
||
print(f"📊 TOTAL ASSETS TO GENERATE: {total_count}")
|
||
print("=" * 60)
|
||
|
||
print("\n⏰ WAITING FOR API QUOTA RESET...")
|
||
print("🎯 After reset, agent will generate all assets automatically")
|
||
print("\n✅ This manifest is ready for execution!")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|