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:
@@ -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":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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 */\
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user