214 lines
6.6 KiB
Python
214 lines
6.6 KiB
Python
# 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,
|
||
}
|
||
} |