From 3d170bb1f499200b564b99e7a207592422287311 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 10 May 2025 19:09:08 +0300 Subject: [PATCH 1/6] Fix creature type limiter not considering upgrades of upgrades --- lib/CCreatureHandler.cpp | 32 +++++++++++++- lib/CCreatureHandler.h | 8 +++- lib/bonuses/Limiters.cpp | 2 +- lib/entities/hero/CHeroHandler.cpp | 70 +++++++++++------------------- lib/mapObjects/CGCreature.cpp | 2 +- 5 files changed, 64 insertions(+), 50 deletions(-) diff --git a/lib/CCreatureHandler.cpp b/lib/CCreatureHandler.cpp index 4ed544c20..006d67bfa 100644 --- a/lib/CCreatureHandler.cpp +++ b/lib/CCreatureHandler.cpp @@ -337,12 +337,40 @@ void CCreature::addBonus(int val, BonusType type, BonusSubtypeID subtype) } } -bool CCreature::isMyUpgrade(const CCreature *anotherCre) const +bool CCreature::isMyDirectUpgrade(const CCreature *anotherCre) const { - //TODO upgrade of upgrade? return vstd::contains(upgrades, anotherCre->getId()); } +bool CCreature::isMyDirectOrIndirectUpgrade(const CCreature *anotherCre) const +{ + std::set foundUpgrades; + std::vector upgradesToTest; + + upgradesToTest.push_back(getId()); + + while (!upgradesToTest.empty()) + { + CreatureID testedID = upgradesToTest.back(); + const CCreature * testedPtr = testedID.toCreature(); + + upgradesToTest.pop_back(); + + for (const auto & upgrade : testedPtr->upgrades) + { + if (upgrade == anotherCre->getId()) + return true; + + if (foundUpgrades.count(upgrade)) + continue; + + upgradesToTest.push_back(upgrade); + foundUpgrades.insert(upgrade); + } + } + return false; +} + std::string CCreature::nodeName() const { return "\"" + getNamePluralTextID() + "\""; diff --git a/lib/CCreatureHandler.h b/lib/CCreatureHandler.h index ca95b2689..e1d812fa8 100644 --- a/lib/CCreatureHandler.h +++ b/lib/CCreatureHandler.h @@ -163,7 +163,13 @@ public: static CCreature::CreatureQuantityId getQuantityID(const int & quantity); static std::string getQuantityRangeStringForId(const CCreature::CreatureQuantityId & quantityId); static int estimateCreatureCount(ui32 countID); //reverse version of above function, returns middle of range - bool isMyUpgrade(const CCreature *anotherCre) const; + + /// Returns true if this creature can be directly upgraded to target + bool isMyDirectUpgrade(const CCreature * target) const; + + /// Returns true if this creature can be upgraded to target + /// Performs full search through potential upgrades of upgrades + bool isMyDirectOrIndirectUpgrade(const CCreature *target) const; void addBonus(int val, BonusType type); void addBonus(int val, BonusType type, BonusSubtypeID subtype); diff --git a/lib/bonuses/Limiters.cpp b/lib/bonuses/Limiters.cpp index 984eb068c..01fc45627 100644 --- a/lib/bonuses/Limiters.cpp +++ b/lib/bonuses/Limiters.cpp @@ -105,7 +105,7 @@ ILimiter::EDecision CCreatureTypeLimiter::limit(const BonusLimitationContext &co if(!c) return ILimiter::EDecision::NOT_APPLICABLE; - auto accept = c->getId() == creatureID || (includeUpgrades && creatureID.toCreature()->isMyUpgrade(c)); + auto accept = c->getId() == creatureID || (includeUpgrades && creatureID.toCreature()->isMyDirectOrIndirectUpgrade(c)); return accept ? ILimiter::EDecision::ACCEPT : ILimiter::EDecision::DISCARD; //drop bonus if it's not our creature and (we don`t check upgrades or its not our upgrade) } diff --git a/lib/entities/hero/CHeroHandler.cpp b/lib/entities/hero/CHeroHandler.cpp index 307017c43..c97725372 100644 --- a/lib/entities/hero/CHeroHandler.cpp +++ b/lib/entities/hero/CHeroHandler.cpp @@ -140,59 +140,39 @@ void CHeroHandler::loadHeroSkills(CHero * hero, const JsonNode & node) const } /// creates standard H3 hero specialty for creatures -static std::vector> createCreatureSpecialty(CreatureID baseCreatureID) +static std::vector> createCreatureSpecialty(CreatureID cid) { std::vector> result; - std::set targets; - targets.insert(baseCreatureID); - // go through entire upgrade chain and collect all creatures to which baseCreatureID can be upgraded - for (;;) + const auto & specCreature = *cid.toCreature(); + int stepSize = specCreature.getLevel() ? specCreature.getLevel() : 5; + { - std::set oldTargets = targets; - - for(const auto & upgradeSourceID : oldTargets) - { - const CCreature * upgradeSource = upgradeSourceID.toCreature(); - targets.insert(upgradeSource->upgrades.begin(), upgradeSource->upgrades.end()); - } - - if (oldTargets.size() == targets.size()) - break; + auto bonus = std::make_shared(); + bonus->limiter.reset(new CCreatureTypeLimiter(specCreature, true)); + bonus->type = BonusType::STACKS_SPEED; + bonus->val = 1; + result.push_back(bonus); } - for(CreatureID cid : targets) { - const auto & specCreature = *cid.toCreature(); - int stepSize = specCreature.getLevel() ? specCreature.getLevel() : 5; + auto bonus = std::make_shared(); + bonus->type = BonusType::PRIMARY_SKILL; + bonus->subtype = BonusSubtypeID(PrimarySkill::ATTACK); + bonus->val = 0; + bonus->limiter.reset(new CCreatureTypeLimiter(specCreature, true)); + bonus->updater.reset(new GrowsWithLevelUpdater(specCreature.getAttack(false), stepSize)); + result.push_back(bonus); + } - { - auto bonus = std::make_shared(); - bonus->limiter.reset(new CCreatureTypeLimiter(specCreature, false)); - bonus->type = BonusType::STACKS_SPEED; - bonus->val = 1; - result.push_back(bonus); - } - - { - auto bonus = std::make_shared(); - bonus->type = BonusType::PRIMARY_SKILL; - bonus->subtype = BonusSubtypeID(PrimarySkill::ATTACK); - bonus->val = 0; - bonus->limiter.reset(new CCreatureTypeLimiter(specCreature, false)); - bonus->updater.reset(new GrowsWithLevelUpdater(specCreature.getAttack(false), stepSize)); - result.push_back(bonus); - } - - { - auto bonus = std::make_shared(); - bonus->type = BonusType::PRIMARY_SKILL; - bonus->subtype = BonusSubtypeID(PrimarySkill::DEFENSE); - bonus->val = 0; - bonus->limiter.reset(new CCreatureTypeLimiter(specCreature, false)); - bonus->updater.reset(new GrowsWithLevelUpdater(specCreature.getDefense(false), stepSize)); - result.push_back(bonus); - } + { + auto bonus = std::make_shared(); + bonus->type = BonusType::PRIMARY_SKILL; + bonus->subtype = BonusSubtypeID(PrimarySkill::DEFENSE); + bonus->val = 0; + bonus->limiter.reset(new CCreatureTypeLimiter(specCreature, true)); + bonus->updater.reset(new GrowsWithLevelUpdater(specCreature.getDefense(false), stepSize)); + result.push_back(bonus); } return result; diff --git a/lib/mapObjects/CGCreature.cpp b/lib/mapObjects/CGCreature.cpp index 9fbdfe2c6..5717676b5 100644 --- a/lib/mapObjects/CGCreature.cpp +++ b/lib/mapObjects/CGCreature.cpp @@ -529,7 +529,7 @@ void CGCreature::battleFinished(const CGHeroInstance *hero, const BattleResult & const CCreature * cre = getCreature(); for(i = stacks.begin(); i != stacks.end(); i++) { - if(cre->isMyUpgrade(i->second->getCreature())) + if(cre->isMyDirectUpgrade(i->second->getCreature())) { cb->changeStackType(StackLocation(id, i->first), cre); //un-upgrade creatures } From 9bf5cf42f3ed14a3de22829b2850ede40b2a4074 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 10 May 2025 19:11:30 +0300 Subject: [PATCH 2/6] Move guides to separate directory to make them easier to find --- docs/modders/{Entities_Format => Guides}/Creature_Help.md | 0 docs/modders/{Entities_Format => Guides}/Faction_Help.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename docs/modders/{Entities_Format => Guides}/Creature_Help.md (100%) rename docs/modders/{Entities_Format => Guides}/Faction_Help.md (100%) diff --git a/docs/modders/Entities_Format/Creature_Help.md b/docs/modders/Guides/Creature_Help.md similarity index 100% rename from docs/modders/Entities_Format/Creature_Help.md rename to docs/modders/Guides/Creature_Help.md diff --git a/docs/modders/Entities_Format/Faction_Help.md b/docs/modders/Guides/Faction_Help.md similarity index 100% rename from docs/modders/Entities_Format/Faction_Help.md rename to docs/modders/Guides/Faction_Help.md From a188934e1298e205c625785b765378e2ef641d6f Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 10 May 2025 19:12:09 +0300 Subject: [PATCH 3/6] Add basic description of battlefield layout --- docs/developers/BattleField.png | Bin 138134 -> 0 bytes docs/developers/Battlefield.md | 17 ++ docs/images/Battle_Field_Hexes.svg | 200 ++++++++++++++++++ .../images/Battle_Field_Relative_Obstacle.svg | 19 ++ .../Entities_Format/Battle_Obstacle_Format.md | 22 +- .../Entities_Format/Battlefield_Format.md | 7 + 6 files changed, 264 insertions(+), 1 deletion(-) delete mode 100644 docs/developers/BattleField.png create mode 100644 docs/developers/Battlefield.md create mode 100644 docs/images/Battle_Field_Hexes.svg create mode 100644 docs/images/Battle_Field_Relative_Obstacle.svg diff --git a/docs/developers/BattleField.png b/docs/developers/BattleField.png deleted file mode 100644 index 90022a324e982d18cb015c6f6621c2bac7dd0bec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138134 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�(&Tf%Xs-)_7?W1{T);=HV|16(Z;RGgQd@FLbEcD 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஑ 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 diff --git a/docs/developers/Battlefield.md b/docs/developers/Battlefield.md new file mode 100644 index 000000000..9aac7fc31 --- /dev/null +++ b/docs/developers/Battlefield.md @@ -0,0 +1,17 @@ +# Battlefield + +## Battlefield Layout + +![Battlefield Hexes Layout](../images/Battle_Field_Hexes.svg) + +Legend: +- gray (0/16/17...): inaccessible hexes located on both sides of the battlefield. Units can't normally move onto them, and they can't be targeted via spells. These hexes are used as back tile for war machines +- green (1/15/35...): starting locations for units. Defined in `config/gameConfig.json` +- yellow (18/32/52...): starting locations for war machines. Defined in `config/gameConfig.json` +- dark red (12/45/62...): non-destroyable parts of walls during siege. Hardcoded. +- light red (29/78/130/182): parts of walls that can be targeted by catapult during siege. Hardcoded +- dark blue (11/28/44...): default position of moat during sieges. Defined in a special spell that is casted on start of siege battle. +- light blue (10/27/43...): additional locations covered by "wide" moat in Fortress. Defined in a special spell that is casted on start of siege battle. +- pink (94): location of drawbridge. Unit located on this tile will block drawbridge and prevent it from opening. In Fortress this hex also acts as moat when drawbridge is raised. Hardcoded +- purple (95/96): gatehouse. Unless drawbridge is down, these tiles can only be entered by defender. When defender unit is on this tile, drawbridge is forced to open. Blocked drawbridge would block these tiles. Hardcoded +- not depicted (12/50/183): locations of towers that can be targeted by catapult. Hardcoded diff --git a/docs/images/Battle_Field_Hexes.svg b/docs/images/Battle_Field_Hexes.svg new file mode 100644 index 000000000..d1be3992d --- /dev/null +++ b/docs/images/Battle_Field_Hexes.svg @@ -0,0 +1,200 @@ + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 + 65 + 66 + 67 + + 68 + 69 + 70 + 71 + 72 + 73 + 74 + 75 + 76 + 77 + 78 + 79 + 80 + 81 + 82 + 83 + 84 + + 85 + 86 + 87 + 88 + 89 + 90 + 91 + 92 + 93 + 94 + 95 + 96 + 97 + 98 + 99 + 100 + 101 + + 102 + 103 + 104 + 105 + 106 + 107 + 108 + 109 + 110 + 111 + 112 + 113 + 114 + 115 + 116 + 117 + 118 + + 119 + 120 + 121 + 122 + 123 + 124 + 125 + 126 + 127 + 128 + 129 + 130 + 131 + 132 + 133 + 134 + 135 + + 136 + 137 + 138 + 139 + 140 + 141 + 142 + 143 + 144 + 145 + 146 + 147 + 148 + 149 + 150 + 151 + 152 + + 153 + 154 + 155 + 156 + 157 + 158 + 159 + 160 + 161 + 162 + 163 + 164 + 165 + 166 + 167 + 168 + 169 + + 170 + 171 + 172 + 173 + 174 + 175 + 176 + 177 + 178 + 179 + 180 + 181 + 182 + 183 + 184 + 185 + 186 + + diff --git a/docs/images/Battle_Field_Relative_Obstacle.svg b/docs/images/Battle_Field_Relative_Obstacle.svg new file mode 100644 index 000000000..f1a264f8c --- /dev/null +++ b/docs/images/Battle_Field_Relative_Obstacle.svg @@ -0,0 +1,19 @@ + + -34 + -33 + -32 + -31 + -30 + + -17 + -16 + -15 + -14 + -13 + + 0 + 1 + 2 + 3 + 4 + diff --git a/docs/modders/Entities_Format/Battle_Obstacle_Format.md b/docs/modders/Entities_Format/Battle_Obstacle_Format.md index 84b8184ce..8c8d9dd96 100644 --- a/docs/modders/Entities_Format/Battle_Obstacle_Format.md +++ b/docs/modders/Entities_Format/Battle_Obstacle_Format.md @@ -1,5 +1,7 @@ # Battle Obstacle Format +## Configuration reference + ```json // List of terrains on which this obstacle can be used "allowedTerrains" : [] @@ -16,7 +18,7 @@ // Height of an obstacle, in hexes "height" : 1 - // List of tiles blocked by an obstacles. For non-absolute obstacles uses relative hex indices + // List of tiles blocked by an obstacles. See below for description "blockedTiles" : [ 0, 20, 50 ] // For absolute obstacle - image with static obstacle. For non-absolute - animation with an obstacle @@ -25,3 +27,21 @@ // If set to true, obstacle will appear in front of units or other battlefield objects "foreground" : false ``` + +## Blocked tiles definition + +How blocked tiles are defined depends on whether obstacle is `absolute` or not: + +### Non-absolute obstacles + +Non-absolute obstacles specify their coordinates relative to bottom-left corner of obstacle. If you wish to have obstacle that takes multiple rows, substracting 17 from hex number would block tile directly above bottom-left corner of your obstacle. + +For example, obstacle that blocks tiles `[1, 2, 3, -15, -16, -31]` would result in following layout on the battlefield: + +![Battlefield Relative Obstacle Example](../Battle_Field_Relative_Obstacle.svg) + +### Absolute obstacles + +Absolute obstacles operate in absolute coordinates. Because of that, blocked tiles contains list of indexes of blocked tiles. For reference on tiles indexes see image below: + +![Battlefield Hexes Layout](../Battle_Field_Hexes.svg) diff --git a/docs/modders/Entities_Format/Battlefield_Format.md b/docs/modders/Entities_Format/Battlefield_Format.md index 7797b02ec..b3887a224 100644 --- a/docs/modders/Entities_Format/Battlefield_Format.md +++ b/docs/modders/Entities_Format/Battlefield_Format.md @@ -23,3 +23,10 @@ // List of battle hexes that will be always blocked on this battlefield (e.g. ship to ship battles) "impassableHexes" : [ 10, 20, 50 ], ``` + +### Impassable Hexes + +Impassable hexes operate in absolute coordinates. For reference on tiles indexes see image below: + +![Battlefield Hexes Layout](../images/Battle_Field_Hexes.svg) + From 519fbae43cd9bf536a1301ff0793c6a9067e8fb5 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 10 May 2025 19:13:47 +0300 Subject: [PATCH 4/6] Add example of typical bonus system graph to docs --- docs/developers/Bonus_System.md | 10 + docs/images/Bonus_System_Nodes.gv | 237 +++++++++++++++ docs/images/Bonus_System_Nodes.svg | 474 +++++++++++++++++++++++++++++ 3 files changed, 721 insertions(+) create mode 100644 docs/images/Bonus_System_Nodes.gv create mode 100644 docs/images/Bonus_System_Nodes.svg diff --git a/docs/developers/Bonus_System.md b/docs/developers/Bonus_System.md index c3b86a646..bd4fb112f 100644 --- a/docs/developers/Bonus_System.md +++ b/docs/developers/Bonus_System.md @@ -2,6 +2,16 @@ The bonus system of VCMI is a set of mechanisms that make handling of different bonuses for heroes, towns, players and units easier. The system consists of a set of nodes representing objects that can be a source or a subject of a bonus and two directed acyclic graphs (DAGs) representing inheritance and propagation of bonuses. Core of bonus system is defined in HeroBonus.h file. +## Bonus System Nodes + +![Bonus System Nodes Diagram](../images/Bonus_System_Nodes.svg) + +Legend: +- brown: actual nodes, and members of bonus system graph +- cyan: constant nodes that act only as source, and can not receive bonuses +- gray: virtual nodes to clarify graph layout. Actual node is located below. For example, there is no entity for "Visiting Hero", instead visiting hero is hero that is attached to player node only via Town node. + + ## Propagation and inheritance Each bonus originates from some node in the bonus system, and may have propagator and limiter objects attached to it. Bonuses are shared around as follows: diff --git a/docs/images/Bonus_System_Nodes.gv b/docs/images/Bonus_System_Nodes.gv new file mode 100644 index 000000000..f135e656c --- /dev/null +++ b/docs/images/Bonus_System_Nodes.gv @@ -0,0 +1,237 @@ +digraph mygraph { + fontname="monospace" + edge [fontname="Noto Serif"] + node [ + fontname="Noto Serif" + style=filled + shape=plain + fillcolor="#60200080" + pencolor="#00000080" // frames color + ] + + subgraph rankedTop { + "Global" [ + label =< + + + + + +
Global
Propagator: GLOBAL_EFFECT
C++ Class: CGameState
Global node to which
all map entities are connected
Note: Not recruited heroes (such as in tavern)
are not attached to any node
> + ] + "Team" [ + label =< + + + + +
Team
Propagator: TEAM_PROPAGATOR
C++ Class: TeamState
Per-team node.
Game will put players without team
into a team with a single player
> + ] + "Player" [ + label =< + + + + +
Player
Propagator: PLAYER_PROPAGATOR
C++ Class: CPlayerState
Per-player team.
All objects owned by a player
belong to such node
> + ] + }; + + subgraph rankedArmies { + rank="same" + "Hero" [ + fillcolor="#80808080" + label =< + + + + +
Hero
Propagator: HERO
C++ Class: CGHeroInstance
Represents a hero, either owned by player or in prison.
Bonuses from specialty and secondary skills
are attached directly to this node
> + ] + "Combat" [ + label =< + + + +
Combat
Propagator: BATTLE_WIDE
Node that contains both sides of a combat
Anything propagated to this node will affect both sides in combat
> + ] + }; + + subgraph rankedHeroes { + rank="same" + "Visiting Hero" [ + fillcolor="#80808080" + label =< + + +
Visiting Hero
Hero that is currently
visiting owned or allied town
> + ] + "Garrisoned Hero" [ + fillcolor="#80808080" + label =< + + +
Garrisoned Hero
Hero that is currently
placed in a garrison of owned town
> + ] + "Wandering Hero" [ + fillcolor="#80808080" + label =< + + +
Wandering Hero
Hero that is currently
moving on map, outside of towns
> + ] + "Neutral Army" [ + fillcolor="#80808080" + label =< + + +
Neutral Army
Any army that is not owned by a player
Wandering monsters, Banks, Events, etc
> + ] + "Owned Army" [ + fillcolor="#80808080" + label =< + + +
Owned Army
Army owned by a player.
Mines, Garrisons, Dwellings
> + ] + }; + + subgraph rankedTopHero { + rank="same" + "Town" [ + fillcolor="#80808080" + label =< + + + +
Town
C++ Class: CGTownInstance
Represents a town on map.
Town buildings can provide bonuses to this node
(or propagate them upward)
> + ] + "Artifact Instance" [ + fillcolor="#00FFFF80" + label =< + + + +
Artifact Instance
C++ Class: CArtifact
Represents a particular instance of an artifact
that hero can equip or trade
> + ] + "Boat" [ + fillcolor="#00FFFF80" + label =< + + + +
Boat
C++ Class: CGBoat
Represents a boat or other type of transport.
Can provide bonuses to boarded hero
> + ] + }; + + subgraph rankedMisc { + "Town and visiting hero" [ + label =< + + + + + + +
Town and Visiting Hero
Propagator: VISITED_TOWN_AND_VISITOR
C++ Class: CTownAndVisitingHero
Helper node that exists solely
to propagate bonuses to both town and visiting hero
Note: Neutral towns are attached to global node instead
> + ] + + "Combat" [ + label =< + + + + +
Combat
Propagator: BATTLE_WIDE
C++ Class: BattleInfo
Node that contains both sides of a combat
Anything propagated to this node will affect both sides in combat
> + ] + + "Creature Type" [ + fillcolor="#00FFFF80" + label =< + + + +
Creature Type
C++ Class: CCreature
Represents a creature type, such as Pikeman or Archer
> + ] + + "Artifact Type" [ + fillcolor="#00FFFF80" + label =< + + + +
Artifact Type
C++ Class: CArtifact
Represents an artifact type, for example Ring of Life
> + ] + + "Artifact Component" [ + fillcolor="#80808080" + label =< + + + +
Artifact Component
C++ Class: CArtifact
For combined, non-fused artifacts,
instances of components are attached to instance of combined artifact
> + ] + + "Army" [ + label =< + + + +
Army
C++ Class: CArmedInstance
Represents any object that can hold army,
such as town, hero, mines, garrisons, wandering monsters
> + ] + + "Unit in Army" [ + label =< + + + +
Unit in Army
C++ Class: CStackInstance
Represents a unit that is part of a army
A unit always has a creature type,
belongs to an army and has stack size
> + ] + + "Unit in Combat" [ + label =< + + + +
Unit in Combat
C++ Class: CStack
Represents current state of a unit during combat,
can be affected by spells or receive damage
> + ] + + "Summon in Combat" [ + label =< + + + +
Summon in Combat
C++ Class: CStack
Represents any unit that was added in combat,
and may not remain after combat
> + ] + }; + + "Global" -> "Team" + "Global" -> "Neutral Army" + "Team" -> "Player" + "Player" -> "Town and visiting hero" + "Player" -> "Wandering Hero" + "Player" -> "Owned Army" + "Town and visiting hero" -> "Town" + "Town and visiting hero" -> "Visiting Hero" + "Boat" -> "Hero" + "Combat" -> "Army" + "Army" -> "Unit in Army" + "Army" -> "Summon in Combat" + "Unit in Army" -> "Unit in Combat" + "Artifact Type" -> "Artifact Instance" + "Artifact Component" -> "Artifact Instance" + "Artifact Instance" -> "Hero" + + "Creature Type" -> "Summon in Combat" + "Creature Type" -> "Unit in Army" + + "Town" -> "Garrisoned Hero" + "Town" -> "Army" + "Neutral Army" -> "Army" + "Owned Army" -> "Army" + + "Visiting Hero" -> "Hero" + "Garrisoned Hero" -> "Hero" + "Wandering Hero" -> "Hero" + "Hero" -> "Army" +} diff --git a/docs/images/Bonus_System_Nodes.svg b/docs/images/Bonus_System_Nodes.svg new file mode 100644 index 000000000..d9e9febfb --- /dev/null +++ b/docs/images/Bonus_System_Nodes.svg @@ -0,0 +1,474 @@ + + + + + + +mygraph + + + +Global + + +Global + +Propagator: +GLOBAL_EFFECT + +C++ Class: +CGameState + +Global node to which +all map entities are connected + +Note: Not recruited heroes (such as in tavern) +are not attached to any node + + + + +Team + + +Team + +Propagator: +TEAM_PROPAGATOR + +C++ Class: +TeamState + +Per-team node. +Game will put players without team +into a team with a single player + + + + +Global->Team + + + + + +Neutral Army + + +Neutral Army + +Any army that is not owned by a player +Wandering monsters, Banks, Events, etc + + + + +Global->Neutral Army + + + + + +Player + + +Player + +Propagator: +PLAYER_PROPAGATOR + +C++ Class: +CPlayerState + +Per-player team. +All objects owned by a player +belong to such node + + + + +Team->Player + + + + + +Wandering Hero + + +Wandering Hero + +Hero that is currently +moving on map, outside of towns + + + + +Player->Wandering Hero + + + + + +Owned Army + + +Owned Army + +Army owned by a player. +Mines, Garrisons, Dwellings + + + + +Player->Owned Army + + + + + +Town and visiting hero + + +Town and Visiting Hero + +Propagator: +VISITED_TOWN_AND_VISITOR + +C++ Class: +CTownAndVisitingHero + +Helper node that exists solely +to propagate bonuses to both town and visiting hero + +Note: Neutral towns are attached to global node instead + + + + +Player->Town and visiting hero + + + + + +Hero + + +Hero + +Propagator: +HERO + +C++ Class: +CGHeroInstance + +Represents a hero, either owned by player or in prison. +Bonuses from specialty and secondary skills +are attached directly to this node + + + + +Army + + +Army + +C++ Class: +CArmedInstance + +Represents any object that can hold army, +such as town, hero, mines, garrisons, wandering monsters + + + + +Hero->Army + + + + + +Combat + + +Combat + +Propagator: +BATTLE_WIDE + +C++ Class: +BattleInfo + +Node that contains both sides of a combat +Anything propagated to this node will affect both sides in combat + + + + +Combat->Army + + + + + +Visiting Hero + + +Visiting Hero + +Hero that is currently +visiting owned or allied town + + + + +Visiting Hero->Hero + + + + + +Garrisoned Hero + + +Garrisoned Hero + +Hero that is currently +placed in a garrison of owned town + + + + +Garrisoned Hero->Hero + + + + + +Wandering Hero->Hero + + + + + +Neutral Army->Army + + + + + +Owned Army->Army + + + + + +Town + + +Town + +C++ Class: +CGTownInstance + +Represents a town on map. +Town buildings can provide bonuses to this node +(or propagate them upward) + + + + +Town->Garrisoned Hero + + + + + +Town->Army + + + + + +Artifact Instance + + +Artifact Instance + +C++ Class: +CArtifact + +Represents a particular instance of an artifact + that hero can equip or trade + + + + +Artifact Instance->Hero + + + + + +Boat + + +Boat + +C++ Class: +CGBoat + +Represents a boat or other type of transport. +Can provide bonuses to boarded hero + + + + +Boat->Hero + + + + + +Town and visiting hero->Visiting Hero + + + + + +Town and visiting hero->Town + + + + + +Creature Type + + +Creature Type + +C++ Class: +CCreature + +Represents a creature type, such as Pikeman or Archer + + + + +Unit in Army + + +Unit in Army + +C++ Class: +CStackInstance + +Represents a unit that is part of a army +A unit always has a creature type, +belongs to an army and has stack size + + + + +Creature Type->Unit in Army + + + + + +Summon in Combat + + +Summon in Combat + +C++ Class: +CStack + +Represents any unit that was added in combat, +and may not remain after combat + + + + +Creature Type->Summon in Combat + + + + + +Artifact Type + + +Artifact Type + +C++ Class: +CArtifact + +Represents an artifact type, for example Ring of Life + + + + +Artifact Type->Artifact Instance + + + + + +Artifact Component + + +Artifact Component + +C++ Class: +CArtifact + +For combined, non-fused artifacts, +instances of components are attached to instance of combined artifact + + + + +Artifact Component->Artifact Instance + + + + + +Army->Unit in Army + + + + + +Army->Summon in Combat + + + + + +Unit in Combat + + +Unit in Combat + +C++ Class: +CStack + +Represents current state of a unit during combat, +can be affected by spells or receive damage + + + + +Unit in Army->Unit in Combat + + + + + From 990f76625440e078055dadbb391dfc38f9e4c097 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sat, 10 May 2025 19:14:05 +0300 Subject: [PATCH 5/6] Update & expand docs on bonus limiters & updaters --- docs/modders/Bonus/Bonus_Limiters.md | 56 ++++++++++++++----- docs/modders/Bonus/Bonus_Updaters.md | 26 +++------ .../Entities_Format/Battle_Obstacle_Format.md | 4 +- .../Entities_Format/Battlefield_Format.md | 2 +- 4 files changed, 53 insertions(+), 35 deletions(-) diff --git a/docs/modders/Bonus/Bonus_Limiters.md b/docs/modders/Bonus/Bonus_Limiters.md index 304f6c043..283eefb39 100644 --- a/docs/modders/Bonus/Bonus_Limiters.md +++ b/docs/modders/Bonus/Bonus_Limiters.md @@ -23,20 +23,27 @@ Example: ### HAS_ANOTHER_BONUS_LIMITER +Bonus is only active if affected entity has another bonus that meets conditions + Parameters: - Bonus type -- (optional) bonus subtype -- (optional) bonus sourceType and sourceId in struct -- example: (from Adele's bless): +- bonus subtype +- bonus sourceType and sourceId in struct + +All parameters are optional. Values that don't need checking can be replaces with `null` + +Examples: + +- Adele specialty: active if unit has any bonus from Bless spell ```json "limiters" : [ { "type" : "HAS_ANOTHER_BONUS_LIMITER", "parameters" : [ - "GENERAL_DAMAGE_PREMY", - 1, + null, + null, { "type" : "SPELL_EFFECT", "id" : "spell.bless" @@ -46,18 +53,42 @@ Parameters: ], ``` +- Mutare specialty: active if unit has `DRAGON_NATURE` bonus + +```json + "limiters" : [ + { + "parameters" : [ "DRAGON_NATURE" ], + "type" : "HAS_ANOTHER_BONUS_LIMITER" + } + ], +``` + ### CREATURE_TYPE_LIMITER +Bonus is only active on creatures of specified type + Parameters: - Creature id (string) -- (optional) include upgrades - default is false +- (optional) include upgrades - default is false. If creature has multiple upgrades, or upgrades have their own upgrades, all such creatures will be affected. Special upgrades such as upgrades via specialties (Dragon, Gelu) are not affected + +Example: + +```json +"limiters": [ { + "type":"CREATURE_TYPE_LIMITER", + "parameters": [ "angel", true ] +} ], +``` ### CREATURE_ALIGNMENT_LIMITER +Bonus is only active on creatures of factions of specified alignment + Parameters: -- Alignment identifier +- Alignment identifier, `good`, `evil`, or `neutral` ### CREATURE_LEVEL_LIMITER @@ -82,13 +113,6 @@ Parameters: Example: -```json -"limiters": [ { - "type":"CREATURE_TYPE_LIMITER", - "parameters": [ "angel", true ] -} ], -``` - ```json "limiters" : [ { "type" : "CREATURE_TERRAIN_LIMITER", @@ -102,6 +126,10 @@ Parameters: - List of affected battlefield hexes +For reference on tiles indexes see image below: + +![Battlefield Hexes Layout](../../images/Battle_Field_Hexes.svg) + ## Aggregate Limiters The following limiters must be specified as the first element of a list, diff --git a/docs/modders/Bonus/Bonus_Updaters.md b/docs/modders/Bonus/Bonus_Updaters.md index e030cde9a..fef6f5346 100644 --- a/docs/modders/Bonus/Bonus_Updaters.md +++ b/docs/modders/Bonus/Bonus_Updaters.md @@ -1,12 +1,10 @@ # Bonus Updaters -TODO: this page may be incorrect or outdated - Updaters come in two forms: simple and complex. Simple updaters take no parameters and are specified as strings. Complex updaters do take parameters (sometimes optional), and are specified as structs. -Check the files in *config/heroes/* for additional usage examples. +Check the files in `config/heroes/` for additional usage examples. ## GROWS_WITH_LEVEL @@ -14,8 +12,7 @@ Check the files in *config/heroes/* for additional usage examples. - Parameters: valPer20, stepSize=1 - Effect: Updates val to `ceil(valPer20 * floor(heroLevel / stepSize) / 20)` -Example: The following updater will cause a bonus to grow by 6 for every -40 levels. At first level, rounding will cause the bonus to be 0. +Example: The following updater will cause a bonus to grow by 6 for every 40 levels. At first level, rounding will cause the bonus to be 0. ```json "updater" : { @@ -24,8 +21,7 @@ Example: The following updater will cause a bonus to grow by 6 for every } ``` -Example: The following updater will cause a bonus to grow by 3 for every -20 levels. At first level, rounding will cause the bonus to be 1. +Example: The following updater will cause a bonus to grow by 3 for every 20 levels. At first level, rounding will cause the bonus to be 1. ```json "updater" : { @@ -36,10 +32,8 @@ Example: The following updater will cause a bonus to grow by 3 for every Remarks: -- The rounding rules are designed to match the attack/defense bonus - progression for heroes with creature specialties in HMM3. -- There is no point in specifying val for a bonus with a - GROWS_WITH_LEVEL updater. +- The rounding rules are designed to match the attack/defense bonus progression for heroes with creature specialties in HMM3. +- There is no point in specifying val for a bonus with a GROWS_WITH_LEVEL updater. ## TIMES_HERO_LEVEL @@ -48,14 +42,10 @@ Remarks: Usage: `"updater" : "TIMES_HERO_LEVEL"` -Remark: This updater is redundant, in the sense that GROWS_WITH_LEVEL -can also express the desired scaling by setting valPer20 to 20\*val. It -has been added for convenience. - ## TIMES_STACK_LEVEL - Type: Simple -- Effect: Updates val to `val * stackLevel` +- Effect: Updates val to `val * stackLevel`, where `stackLevel` is level of stack (Pikeman is level 1, Angel is level 7) Usage: @@ -66,7 +56,7 @@ Remark: The stack level for war machines is 0. ## DIVIDE_STACK_LEVEL - Type: Simple -- Effect: Updates val to `val / stackLevel` +- Effect: Updates val to `val / stackLevel`, where `stackLevel` is level of stack (Pikeman is level 1, Angel is level 7) Usage: @@ -87,4 +77,4 @@ Usage: ## BONUS_OWNER_UPDATER -TODO: document me +Helper updater for proper functionality of `OPPOSITE_SIDE` limiter diff --git a/docs/modders/Entities_Format/Battle_Obstacle_Format.md b/docs/modders/Entities_Format/Battle_Obstacle_Format.md index 8c8d9dd96..f491b2900 100644 --- a/docs/modders/Entities_Format/Battle_Obstacle_Format.md +++ b/docs/modders/Entities_Format/Battle_Obstacle_Format.md @@ -38,10 +38,10 @@ Non-absolute obstacles specify their coordinates relative to bottom-left corner For example, obstacle that blocks tiles `[1, 2, 3, -15, -16, -31]` would result in following layout on the battlefield: -![Battlefield Relative Obstacle Example](../Battle_Field_Relative_Obstacle.svg) +![Battlefield Relative Obstacle Example](../../images/Battle_Field_Relative_Obstacle.svg) ### Absolute obstacles Absolute obstacles operate in absolute coordinates. Because of that, blocked tiles contains list of indexes of blocked tiles. For reference on tiles indexes see image below: -![Battlefield Hexes Layout](../Battle_Field_Hexes.svg) +![Battlefield Hexes Layout](../../images/Battle_Field_Hexes.svg) diff --git a/docs/modders/Entities_Format/Battlefield_Format.md b/docs/modders/Entities_Format/Battlefield_Format.md index b3887a224..e78f0d1f3 100644 --- a/docs/modders/Entities_Format/Battlefield_Format.md +++ b/docs/modders/Entities_Format/Battlefield_Format.md @@ -28,5 +28,5 @@ Impassable hexes operate in absolute coordinates. For reference on tiles indexes see image below: -![Battlefield Hexes Layout](../images/Battle_Field_Hexes.svg) +![Battlefield Hexes Layout](../../images/Battle_Field_Hexes.svg) From 0a74992268645f0b7189c2c8cc71e805736985c8 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 11 May 2025 19:57:07 +0300 Subject: [PATCH 6/6] Fix formatting --- docs/developers/Battlefield.md | 1 + docs/developers/Bonus_System.md | 2 +- docs/modders/Entities_Format/Battlefield_Format.md | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/developers/Battlefield.md b/docs/developers/Battlefield.md index 9aac7fc31..587d856bc 100644 --- a/docs/developers/Battlefield.md +++ b/docs/developers/Battlefield.md @@ -5,6 +5,7 @@ ![Battlefield Hexes Layout](../images/Battle_Field_Hexes.svg) Legend: + - gray (0/16/17...): inaccessible hexes located on both sides of the battlefield. Units can't normally move onto them, and they can't be targeted via spells. These hexes are used as back tile for war machines - green (1/15/35...): starting locations for units. Defined in `config/gameConfig.json` - yellow (18/32/52...): starting locations for war machines. Defined in `config/gameConfig.json` diff --git a/docs/developers/Bonus_System.md b/docs/developers/Bonus_System.md index bd4fb112f..7cc99c332 100644 --- a/docs/developers/Bonus_System.md +++ b/docs/developers/Bonus_System.md @@ -7,11 +7,11 @@ The bonus system of VCMI is a set of mechanisms that make handling of different ![Bonus System Nodes Diagram](../images/Bonus_System_Nodes.svg) Legend: + - brown: actual nodes, and members of bonus system graph - cyan: constant nodes that act only as source, and can not receive bonuses - gray: virtual nodes to clarify graph layout. Actual node is located below. For example, there is no entity for "Visiting Hero", instead visiting hero is hero that is attached to player node only via Town node. - ## Propagation and inheritance Each bonus originates from some node in the bonus system, and may have propagator and limiter objects attached to it. Bonuses are shared around as follows: diff --git a/docs/modders/Entities_Format/Battlefield_Format.md b/docs/modders/Entities_Format/Battlefield_Format.md index e78f0d1f3..06d3376f3 100644 --- a/docs/modders/Entities_Format/Battlefield_Format.md +++ b/docs/modders/Entities_Format/Battlefield_Format.md @@ -29,4 +29,3 @@ Impassable hexes operate in absolute coordinates. For reference on tiles indexes see image below: ![Battlefield Hexes Layout](../../images/Battle_Field_Hexes.svg) -