feat: Initial commit for GrimHold with requirements and INSTALL.md

This commit is contained in:
kobold-ai
2026-10-29 08:52:34 +01:00
commit dd8be9da06
17 changed files with 9772 additions and 0 deletions
+214
View File
@@ -0,0 +1,214 @@
# Game Data & Balance for GrimHold
GRID_SIZES = {
1: {"w": 16, "h": 10},
2: {"w": 20, "h": 12},
3: {"w": 24, "h": 14},
4: {"w": 26, "h": 15},
}
STORAGE_CAPACITIES = {
1: 1500,
2: 3500,
3: 7500,
4: 15000,
}
BUILDING_DEFINITIONS = {
"core": {
"name": "Schatzkammer & Zitadelle",
"description": "Das Herz deiner Festung. Beherbergt deine Beute. Stufe schaltet größeres Kachel-Terrain frei.",
"icon": "castle",
"category": "core",
"base_hp": 800,
"hp_per_lvl": 400,
"base_cost": {"wood": 250, "iron": 200, "food": 100, "essence": 20},
"cost_multiplier": 2.2,
"base_time": 45, # seconds for lvl 2
"time_multiplier": 2.0,
"is_unique": True,
"range": 0,
"damage": 0,
},
"woodcutter": {
"name": "Holzfäller-Posten",
"description": "Schlägt Bauholz im nahen Verfluchten Forst.",
"icon": "axe",
"category": "economy",
"base_hp": 250,
"hp_per_lvl": 80,
"base_cost": {"wood": 40, "iron": 15, "food": 10, "essence": 0},
"cost_multiplier": 1.6,
"base_time": 15,
"time_multiplier": 1.8,
"base_rate": 20.0 / 60.0, # 20 per minute
"rate_per_lvl": 15.0 / 60.0,
"range": 0,
"damage": 0,
},
"mine": {
"name": "Schrott- & Eisenschmelze",
"description": "Fördert und schmilzt Erze und Trümmer für Rüstung und Verteidigung.",
"icon": "anvil",
"category": "economy",
"base_hp": 300,
"hp_per_lvl": 100,
"base_cost": {"wood": 60, "iron": 30, "food": 20, "essence": 0},
"cost_multiplier": 1.7,
"base_time": 20,
"time_multiplier": 1.8,
"base_rate": 15.0 / 60.0, # 15 per minute
"rate_per_lvl": 12.0 / 60.0,
"range": 0,
"damage": 0,
},
"farm": {
"name": "Zufluchts-Küche & Jagd",
"description": "Versorgt Überlebende und stellt Proviant für Raids her.",
"icon": "drumstick",
"category": "economy",
"base_hp": 200,
"hp_per_lvl": 60,
"base_cost": {"wood": 35, "iron": 10, "food": 5, "essence": 0},
"cost_multiplier": 1.5,
"base_time": 10,
"time_multiplier": 1.8,
"base_rate": 25.0 / 60.0, # 25 per minute
"rate_per_lvl": 18.0 / 60.0,
"range": 0,
"damage": 0,
},
"wall": {
"name": "Wehrmauer & Palisade",
"description": "Blockiert Laufwege für Angreifer und lenkt sie in dein Labyrinth.",
"icon": "shield",
"category": "defense",
"base_hp": 350,
"hp_per_lvl": 150,
"base_cost": {"wood": 15, "iron": 10, "food": 0, "essence": 0},
"cost_multiplier": 1.5,
"base_time": 5,
"time_multiplier": 1.5,
"range": 0,
"damage": 0,
},
"ballista": {
"name": "Wachturm mit Balliste",
"description": "Feuert schwere Bolzen auf einzelne Angreifer in Sicht.",
"icon": "crosshair",
"category": "tower",
"base_hp": 260,
"hp_per_lvl": 90,
"base_cost": {"wood": 75, "iron": 45, "food": 20, "essence": 0},
"cost_multiplier": 1.7,
"base_time": 20,
"time_multiplier": 1.8,
"range": 3,
"damage": 75,
"damage_per_lvl": 25,
"aoe": False,
},
"catapult": {
"name": "Pech- & Brandkatapult",
"description": "Schleudert brennendes Pech. Verursacht Flächenschaden (AoE) auf 2–4 Felder Distanz.",
"icon": "flame",
"category": "tower",
"base_hp": 220,
"hp_per_lvl": 80,
"base_cost": {"wood": 110, "iron": 65, "food": 30, "essence": 5},
"cost_multiplier": 1.8,
"base_time": 30,
"time_multiplier": 1.8,
"range_min": 2,
"range": 4,
"damage": 45,
"damage_per_lvl": 15,
"aoe": True,
},
"crypt": {
"name": "Krypta-Magierturm",
"description": "Schießt dunkle Seelen-Strahlen, die Rüstung ignorieren und Angreifer verlangsamen.",
"icon": "sparkles",
"category": "tower",
"base_hp": 190,
"hp_per_lvl": 70,
"base_cost": {"wood": 90, "iron": 50, "food": 20, "essence": 25},
"cost_multiplier": 1.8,
"base_time": 25,
"time_multiplier": 1.8,
"range": 2,
"damage": 55,
"damage_per_lvl": 20,
"slow": 1,
"aoe": False,
},
"spike_trap": {
"name": "Verborgene Stachelfalle",
"description": "Unsichtbar für Angreifer! Schnappt zu, wenn ein Feind das Feld betritt (110 Schaden).",
"icon": "alert-triangle",
"category": "trap",
"base_hp": 50,
"hp_per_lvl": 20,
"base_cost": {"wood": 20, "iron": 20, "food": 0, "essence": 0},
"cost_multiplier": 1.4,
"base_time": 8,
"time_multiplier": 1.4,
"damage": 110,
"damage_per_lvl": 40,
"is_hidden": True,
},
"poison_trap": {
"name": "Verborgene Giftgas-Grube",
"description": "Unsichtbar! Vergiftet den Auslöser für 3 Runden (35 Schaden pro Runde).",
"icon": "skull",
"category": "trap",
"base_hp": 50,
"hp_per_lvl": 20,
"base_cost": {"wood": 25, "iron": 15, "food": 0, "essence": 15},
"cost_multiplier": 1.4,
"base_time": 10,
"time_multiplier": 1.4,
"poison_damage": 35,
"poison_duration": 3,
"is_hidden": True,
}
}
HERO_CLASSES = {
"tank": {
"name": "Schildbrecher",
"role": "Nahkampf-Tank & Barrikaden-Zertrümmerer",
"icon": "shield",
"max_hp": 460,
"atk": 70,
"range": 1,
"move": 3,
"skill_name": "Schildwall",
"skill_desc": "Reduziert erlittenen Turmschaden in dieser Runde um 50 %.",
"skill_cd": 3,
},
"archer": {
"name": "Waldläufer",
"role": "Präzisions-Fernkämpfer",
"icon": "target",
"max_hp": 250,
"atk": 85,
"range": 3,
"move": 3,
"skill_name": "Gezielter Schuss",
"skill_desc": "Feuert einen panzerbrechenden Pfeil mit 140 Schaden auf einen Turm.",
"skill_cd": 3,
},
"rogue": {
"name": "Schatten-Schurke",
"role": "Fallen-Spürer & Flanker",
"icon": "footprints",
"max_hp": 210,
"atk": 95,
"range": 1,
"move": 4,
"skill_name": "Fallen Aufdecken",
"skill_desc": "Deckt alle verborgenen Fallen im Umkreis von 3 Kacheln auf und entschärft angrenzende Fallen.",
"skill_cd": 2,
}
}