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, "COMMANDERS": false,
"MITHRIL": false //so far unused "MITHRIL": false //so far unused
}, },
"baseBonuses" : [
{
"type" : "SPELL_DAMAGE", //Default spell damage
"val" : 100,
"valueType" : "BASE_NUMBER"
}
],
"heroBaseBonuses": "heroBaseBonuses":
[ [
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -285,7 +285,7 @@ public:
BONUS_NAME(DARKNESS) /*val = radius */ \ BONUS_NAME(DARKNESS) /*val = radius */ \
BONUS_NAME(SPECIAL_SECONDARY_SKILL) /*subtype = id, val = value per level in percent*/ \ 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(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(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_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 */\ 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 //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 * (valOfBonuses(Bonus::SPELL_DAMAGE)) / 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 * (100 + valOfBonuses(Bonus::SPECIFIC_SPELL_DAMAGE, spell->getIndex())) / 100.0);
int maxSchoolBonus = 0; int maxSchoolBonus = 0;