mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
vcmi: skill-agnostic armorer
This is a skill-agnostic armorer, which can be used same as armorer before.
This commit is contained in:
parent
43f09dd2e4
commit
9ffd18c914
@ -68,11 +68,12 @@
|
||||
"specialty" : {
|
||||
"bonuses" : {
|
||||
"armorer" : {
|
||||
"subtype" : "skill.armorer",
|
||||
"type" : "SECONDARY_SKILL_PREMY",
|
||||
"type" : "GENERAL_DAMAGE_REDUCTION",
|
||||
"subtype" : -1,
|
||||
"targetSourceType" : "SECONDARY_SKILL",
|
||||
"updater" : "TIMES_HERO_LEVEL",
|
||||
"val" : 5,
|
||||
"valueType" : "PERCENT_TO_BASE"
|
||||
"valueType" : "PERCENT_TO_TARGET_TYPE"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,11 +12,12 @@
|
||||
"specialty" : {
|
||||
"bonuses" : {
|
||||
"armorer" : {
|
||||
"subtype" : "skill.armorer",
|
||||
"type" : "SECONDARY_SKILL_PREMY",
|
||||
"type" : "GENERAL_DAMAGE_REDUCTION",
|
||||
"subtype" : -1,
|
||||
"targetSourceType" : "SECONDARY_SKILL",
|
||||
"updater" : "TIMES_HERO_LEVEL",
|
||||
"val" : 5,
|
||||
"valueType" : "PERCENT_TO_BASE"
|
||||
"valueType" : "PERCENT_TO_TARGET_TYPE"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,11 +57,12 @@
|
||||
"specialty" : {
|
||||
"bonuses" : {
|
||||
"armorer" : {
|
||||
"subtype" : "skill.armorer",
|
||||
"type" : "SECONDARY_SKILL_PREMY",
|
||||
"type" : "GENERAL_DAMAGE_REDUCTION",
|
||||
"subtype" : -1,
|
||||
"targetSourceType" : "SECONDARY_SKILL",
|
||||
"updater" : "TIMES_HERO_LEVEL",
|
||||
"val" : 5,
|
||||
"valueType" : "PERCENT_TO_BASE"
|
||||
"valueType" : "PERCENT_TO_TARGET_TYPE"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -672,8 +672,8 @@
|
||||
"base" : {
|
||||
"effects" : {
|
||||
"main" : {
|
||||
"subtype" : "skill.armorer",
|
||||
"type" : "SECONDARY_SKILL_PREMY",
|
||||
"type" : "GENERAL_DAMAGE_REDUCTION",
|
||||
"subtype" : -1,
|
||||
"valueType" : "BASE_NUMBER"
|
||||
}
|
||||
}
|
||||
|
@ -257,7 +257,7 @@ public:
|
||||
BONUS_NAME(SPELLCASTER) /*subtype - spell id, value - level of school, additional info - weighted chance. use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power*/ \
|
||||
BONUS_NAME(CATAPULT) \
|
||||
BONUS_NAME(ENEMY_DEFENCE_REDUCTION) /*in % (value) eg. behemots*/ \
|
||||
BONUS_NAME(GENERAL_DAMAGE_REDUCTION) /* shield / air shield effect */ \
|
||||
BONUS_NAME(GENERAL_DAMAGE_REDUCTION) /* shield / air shield effect, also armorer skill/petrify effect for subtype -1*/ \
|
||||
BONUS_NAME(GENERAL_ATTACK_REDUCTION) /*eg. while stoned or blinded - in %,// subtype not used, use ONLY_MELEE_FIGHT / DISTANCE_FIGHT*/ \
|
||||
BONUS_NAME(DEFENSIVE_STANCE) /* val - bonus to defense while defending */ \
|
||||
BONUS_NAME(ATTACKS_ALL_ADJACENT) /*eg. hydra*/ \
|
||||
@ -335,7 +335,7 @@ public:
|
||||
BONUS_NAME(LEARN_BATTLE_SPELL_CHANCE) /*skill-agnostic eagle eye chance. subtype = 0 - from enemy, 1 - TODO: from entire battlefield*/\
|
||||
BONUS_NAME(LEARN_BATTLE_SPELL_LEVEL_LIMIT) /*skill-agnostic eagle eye limit, subtype - school (-1 for all), others TODO*/\
|
||||
BONUS_NAME(PERCENTAGE_DAMAGE_BOOST) /*skill-agnostic archery and offence, subtype is 0 for offence and 1 for archery*/\
|
||||
BONUS_NAME(LEARN_MEETING_SPELL_LIMIT) /*skill-agnostic scholar, subtype is -1 for all, TODO for others (> 0)*/
|
||||
BONUS_NAME(LEARN_MEETING_SPELL_LIMIT) /*skill-agnostic scholar, subtype is -1 for all, TODO for others (> 0)*/\
|
||||
/* end of list */
|
||||
|
||||
|
||||
|
@ -277,8 +277,8 @@ double DamageCalculator::getDefenseSkillFactor() const
|
||||
|
||||
double DamageCalculator::getDefenseArmorerFactor() const
|
||||
{
|
||||
const std::string cachingStrArmorer = "type_SECONDARY_SKILL_PREMYs_ARMORER";
|
||||
static const auto selectorArmorer = Selector::typeSubtype(Bonus::SECONDARY_SKILL_PREMY, SecondarySkill::ARMORER);
|
||||
const std::string cachingStrArmorer = "type_GENERAL_DAMAGE_REDUCTIONs_N1_NsrcSPELL_EFFECT";
|
||||
static const auto selectorArmorer = Selector::typeSubtype(Bonus::GENERAL_DAMAGE_REDUCTION, -1).And(Selector::sourceTypeSel(Bonus::SPELL_EFFECT).Not());
|
||||
return info.defender->valOfBonuses(selectorArmorer, cachingStrArmorer) / 100.0;
|
||||
|
||||
}
|
||||
@ -382,8 +382,8 @@ double DamageCalculator::getDefenseForgetfulnessFactor() const
|
||||
double DamageCalculator::getDefensePetrificationFactor() const
|
||||
{
|
||||
// Creatures that are petrified by a Basilisk's Petrifying attack or a Medusa's Stone gaze take 50% damage (R8 = 0.50) from ranged and melee attacks. Taking damage also deactivates the effect.
|
||||
const std::string cachingStrAllReduction = "type_GENERAL_DAMAGE_REDUCTIONs_N1";
|
||||
static const auto selectorAllReduction = Selector::typeSubtype(Bonus::GENERAL_DAMAGE_REDUCTION, -1);
|
||||
const std::string cachingStrAllReduction = "type_GENERAL_DAMAGE_REDUCTIONs_N1_srcSPELL_EFFECT";
|
||||
static const auto selectorAllReduction = Selector::typeSubtype(Bonus::GENERAL_DAMAGE_REDUCTION, -1).And(Selector::sourceTypeSel(Bonus::SPELL_EFFECT));
|
||||
|
||||
return info.defender->valOfBonuses(selectorAllReduction, cachingStrAllReduction) / 100.0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user