feat(backend): Implement base framework for Perks, Skills, and Derived Stats
This commit is contained in:
194
gamedata/perks.json
Normal file
194
gamedata/perks.json
Normal file
@@ -0,0 +1,194 @@
|
||||
{
|
||||
"perks": {
|
||||
"heavy_hitter": {
|
||||
"name": {
|
||||
"en": "Heavy Hitter",
|
||||
"es": "Golpe Pesado"
|
||||
},
|
||||
"description": {
|
||||
"en": "+10% damage with two-handed weapons",
|
||||
"es": "+10% de daño con armas a dos manos"
|
||||
},
|
||||
"icon": "🔨",
|
||||
"requirements": {
|
||||
"strength": 10
|
||||
},
|
||||
"effects": {
|
||||
"two_handed_damage_bonus": 0.1
|
||||
}
|
||||
},
|
||||
"iron_fist": {
|
||||
"name": {
|
||||
"en": "Iron Fist",
|
||||
"es": "Puño de Hierro"
|
||||
},
|
||||
"description": {
|
||||
"en": "Unarmed attacks deal STR × 1 damage",
|
||||
"es": "Los ataques sin armas hacen STR × 1 de daño"
|
||||
},
|
||||
"icon": "👊",
|
||||
"requirements": {
|
||||
"strength": 20
|
||||
},
|
||||
"effects": {
|
||||
"unarmed_str_scaling": 1.0
|
||||
}
|
||||
},
|
||||
"fleet_footed": {
|
||||
"name": {
|
||||
"en": "Fleet Footed",
|
||||
"es": "Pies Ligeros"
|
||||
},
|
||||
"description": {
|
||||
"en": "-20% stamina cost on travel",
|
||||
"es": "-20% de coste de aguante al viajar"
|
||||
},
|
||||
"icon": "🏃",
|
||||
"requirements": {
|
||||
"agility": 10
|
||||
},
|
||||
"effects": {
|
||||
"travel_stamina_reduction": 0.2
|
||||
}
|
||||
},
|
||||
"lucky_strike": {
|
||||
"name": {
|
||||
"en": "Lucky Strike",
|
||||
"es": "Golpe de Suerte"
|
||||
},
|
||||
"description": {
|
||||
"en": "+5% crit chance",
|
||||
"es": "+5% de probabilidad de crítico"
|
||||
},
|
||||
"icon": "🍀",
|
||||
"requirements": {
|
||||
"agility": 20
|
||||
},
|
||||
"effects": {
|
||||
"crit_chance_bonus": 0.05
|
||||
}
|
||||
},
|
||||
"thick_skin": {
|
||||
"name": {
|
||||
"en": "Thick Skin",
|
||||
"es": "Piel Gruesa"
|
||||
},
|
||||
"description": {
|
||||
"en": "+10% max HP",
|
||||
"es": "+10% de vida máxima"
|
||||
},
|
||||
"icon": "🛡️",
|
||||
"requirements": {
|
||||
"endurance": 10
|
||||
},
|
||||
"effects": {
|
||||
"max_hp_bonus_percent": 0.1
|
||||
}
|
||||
},
|
||||
"resilient": {
|
||||
"name": {
|
||||
"en": "Resilient",
|
||||
"es": "Resistente"
|
||||
},
|
||||
"description": {
|
||||
"en": "Status effects last 1 fewer turn (min 1)",
|
||||
"es": "Los efectos de estado duran 1 turno menos (mín 1)"
|
||||
},
|
||||
"icon": "💪",
|
||||
"requirements": {
|
||||
"endurance": 20
|
||||
},
|
||||
"effects": {
|
||||
"status_duration_reduction": 1
|
||||
}
|
||||
},
|
||||
"quick_learner": {
|
||||
"name": {
|
||||
"en": "Quick Learner",
|
||||
"es": "Aprendiz Rápido"
|
||||
},
|
||||
"description": {
|
||||
"en": "+15% XP gain",
|
||||
"es": "+15% de experiencia ganada"
|
||||
},
|
||||
"icon": "📖",
|
||||
"requirements": {
|
||||
"intellect": 10
|
||||
},
|
||||
"effects": {
|
||||
"xp_bonus": 0.15
|
||||
}
|
||||
},
|
||||
"scavenger": {
|
||||
"name": {
|
||||
"en": "Scavenger",
|
||||
"es": "Carroñero"
|
||||
},
|
||||
"description": {
|
||||
"en": "+1 quantity on consumable/resource drops",
|
||||
"es": "+1 cantidad en drops de consumibles/recursos"
|
||||
},
|
||||
"icon": "🦅",
|
||||
"requirements": {
|
||||
"intellect": 20
|
||||
},
|
||||
"effects": {
|
||||
"consumable_loot_bonus": 1
|
||||
}
|
||||
},
|
||||
"survivor": {
|
||||
"name": {
|
||||
"en": "Survivor",
|
||||
"es": "Superviviente"
|
||||
},
|
||||
"description": {
|
||||
"en": "Heal 2% max HP every combat turn",
|
||||
"es": "Cura 2% de vida máxima cada turno de combate"
|
||||
},
|
||||
"icon": "❤️🩹",
|
||||
"requirements": {
|
||||
"endurance": 15,
|
||||
"agility": 10
|
||||
},
|
||||
"effects": {
|
||||
"combat_regen_percent": 0.02
|
||||
}
|
||||
},
|
||||
"glass_cannon": {
|
||||
"name": {
|
||||
"en": "Glass Cannon",
|
||||
"es": "Cañón de Cristal"
|
||||
},
|
||||
"description": {
|
||||
"en": "+30% damage, -20% max HP",
|
||||
"es": "+30% de daño, -20% de vida máxima"
|
||||
},
|
||||
"icon": "💣",
|
||||
"requirements": {
|
||||
"strength": 20,
|
||||
"endurance_max": 8
|
||||
},
|
||||
"effects": {
|
||||
"damage_bonus": 0.3,
|
||||
"max_hp_penalty_percent": 0.2
|
||||
}
|
||||
},
|
||||
"last_stand": {
|
||||
"name": {
|
||||
"en": "Last Stand",
|
||||
"es": "Última Resistencia"
|
||||
},
|
||||
"description": {
|
||||
"en": "Once per combat, survive lethal damage with 1 HP",
|
||||
"es": "Una vez por combate, sobrevive daño letal con 1 de vida"
|
||||
},
|
||||
"icon": "💀",
|
||||
"requirements": {
|
||||
"endurance": 30
|
||||
},
|
||||
"effects": {
|
||||
"cheat_death": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
332
gamedata/skills.json
Normal file
332
gamedata/skills.json
Normal file
@@ -0,0 +1,332 @@
|
||||
{
|
||||
"skills": {
|
||||
"power_strike": {
|
||||
"name": {
|
||||
"en": "Power Strike",
|
||||
"es": "Golpe Poderoso"
|
||||
},
|
||||
"description": {
|
||||
"en": "A devastating blow with 20% chance to stun",
|
||||
"es": "Un golpe devastador con 20% de probabilidad de aturdir"
|
||||
},
|
||||
"icon": "💥",
|
||||
"stat_requirement": "strength",
|
||||
"stat_threshold": 8,
|
||||
"level_requirement": 5,
|
||||
"cooldown": 3,
|
||||
"stamina_cost": 5,
|
||||
"effects": {
|
||||
"damage_multiplier": 1.8,
|
||||
"stun_chance": 0.2,
|
||||
"stun_duration": 1
|
||||
}
|
||||
},
|
||||
"crushing_blow": {
|
||||
"name": {
|
||||
"en": "Crushing Blow",
|
||||
"es": "Golpe Aplastante"
|
||||
},
|
||||
"description": {
|
||||
"en": "Heavy strike that ignores 50% of enemy armor",
|
||||
"es": "Golpe pesado que ignora el 50% de la armadura enemiga"
|
||||
},
|
||||
"icon": "🔨",
|
||||
"stat_requirement": "strength",
|
||||
"stat_threshold": 15,
|
||||
"level_requirement": 12,
|
||||
"cooldown": 4,
|
||||
"stamina_cost": 7,
|
||||
"effects": {
|
||||
"damage_multiplier": 1.5,
|
||||
"armor_penetration": 0.5
|
||||
}
|
||||
},
|
||||
"berserker_rage": {
|
||||
"name": {
|
||||
"en": "Berserker Rage",
|
||||
"es": "Furia Berserker"
|
||||
},
|
||||
"description": {
|
||||
"en": "+50% damage for 3 turns, but +25% damage taken",
|
||||
"es": "+50% de daño durante 3 turnos, pero +25% de daño recibido"
|
||||
},
|
||||
"icon": "🔥",
|
||||
"stat_requirement": "strength",
|
||||
"stat_threshold": 25,
|
||||
"level_requirement": 20,
|
||||
"cooldown": 6,
|
||||
"stamina_cost": 10,
|
||||
"effects": {
|
||||
"buff": "berserker_rage",
|
||||
"buff_duration": 3,
|
||||
"damage_bonus": 0.5,
|
||||
"damage_taken_increase": 0.25
|
||||
}
|
||||
},
|
||||
"execution": {
|
||||
"name": {
|
||||
"en": "Execution",
|
||||
"es": "Ejecución"
|
||||
},
|
||||
"description": {
|
||||
"en": "300% damage if target below 25% HP, else 100%",
|
||||
"es": "300% de daño si el objetivo está por debajo del 25% de vida, si no 100%"
|
||||
},
|
||||
"icon": "⚰️",
|
||||
"stat_requirement": "strength",
|
||||
"stat_threshold": 40,
|
||||
"level_requirement": 35,
|
||||
"cooldown": 8,
|
||||
"stamina_cost": 8,
|
||||
"effects": {
|
||||
"damage_multiplier": 1.0,
|
||||
"execute_threshold": 0.25,
|
||||
"execute_multiplier": 3.0
|
||||
}
|
||||
},
|
||||
"quick_slash": {
|
||||
"name": {
|
||||
"en": "Quick Slash",
|
||||
"es": "Tajo Rápido"
|
||||
},
|
||||
"description": {
|
||||
"en": "Attack twice at 60% power each",
|
||||
"es": "Ataca dos veces al 60% de poder cada una"
|
||||
},
|
||||
"icon": "🗡️",
|
||||
"stat_requirement": "agility",
|
||||
"stat_threshold": 8,
|
||||
"level_requirement": 5,
|
||||
"cooldown": 2,
|
||||
"stamina_cost": 3,
|
||||
"effects": {
|
||||
"hits": 2,
|
||||
"damage_multiplier": 0.6
|
||||
}
|
||||
},
|
||||
"evade": {
|
||||
"name": {
|
||||
"en": "Evade",
|
||||
"es": "Evadir"
|
||||
},
|
||||
"description": {
|
||||
"en": "Guaranteed dodge on the next incoming attack",
|
||||
"es": "Esquivar garantizado en el próximo ataque recibido"
|
||||
},
|
||||
"icon": "🏃",
|
||||
"stat_requirement": "agility",
|
||||
"stat_threshold": 15,
|
||||
"level_requirement": 12,
|
||||
"cooldown": 3,
|
||||
"stamina_cost": 4,
|
||||
"effects": {
|
||||
"buff": "evade",
|
||||
"buff_duration": 1,
|
||||
"guaranteed_dodge": true
|
||||
}
|
||||
},
|
||||
"poisoned_blade": {
|
||||
"name": {
|
||||
"en": "Poisoned Blade",
|
||||
"es": "Hoja Envenenada"
|
||||
},
|
||||
"description": {
|
||||
"en": "80% damage + poison (3 dmg/turn for 4 turns)",
|
||||
"es": "80% de daño + veneno (3 de daño/turno durante 4 turnos)"
|
||||
},
|
||||
"icon": "🧪",
|
||||
"stat_requirement": "agility",
|
||||
"stat_threshold": 25,
|
||||
"level_requirement": 20,
|
||||
"cooldown": 5,
|
||||
"stamina_cost": 6,
|
||||
"effects": {
|
||||
"damage_multiplier": 0.8,
|
||||
"poison_damage": 3,
|
||||
"poison_duration": 4
|
||||
}
|
||||
},
|
||||
"shadow_strike": {
|
||||
"name": {
|
||||
"en": "Shadow Strike",
|
||||
"es": "Golpe Sombrío"
|
||||
},
|
||||
"description": {
|
||||
"en": "250% damage, guaranteed critical hit",
|
||||
"es": "250% de daño, golpe crítico garantizado"
|
||||
},
|
||||
"icon": "🌑",
|
||||
"stat_requirement": "agility",
|
||||
"stat_threshold": 40,
|
||||
"level_requirement": 35,
|
||||
"cooldown": 7,
|
||||
"stamina_cost": 8,
|
||||
"effects": {
|
||||
"damage_multiplier": 2.5,
|
||||
"guaranteed_crit": true
|
||||
}
|
||||
},
|
||||
"fortify": {
|
||||
"name": {
|
||||
"en": "Fortify",
|
||||
"es": "Fortificar"
|
||||
},
|
||||
"description": {
|
||||
"en": "Reduce incoming damage by 60% for 2 turns",
|
||||
"es": "Reduce el daño recibido en un 60% durante 2 turnos"
|
||||
},
|
||||
"icon": "🛡️",
|
||||
"stat_requirement": "endurance",
|
||||
"stat_threshold": 8,
|
||||
"level_requirement": 5,
|
||||
"cooldown": 3,
|
||||
"stamina_cost": 4,
|
||||
"effects": {
|
||||
"buff": "fortify",
|
||||
"buff_duration": 2,
|
||||
"damage_reduction": 0.6
|
||||
}
|
||||
},
|
||||
"second_wind": {
|
||||
"name": {
|
||||
"en": "Second Wind",
|
||||
"es": "Segundo Aliento"
|
||||
},
|
||||
"description": {
|
||||
"en": "Restore 20% of max HP",
|
||||
"es": "Restaura el 20% de la vida máxima"
|
||||
},
|
||||
"icon": "💚",
|
||||
"stat_requirement": "endurance",
|
||||
"stat_threshold": 15,
|
||||
"level_requirement": 12,
|
||||
"cooldown": 5,
|
||||
"stamina_cost": 6,
|
||||
"effects": {
|
||||
"heal_percent": 0.2
|
||||
}
|
||||
},
|
||||
"iron_skin": {
|
||||
"name": {
|
||||
"en": "Iron Skin",
|
||||
"es": "Piel de Hierro"
|
||||
},
|
||||
"description": {
|
||||
"en": "Immune to status effects for 3 turns",
|
||||
"es": "Inmune a efectos de estado durante 3 turnos"
|
||||
},
|
||||
"icon": "🪨",
|
||||
"stat_requirement": "endurance",
|
||||
"stat_threshold": 25,
|
||||
"level_requirement": 20,
|
||||
"cooldown": 6,
|
||||
"stamina_cost": 8,
|
||||
"effects": {
|
||||
"buff": "iron_skin",
|
||||
"buff_duration": 3,
|
||||
"status_immunity": true
|
||||
}
|
||||
},
|
||||
"adrenaline_rush": {
|
||||
"name": {
|
||||
"en": "Adrenaline Rush",
|
||||
"es": "Subida de Adrenalina"
|
||||
},
|
||||
"description": {
|
||||
"en": "Restore 30% of max stamina (free to use)",
|
||||
"es": "Restaura el 30% del aguante máximo (sin coste)"
|
||||
},
|
||||
"icon": "⚡",
|
||||
"stat_requirement": "endurance",
|
||||
"stat_threshold": 40,
|
||||
"level_requirement": 35,
|
||||
"cooldown": 8,
|
||||
"stamina_cost": 0,
|
||||
"effects": {
|
||||
"stamina_restore_percent": 0.3
|
||||
}
|
||||
},
|
||||
"analyze": {
|
||||
"name": {
|
||||
"en": "Analyze",
|
||||
"es": "Analizar"
|
||||
},
|
||||
"description": {
|
||||
"en": "Reveal enemy HP%, next attack, and weakness",
|
||||
"es": "Revela el % de vida del enemigo, su próximo ataque y debilidad"
|
||||
},
|
||||
"icon": "🔍",
|
||||
"stat_requirement": "intellect",
|
||||
"stat_threshold": 8,
|
||||
"level_requirement": 5,
|
||||
"cooldown": 2,
|
||||
"stamina_cost": 2,
|
||||
"effects": {
|
||||
"reveal_hp": true,
|
||||
"reveal_intent": true,
|
||||
"mark_analyzed": true
|
||||
}
|
||||
},
|
||||
"exploit_weakness": {
|
||||
"name": {
|
||||
"en": "Exploit Weakness",
|
||||
"es": "Explotar Debilidad"
|
||||
},
|
||||
"description": {
|
||||
"en": "200% damage if Analyze was used this combat",
|
||||
"es": "200% de daño si se usó Analizar en este combate"
|
||||
},
|
||||
"icon": "🎯",
|
||||
"stat_requirement": "intellect",
|
||||
"stat_threshold": 15,
|
||||
"level_requirement": 12,
|
||||
"cooldown": 4,
|
||||
"stamina_cost": 5,
|
||||
"effects": {
|
||||
"damage_multiplier": 2.0,
|
||||
"requires_analyzed": true
|
||||
}
|
||||
},
|
||||
"drain_life": {
|
||||
"name": {
|
||||
"en": "Drain Life",
|
||||
"es": "Drenar Vida"
|
||||
},
|
||||
"description": {
|
||||
"en": "100% damage, heal for 50% of damage dealt",
|
||||
"es": "100% de daño, cura el 50% del daño causado"
|
||||
},
|
||||
"icon": "🩸",
|
||||
"stat_requirement": "intellect",
|
||||
"stat_threshold": 25,
|
||||
"level_requirement": 20,
|
||||
"cooldown": 5,
|
||||
"stamina_cost": 6,
|
||||
"effects": {
|
||||
"damage_multiplier": 1.0,
|
||||
"lifesteal": 0.5
|
||||
}
|
||||
},
|
||||
"foresight": {
|
||||
"name": {
|
||||
"en": "Foresight",
|
||||
"es": "Premonición"
|
||||
},
|
||||
"description": {
|
||||
"en": "Enemy's next 2 attacks automatically miss",
|
||||
"es": "Los próximos 2 ataques del enemigo fallan automáticamente"
|
||||
},
|
||||
"icon": "👁️",
|
||||
"stat_requirement": "intellect",
|
||||
"stat_threshold": 40,
|
||||
"level_requirement": 35,
|
||||
"cooldown": 7,
|
||||
"stamina_cost": 7,
|
||||
"effects": {
|
||||
"buff": "foresight",
|
||||
"buff_duration": 2,
|
||||
"enemy_miss": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user