1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

vcmi: reuse SPELL_DAMAGE for sorcery

Now there is no need for specific spell bonus, and
we need to simply reuse SPELL_DAMAGE, and by using
PERCENT_TO_TARGET_TYPE speciality will work.
This commit is contained in:
Konstantin
2023-02-19 02:29:23 +03:00
parent 6b987275eb
commit a85f3b63ec
9 changed files with 29 additions and 23 deletions

View File

@@ -45,6 +45,13 @@
"COMMANDERS": false,
"MITHRIL": false //so far unused
},
"baseBonuses" : [
{
"type" : "SPELL_DAMAGE", //Default spell damage
"val" : 100,
"valueType" : "BASE_NUMBER"
}
],
"heroBaseBonuses":
[
{

View File

@@ -183,11 +183,11 @@
"specialty" : {
"bonuses" : {
"sorcery" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"targetSourceType" : "SECONDARY_SKILL",
"type" : "SPELL_DAMAGE",
"updater" : "TIMES_HERO_LEVEL",
"val" : 5,
"valueType" : "PERCENT_TO_BASE"
"valueType" : "PERCENT_TO_TARGET_TYPE"
}
}
}

View File

@@ -258,11 +258,11 @@
"specialty" : {
"bonuses" : {
"sorcery" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"targetSourceType" : "SECONDARY_SKILL",
"type" : "SPELL_DAMAGE",
"updater" : "TIMES_HERO_LEVEL",
"val" : 5,
"valueType" : "PERCENT_TO_BASE"
"valueType" : "PERCENT_TO_TARGET_TYPE"
}
}
}

View File

@@ -259,11 +259,11 @@
"specialty" : {
"bonuses" : {
"sorcery" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"targetSourceType" : "SECONDARY_SKILL",
"type" : "SPELL_DAMAGE",
"updater" : "TIMES_HERO_LEVEL",
"val" : 5,
"valueType" : "PERCENT_TO_BASE"
"valueType" : "PERCENT_TO_TARGET_TYPE"
}
}
}

View File

@@ -190,11 +190,11 @@
"specialty" : {
"bonuses" : {
"sorcery" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"targetSourceType" : "SECONDARY_SKILL",
"type" : "SPELL_DAMAGE",
"updater" : "TIMES_HERO_LEVEL",
"val" : 5,
"valueType" : "PERCENT_TO_BASE"
"valueType" : "PERCENT_TO_TARGET_TYPE"
}
}
}

View File

@@ -133,11 +133,11 @@
"specialty" : {
"bonuses" : {
"sorcery" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"targetSourceType" : "SECONDARY_SKILL",
"type" : "SPELL_DAMAGE",
"updater" : "TIMES_HERO_LEVEL",
"val" : 5,
"valueType" : "PERCENT_TO_BASE"
"valueType" : "PERCENT_TO_TARGET_TYPE"
}
}
}
@@ -236,11 +236,11 @@
"specialty" : {
"bonuses" : {
"sorcery" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"targetSourceType" : "SECONDARY_SKILL",
"type" : "SPELL_DAMAGE",
"updater" : "TIMES_HERO_LEVEL",
"val" : 5,
"valueType" : "PERCENT_TO_BASE"
"valueType" : "PERCENT_TO_TARGET_TYPE"
}
}
}

View File

@@ -730,8 +730,7 @@
"base" : {
"effects" : {
"main" : {
"subtype" : "skill.sorcery",
"type" : "SECONDARY_SKILL_PREMY",
"type" : "SPELL_DAMAGE",
"valueType" : "BASE_NUMBER"
}
}

View File

@@ -285,7 +285,7 @@ public:
BONUS_NAME(DARKNESS) /*val = radius */ \
BONUS_NAME(SPECIAL_SECONDARY_SKILL) /*subtype = id, val = value per level in percent*/ \
BONUS_NAME(SPECIAL_SPELL_LEV) /*subtype = id, val = value per level in percent*/\
BONUS_NAME(SPELL_DAMAGE) /*val = value*/\
BONUS_NAME(SPELL_DAMAGE) /*val = value, now works for sorcery*/\
BONUS_NAME(SPECIFIC_SPELL_DAMAGE) /*subtype = id of spell, val = value*/\
BONUS_NAME(SPECIAL_PECULIAR_ENCHANT) /*blesses and curses with id = val dependent on unit's level, subtype = 0 or 1 for Coronius*/\
BONUS_NAME(SPECIAL_UPGRADE) /*subtype = base, additionalInfo = target */\

View File

@@ -618,8 +618,8 @@ int64_t CGHeroInstance::getSpellBonus(const spells::Spell * spell, int64_t base,
{
//applying sorcery secondary skill
base = static_cast<int64_t>(base * (100 + valOfBonuses(Bonus::SECONDARY_SKILL_PREMY, SecondarySkill::SORCERY)) / 100.0);
base = static_cast<int64_t>(base * (100 + valOfBonuses(Bonus::SPELL_DAMAGE) + valOfBonuses(Bonus::SPECIFIC_SPELL_DAMAGE, spell->getIndex())) / 100.0);
base = static_cast<int64_t>(base * (valOfBonuses(Bonus::SPELL_DAMAGE)) / 100.0);
base = static_cast<int64_t>(base * (100 + valOfBonuses(Bonus::SPECIFIC_SPELL_DAMAGE, spell->getIndex())) / 100.0);
int maxSchoolBonus = 0;