diff --git a/config/factions/tower.json b/config/factions/tower.json index 5ce5bc6a7..e3194218e 100644 --- a/config/factions/tower.json +++ b/config/factions/tower.json @@ -202,6 +202,7 @@ "produce" : { "gold": 5000 }, "bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.knowledge", "val": 15 }, + { "type": "COMBAT_MANA_BONUS", "val": 150 }, { "type": "FULL_MAP_SCOUTING" } ] }, diff --git a/docs/images/Bonus_System_Nodes.gv b/docs/images/Bonus_System_Nodes.gv index 9820405da..fdcea94b1 100644 --- a/docs/images/Bonus_System_Nodes.gv +++ b/docs/images/Bonus_System_Nodes.gv @@ -23,7 +23,7 @@ digraph mygraph { "Team" [ label =< - +
Team
Propagator: TEAM_PROPAGATOR
Propagator: TEAM
C++ Class: TeamState
Per-team node.
Game will put players without team
into a team with a single player
> @@ -31,7 +31,7 @@ digraph mygraph { "Player" [ label =< - +
Player
Propagator: PLAYER_PROPAGATOR
Propagator: PLAYER
C++ Class: CPlayerState
Per-player team.
All objects owned by a player
belong to such node
> @@ -50,13 +50,6 @@ digraph mygraph { Contains per-hero global bonuses, specialty bonuses,
primary and secondary skill bonuses, campaign primary skill bonus > ] - "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 { @@ -68,6 +61,13 @@ digraph mygraph { Hero that is currently
visiting owned or allied town > ] + "Hero defending town" [ + fillcolor="#80808080" + label =< + + +
Hero defending town
Hero that is currently
fighting on a defending side in a siege
> + ] "Wandering Hero" [ fillcolor="#80808080" label =< @@ -104,6 +104,7 @@ digraph mygraph { fillcolor="#80808080" label =<
+ @@ -133,7 +134,7 @@ digraph mygraph { "Town and visiting hero" [ label =<
Town
Propagator: TOWN
C++ Class: CGTownInstance
Represents a town on map.
Contains town building bonuses
- + @@ -183,6 +184,7 @@ digraph mygraph { "Army" [ label =<
Town and Visiting Hero
Propagator: VISITED_TOWN_AND_VISITOR
Propagator: 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
+ @@ -246,11 +248,13 @@ digraph mygraph { "Creature Type" -> "Summon in Combat" "Creature Type" -> "Unit in Army" + "Town" -> "Hero defending town" "Town" -> "Army" "Neutral Army" -> "Army" "Owned Army" -> "Army" "Visiting Hero" -> "Hero" + "Hero defending town" -> "Hero" "Wandering Hero" -> "Hero" "Hero" -> "Army" } diff --git a/docs/images/Bonus_System_Nodes.svg b/docs/images/Bonus_System_Nodes.svg index 9b1f71d6f..0e8c903b0 100644 --- a/docs/images/Bonus_System_Nodes.svg +++ b/docs/images/Bonus_System_Nodes.svg @@ -4,536 +4,542 @@ - - + + 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 - -Contains global bonuses, global stack experience and difficulty bonuses - + + +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 + +Contains global bonuses, global stack experience and difficulty bonuses + Team - - -Team - -Propagator: -TEAM_PROPAGATOR - -C++ Class: -TeamState - -Per-team node. -Game will put players without team -into a team with a single player - + + +Team + +Propagator: +TEAM + +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 - + + +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 - + + +Player + +Propagator: +PLAYER + +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 - + + +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 - + + +Owned Army + +Army owned by a player. +Mines, Garrisons, Dwellings + Player->Owned Army - - + + - + Owned Object - + + +Owned Object -Owned Object +Other objects owned by a player, like Lighthouse -Other objects owned by a player, like Lighthouse - -Contains Flaggable Objects bonuses - +Contains Flaggable Objects bonuses + Player->Owned Object - - + + - + 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 - + + +Town and Visiting Hero + +Propagator: +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 - -Contains per-hero global bonuses, specialty bonuses, -primary and secondary skill bonuses, campaign primary skill bonus - + + +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 + +Contains per-hero global bonuses, specialty bonuses, +primary and secondary skill bonuses, campaign primary skill bonus + Army - - -Army - -C++ Class: -CArmedInstance - -Represents any object that can hold army, -such as town, hero, mines, garrisons, wandering monsters - -Contain anti-magic garrison bonus, faction mixing morale bonus - + + +Army + +Propagator: +ARMY + +C++ Class: +CArmedInstance + +Represents any object that can hold army, +such as town, hero, mines, garrisons, wandering monsters + +Contain anti-magic garrison bonus, faction mixing morale bonus + 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 - -Contains battlefield and native terrain bonuses - - - - -Combat->Army - - + + - + Visiting Hero - - -Visiting Hero - -Hero that is currently -visiting owned or allied town - + + +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 - + + +Hero defending town + + +Hero defending town + +Hero that is currently +fighting on a defending side in a siege + - + -Garrisoned Hero->Hero - - +Hero defending town->Hero + + Wandering Hero->Hero - - + + Neutral Army->Army - - + + Owned Army->Army - - + + - + Town - - -Town - -C++ Class: -CGTownInstance - -Represents a town on map. - -Contains town building bonuses - + + +Town + +Propagator: +TOWN + +C++ Class: +CGTownInstance + +Represents a town on map. + +Contains town building bonuses + - + -Town->Garrisoned Hero - - +Town->Hero defending town + + Town->Army - - + + - + Artifact Instance - - -Artifact Instance - -C++ Class: -CArtifactInstance - -Represents a particular instance of an artifact - that hero can equip or trade - -Contains bonuses of spell scrolls and growing artifacts - + + +Artifact Instance + +C++ Class: +CArtifactInstance + +Represents a particular instance of an artifact + that hero can equip or trade + +Contains bonuses of spell scrolls and growing artifacts + Artifact Instance->Hero - - + + - + Boat - - -Boat - -C++ Class: -CGBoat - -Represents a boat or other type of transport. - -Contains bonuses provided to boarded hero - + + +Boat + +C++ Class: +CGBoat + +Represents a boat or other type of transport. + +Contains bonuses provided to boarded hero + Boat->Hero - - + + Town and visiting hero->Visiting Hero - - + + Town and visiting hero->Town - - + + + + + +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 + +Contains battlefield and native terrain bonuses + + + + +Combat->Army + + Creature Type - - -Creature Type - -C++ Class: -CCreature - -Represents a creature type, such as Pikeman or Archer - -Contains creature abilities bonuses, stack experience bonuses - + + +Creature Type + +C++ Class: +CCreature + +Represents a creature type, such as Pikeman or Archer + +Contains creature abilities bonuses, stack experience bonuses + 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 - + + +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 - - + + Commander - - -Commander - -C++ Class: -CCommanderInstance - -Represents a hero commander, WoG feature - + + +Commander + +C++ Class: +CCommanderInstance + +Represents a hero commander, WoG feature + Creature Type->Commander - - + + Summon in Combat - - -Summon in Combat - -C++ Class: -CStack - -Represents any unit that was added in combat, -and may not remain after 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 - -Contains fixed bonuses of artifacts - + + +Artifact Type + +C++ Class: +CArtifact + +Represents an artifact type, for example Ring of Life + +Contains fixed bonuses of artifacts + Artifact Type->Artifact Instance - - + + Artifact Component - - -Artifact Component - -C++ Class: -CArtifactInstance - -For combined, non-fused artifacts, -instances of components are attached to instance of combined artifact - + + +Artifact Component + +C++ Class: +CArtifactInstance + +For combined, non-fused artifacts, +instances of components are attached to instance of combined artifact + Artifact Component->Artifact Instance - - + + Army->Unit in Army - - + + Army->Commander - - + + 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 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 - - + + Commander->Unit in Combat - - + + diff --git a/docs/modders/Bonus/Bonus_Types.md b/docs/modders/Bonus/Bonus_Types.md index c57663eef..8f6ca055d 100644 --- a/docs/modders/Bonus/Bonus_Types.md +++ b/docs/modders/Bonus/Bonus_Types.md @@ -264,6 +264,12 @@ Defines maximum level of spells than hero can learn from any source (Wisdom) - val: maximal level to learn +### COMBAT_MANA_BONUS + +Grants affected hero additional mana for the duration of combat. Bonus may give total mana above mana limit. Any additional mana not spent during combat will be lost. + +- val: amount of additional mana + ## Hero specialties ### SPECIAL_SPELL_LEV
Army
Propagator: ARMY
C++ Class: CArmedInstance
Represents any object that can hold army,
such as town, hero, mines, garrisons, wandering monsters
Contain anti-magic garrison bonus, faction mixing morale bonus