Files
grimhold/app/game_data.py
T

214 lines
6.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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,
}
}