mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
vcmi: configurable charge
There is no reason not to make charge configurable. Just do it.
This commit is contained in:
parent
f26fac5562
commit
1e73c2e1e6
@ -213,7 +213,7 @@
|
|||||||
"core.bonus.HP_REGENERATION.name": "Regeneration",
|
"core.bonus.HP_REGENERATION.name": "Regeneration",
|
||||||
"core.bonus.HP_REGENERATION.description": "Heals ${val} hit points every round",
|
"core.bonus.HP_REGENERATION.description": "Heals ${val} hit points every round",
|
||||||
"core.bonus.JOUSTING.name": "Champion Charge",
|
"core.bonus.JOUSTING.name": "Champion Charge",
|
||||||
"core.bonus.JOUSTING.description": "+5% damage per hex travelled",
|
"core.bonus.JOUSTING.description": "+${val}% damage per hex travelled",
|
||||||
"core.bonus.KING1.name": "King 1",
|
"core.bonus.KING1.name": "King 1",
|
||||||
"core.bonus.KING1.description": "Vulnerable to basic SLAYER",
|
"core.bonus.KING1.description": "Vulnerable to basic SLAYER",
|
||||||
"core.bonus.KING2.name": "King 2",
|
"core.bonus.KING2.name": "King 2",
|
||||||
|
@ -211,7 +211,7 @@
|
|||||||
"core.bonus.HP_REGENERATION.name": "Regeneration",
|
"core.bonus.HP_REGENERATION.name": "Regeneration",
|
||||||
"core.bonus.HP_REGENERATION.description": "Heilt ${val} Trefferpunkte jede Runde",
|
"core.bonus.HP_REGENERATION.description": "Heilt ${val} Trefferpunkte jede Runde",
|
||||||
"core.bonus.JOUSTING.name": "Champion Charge",
|
"core.bonus.JOUSTING.name": "Champion Charge",
|
||||||
"core.bonus.JOUSTING.description": "+5% Schaden pro zurückgelegtem Feld",
|
"core.bonus.JOUSTING.description": "+${val}% Schaden pro zurückgelegtem Feld",
|
||||||
"core.bonus.KING1.name": "König 1",
|
"core.bonus.KING1.name": "König 1",
|
||||||
"core.bonus.KING1.description": "Anfällig für grundlegende SLAYER",
|
"core.bonus.KING1.description": "Anfällig für grundlegende SLAYER",
|
||||||
"core.bonus.KING2.name": "König 2",
|
"core.bonus.KING2.name": "König 2",
|
||||||
|
@ -141,7 +141,7 @@
|
|||||||
"core.bonus.HP_REGENERATION.name": "Regeneracja",
|
"core.bonus.HP_REGENERATION.name": "Regeneracja",
|
||||||
"core.bonus.HP_REGENERATION.description": "Leczy ${val} punktów zdrowia każdej rundy",
|
"core.bonus.HP_REGENERATION.description": "Leczy ${val} punktów zdrowia każdej rundy",
|
||||||
"core.bonus.JOUSTING.name": "Szarża Czempiona",
|
"core.bonus.JOUSTING.name": "Szarża Czempiona",
|
||||||
"core.bonus.JOUSTING.description": "+5% obrażeń na przebytego heksa",
|
"core.bonus.JOUSTING.description": "+${val}% obrażeń na przebytego heksa",
|
||||||
"core.bonus.KING1.name": "Król 1",
|
"core.bonus.KING1.name": "Król 1",
|
||||||
"core.bonus.KING1.description": "Wrażliwy na podstawowy czar POGROMCA",
|
"core.bonus.KING1.description": "Wrażliwy na podstawowy czar POGROMCA",
|
||||||
"core.bonus.KING2.name": "Król 2",
|
"core.bonus.KING2.name": "Król 2",
|
||||||
|
@ -226,7 +226,7 @@
|
|||||||
"core.bonus.HP_REGENERATION.name": "Регенерация",
|
"core.bonus.HP_REGENERATION.name": "Регенерация",
|
||||||
"core.bonus.HP_REGENERATION.description": "Исцеляет ${val} очков здоровья каждый ход",
|
"core.bonus.HP_REGENERATION.description": "Исцеляет ${val} очков здоровья каждый ход",
|
||||||
"core.bonus.JOUSTING.name": "Разгон",
|
"core.bonus.JOUSTING.name": "Разгон",
|
||||||
"core.bonus.JOUSTING.description": "+5% урона за каждую пройденную клетку",
|
"core.bonus.JOUSTING.description": "+${val}% урона за каждую пройденную клетку",
|
||||||
"core.bonus.KING1.name": "Король 1",
|
"core.bonus.KING1.name": "Король 1",
|
||||||
"core.bonus.KING1.description": "Уязвимость к заклинанию Палач 1 ступени",
|
"core.bonus.KING1.description": "Уязвимость к заклинанию Палач 1 ступени",
|
||||||
"core.bonus.KING2.name": "Король 2",
|
"core.bonus.KING2.name": "Король 2",
|
||||||
|
@ -201,7 +201,7 @@
|
|||||||
"core.bonus.HP_REGENERATION.name" : "Регенерація",
|
"core.bonus.HP_REGENERATION.name" : "Регенерація",
|
||||||
"core.bonus.HP_REGENERATION.description" : "Відновлює ${val} очок здоров'я кожного раунду",
|
"core.bonus.HP_REGENERATION.description" : "Відновлює ${val} очок здоров'я кожного раунду",
|
||||||
"core.bonus.JOUSTING.name" : "Турнірна перевага",
|
"core.bonus.JOUSTING.name" : "Турнірна перевага",
|
||||||
"core.bonus.JOUSTING.description" : "+5% шкоди за кожен пройдений гекс",
|
"core.bonus.JOUSTING.description" : "+${val}% шкоди за кожен пройдений гекс",
|
||||||
"core.bonus.KING1.name" : "Король 1",
|
"core.bonus.KING1.name" : "Король 1",
|
||||||
"core.bonus.KING1.description" : "Вразливий до 1-го рівня закляття Вбивця",
|
"core.bonus.KING1.description" : "Вразливий до 1-го рівня закляття Вбивця",
|
||||||
"core.bonus.KING2.name" : "Король 2",
|
"core.bonus.KING2.name" : "Король 2",
|
||||||
|
@ -469,10 +469,11 @@ void CCreatureHandler::loadCommanders()
|
|||||||
|
|
||||||
void CCreatureHandler::loadBonuses(JsonNode & creature, std::string bonuses)
|
void CCreatureHandler::loadBonuses(JsonNode & creature, std::string bonuses)
|
||||||
{
|
{
|
||||||
auto makeBonusNode = [&](std::string type) -> JsonNode
|
auto makeBonusNode = [&](std::string type, double val = 0) -> JsonNode
|
||||||
{
|
{
|
||||||
JsonNode ret;
|
JsonNode ret;
|
||||||
ret["type"].String() = type;
|
ret["type"].String() = type;
|
||||||
|
ret["val"].Float() = val;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -484,7 +485,7 @@ void CCreatureHandler::loadBonuses(JsonNode & creature, std::string bonuses)
|
|||||||
{"const_free_attack", makeBonusNode("BLOCKS_RETALIATION")},
|
{"const_free_attack", makeBonusNode("BLOCKS_RETALIATION")},
|
||||||
{"IS_UNDEAD", makeBonusNode("UNDEAD")},
|
{"IS_UNDEAD", makeBonusNode("UNDEAD")},
|
||||||
{"const_no_melee_penalty", makeBonusNode("NO_MELEE_PENALTY")},
|
{"const_no_melee_penalty", makeBonusNode("NO_MELEE_PENALTY")},
|
||||||
{"const_jousting", makeBonusNode("JOUSTING")},
|
{"const_jousting", makeBonusNode("JOUSTING", 5)},
|
||||||
{"KING_1", makeBonusNode("KING1")},
|
{"KING_1", makeBonusNode("KING1")},
|
||||||
{"KING_2", makeBonusNode("KING2")},
|
{"KING_2", makeBonusNode("KING2")},
|
||||||
{"KING_3", makeBonusNode("KING3")},
|
{"KING_3", makeBonusNode("KING3")},
|
||||||
@ -1070,7 +1071,9 @@ void CCreatureHandler::loadStackExp(Bonus & b, BonusList & bl, CLegacyConfigPars
|
|||||||
case 'B':
|
case 'B':
|
||||||
b.type = Bonus::TWO_HEX_ATTACK_BREATH; break;
|
b.type = Bonus::TWO_HEX_ATTACK_BREATH; break;
|
||||||
case 'c':
|
case 'c':
|
||||||
b.type = Bonus::JOUSTING; break;
|
b.type = Bonus::JOUSTING;
|
||||||
|
b.val = 5;
|
||||||
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
b.type = Bonus::ADDITIONAL_ATTACK; break;
|
b.type = Bonus::ADDITIONAL_ATTACK; break;
|
||||||
case 'f':
|
case 'f':
|
||||||
|
@ -258,7 +258,7 @@ double DamageCalculator::getAttackJoustingFactor() const
|
|||||||
|
|
||||||
//applying jousting bonus
|
//applying jousting bonus
|
||||||
if(info.chargeDistance > 0 && info.attacker->hasBonus(selectorJousting, cachingStrJousting) && !info.defender->hasBonus(selectorChargeImmunity, cachingStrChargeImmunity))
|
if(info.chargeDistance > 0 && info.attacker->hasBonus(selectorJousting, cachingStrJousting) && !info.defender->hasBonus(selectorChargeImmunity, cachingStrChargeImmunity))
|
||||||
return info.chargeDistance * 0.05;
|
return info.chargeDistance * (info.attacker->valOfBonuses(selectorJousting))/100.0;
|
||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user