Bonus_System_Nodes.svg 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  3. "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  4. <!-- Generated by graphviz version 2.43.0 (0)
  5. -->
  6. <!-- Title: mygraph Pages: 1 -->
  7. <svg width="1847pt" height="1571pt"
  8. viewBox="0.00 0.00 1847.00 1571.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  9. <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1567)">
  10. <title>mygraph</title>
  11. <polygon fill="white" stroke="transparent" points="-4,4 -4,-1567 1843,-1567 1843,4 -4,4"/>
  12. <!-- Global -->
  13. <g id="node1" class="node">
  14. <title>Global</title>
  15. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1382,-1563 892,-1563 892,-1391 1382,-1391 1382,-1563"/>
  16. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="895,-1539 895,-1560 1379,-1560 1379,-1539 895,-1539"/>
  17. <text text-anchor="start" x="1113.5" y="-1546.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Global</text>
  18. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="895,-1516 895,-1537 1379,-1537 1379,-1516 895,-1516"/>
  19. <text text-anchor="start" x="1041" y="-1523.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  20. <text text-anchor="start" x="1125" y="-1523.8" font-family="monospace" font-weight="bold" font-size="14.00">GLOBAL_EFFECT</text>
  21. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="895,-1493 895,-1514 1379,-1514 1379,-1493 895,-1493"/>
  22. <text text-anchor="start" x="1061.5" y="-1500.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  23. <text text-anchor="start" x="1129.5" y="-1500.8" font-family="monospace" font-weight="bold" font-size="14.00">CGameState</text>
  24. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="895,-1455 895,-1491 1379,-1491 1379,-1455 895,-1455"/>
  25. <text text-anchor="start" x="1065.5" y="-1476.8" font-family="Noto Serif" font-size="14.00">Global node to which</text>
  26. <text text-anchor="start" x="1035.5" y="-1461.8" font-family="Noto Serif" font-size="14.00">all map entities are connected</text>
  27. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="895,-1417 895,-1453 1379,-1453 1379,-1417 895,-1417"/>
  28. <text text-anchor="start" x="984" y="-1438.8" font-family="Noto Serif" font-size="14.00">Note: Not recruited heroes (such as in tavern)</text>
  29. <text text-anchor="start" x="1039.5" y="-1423.8" font-family="Noto Serif" font-size="14.00">are not attached to any node</text>
  30. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="895,-1394 895,-1415 1379,-1415 1379,-1394 895,-1394"/>
  31. <text text-anchor="start" x="898" y="-1400.8" font-family="Noto Serif" font-size="14.00">Contains global bonuses, global stack experience and difficulty bonuses</text>
  32. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="892,-1391 892,-1563 1382,-1563 1382,-1391 892,-1391"/>
  33. </g>
  34. <!-- Team -->
  35. <g id="node2" class="node">
  36. <title>Team</title>
  37. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1186.5,-1355 931.5,-1355 931.5,-1229 1186.5,-1229 1186.5,-1355"/>
  38. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="935,-1331 935,-1352 1184,-1352 1184,-1331 935,-1331"/>
  39. <text text-anchor="start" x="1039.5" y="-1338.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Team</text>
  40. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="935,-1308 935,-1329 1184,-1329 1184,-1308 935,-1308"/>
  41. <text text-anchor="start" x="1000.5" y="-1315.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  42. <text text-anchor="start" x="1084.5" y="-1315.8" font-family="monospace" font-weight="bold" font-size="14.00">TEAM</text>
  43. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="935,-1285 935,-1306 1184,-1306 1184,-1285 935,-1285"/>
  44. <text text-anchor="start" x="988" y="-1292.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  45. <text text-anchor="start" x="1056" y="-1292.8" font-family="monospace" font-weight="bold" font-size="14.00">TeamState</text>
  46. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="935,-1232 935,-1283 1184,-1283 1184,-1232 935,-1232"/>
  47. <text text-anchor="start" x="1008" y="-1268.8" font-family="Noto Serif" font-size="14.00">Per&#45;team node.</text>
  48. <text text-anchor="start" x="938" y="-1253.8" font-family="Noto Serif" font-size="14.00">Game will put players without team</text>
  49. <text text-anchor="start" x="952.5" y="-1238.8" font-family="Noto Serif" font-size="14.00">into a team with a single player</text>
  50. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="931.5,-1229 931.5,-1355 1186.5,-1355 1186.5,-1229 931.5,-1229"/>
  51. </g>
  52. <!-- Global&#45;&gt;Team -->
  53. <g id="edge1" class="edge">
  54. <title>Global&#45;&gt;Team</title>
  55. <path fill="none" stroke="black" d="M1100.74,-1390.93C1096.97,-1382.09 1093.17,-1373.16 1089.47,-1364.49"/>
  56. <polygon fill="black" stroke="black" points="1092.65,-1363.03 1085.51,-1355.2 1086.21,-1365.77 1092.65,-1363.03"/>
  57. </g>
  58. <!-- Neutral Army -->
  59. <g id="node8" class="node">
  60. <title>Neutral Army</title>
  61. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1839,-702 1559,-702 1559,-637 1839,-637 1839,-702"/>
  62. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1562,-677.5 1562,-698.5 1836,-698.5 1836,-677.5 1562,-677.5"/>
  63. <text text-anchor="start" x="1649.5" y="-685.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Neutral Army</text>
  64. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1562,-639.5 1562,-675.5 1836,-675.5 1836,-639.5 1562,-639.5"/>
  65. <text text-anchor="start" x="1565.5" y="-661.3" font-family="Noto Serif" font-size="14.00">Any army that is not owned by a player</text>
  66. <text text-anchor="start" x="1565" y="-646.3" font-family="Noto Serif" font-size="14.00">Wandering monsters, Banks, Events, etc</text>
  67. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1559,-637 1559,-702 1839,-702 1839,-637 1559,-637"/>
  68. </g>
  69. <!-- Global&#45;&gt;Neutral Army -->
  70. <g id="edge2" class="edge">
  71. <title>Global&#45;&gt;Neutral Army</title>
  72. <path fill="none" stroke="black" d="M1382.07,-1427.94C1537.32,-1381.63 1709,-1293.65 1709,-1131 1709,-1131 1709,-1131 1709,-963 1709,-873.55 1704.27,-768.8 1701.32,-712.1"/>
  73. <polygon fill="black" stroke="black" points="1704.81,-711.89 1700.79,-702.09 1697.82,-712.26 1704.81,-711.89"/>
  74. </g>
  75. <!-- Player -->
  76. <g id="node3" class="node">
  77. <title>Player</title>
  78. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="669.5,-1193 460.5,-1193 460.5,-1067 669.5,-1067 669.5,-1193"/>
  79. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="464,-1169 464,-1190 667,-1190 667,-1169 464,-1169"/>
  80. <text text-anchor="start" x="542" y="-1176.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Player</text>
  81. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="464,-1146 464,-1167 667,-1167 667,-1146 464,-1146"/>
  82. <text text-anchor="start" x="498.5" y="-1153.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  83. <text text-anchor="start" x="582.5" y="-1153.8" font-family="monospace" font-weight="bold" font-size="14.00">PLAYER</text>
  84. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="464,-1123 464,-1144 667,-1144 667,-1123 464,-1123"/>
  85. <text text-anchor="start" x="481.5" y="-1130.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  86. <text text-anchor="start" x="549.5" y="-1130.8" font-family="monospace" font-weight="bold" font-size="14.00">CPlayerState</text>
  87. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="464,-1070 464,-1121 667,-1121 667,-1070 464,-1070"/>
  88. <text text-anchor="start" x="509.5" y="-1106.8" font-family="Noto Serif" font-size="14.00">Per&#45;player team.</text>
  89. <text text-anchor="start" x="467" y="-1091.8" font-family="Noto Serif" font-size="14.00">All objects owned by a player</text>
  90. <text text-anchor="start" x="498.5" y="-1076.8" font-family="Noto Serif" font-size="14.00">belong to such node</text>
  91. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="460.5,-1067 460.5,-1193 669.5,-1193 669.5,-1067 460.5,-1067"/>
  92. </g>
  93. <!-- Team&#45;&gt;Player -->
  94. <g id="edge3" class="edge">
  95. <title>Team&#45;&gt;Player</title>
  96. <path fill="none" stroke="black" d="M931.46,-1249.69C853.47,-1224.43 754.53,-1192.39 679.13,-1167.96"/>
  97. <polygon fill="black" stroke="black" points="680.18,-1164.63 669.59,-1164.87 678.02,-1171.28 680.18,-1164.63"/>
  98. </g>
  99. <!-- Wandering Hero -->
  100. <g id="node7" class="node">
  101. <title>Wandering Hero</title>
  102. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1522,-702 1286,-702 1286,-637 1522,-637 1522,-702"/>
  103. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1289,-677.5 1289,-698.5 1519,-698.5 1519,-677.5 1289,-677.5"/>
  104. <text text-anchor="start" x="1345" y="-685.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Wandering Hero</text>
  105. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1289,-639.5 1289,-675.5 1519,-675.5 1519,-639.5 1289,-639.5"/>
  106. <text text-anchor="start" x="1330" y="-661.3" font-family="Noto Serif" font-size="14.00">Hero that is currently</text>
  107. <text text-anchor="start" x="1292" y="-646.3" font-family="Noto Serif" font-size="14.00">moving on map, outside of towns</text>
  108. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1286,-637 1286,-702 1522,-702 1522,-637 1286,-637"/>
  109. </g>
  110. <!-- Player&#45;&gt;Wandering Hero -->
  111. <g id="edge5" class="edge">
  112. <title>Player&#45;&gt;Wandering Hero</title>
  113. <path fill="none" stroke="black" d="M669.91,-1127.41C929.66,-1122.38 1586.53,-1102.64 1652,-1031 1749.85,-923.93 1563.78,-776.04 1462.88,-707.78"/>
  114. <polygon fill="black" stroke="black" points="1464.54,-704.67 1454.28,-702.01 1460.64,-710.49 1464.54,-704.67"/>
  115. </g>
  116. <!-- Owned Army -->
  117. <g id="node9" class="node">
  118. <title>Owned Army</title>
  119. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="555.5,-702 356.5,-702 356.5,-637 555.5,-637 555.5,-702"/>
  120. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="360,-677.5 360,-698.5 553,-698.5 553,-677.5 360,-677.5"/>
  121. <text text-anchor="start" x="409.5" y="-685.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Owned Army</text>
  122. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="360,-639.5 360,-675.5 553,-675.5 553,-639.5 360,-639.5"/>
  123. <text text-anchor="start" x="373" y="-661.3" font-family="Noto Serif" font-size="14.00">Army owned by a player.</text>
  124. <text text-anchor="start" x="363" y="-646.3" font-family="Noto Serif" font-size="14.00">Mines, Garrisons, Dwellings</text>
  125. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="356.5,-637 356.5,-702 555.5,-702 555.5,-637 356.5,-637"/>
  126. </g>
  127. <!-- Player&#45;&gt;Owned Army -->
  128. <g id="edge6" class="edge">
  129. <title>Player&#45;&gt;Owned Army</title>
  130. <path fill="none" stroke="black" d="M460.3,-1103.68C422.65,-1088.98 384.05,-1066.14 362,-1031 297.12,-927.64 378.94,-780.81 426.46,-710.73"/>
  131. <polygon fill="black" stroke="black" points="429.56,-712.39 432.35,-702.17 423.8,-708.42 429.56,-712.39"/>
  132. </g>
  133. <!-- Owned Object -->
  134. <g id="node10" class="node">
  135. <title>Owned Object</title>
  136. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="338,-706 0,-706 0,-633 338,-633 338,-706"/>
  137. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="3,-681.5 3,-702.5 335,-702.5 335,-681.5 3,-681.5"/>
  138. <text text-anchor="start" x="119" y="-689.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Owned Object</text>
  139. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="3,-658.5 3,-679.5 335,-679.5 335,-658.5 3,-658.5"/>
  140. <text text-anchor="start" x="6" y="-665.3" font-family="Noto Serif" font-size="14.00">Other objects owned by a player, like Lighthouse</text>
  141. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="3,-635.5 3,-656.5 335,-656.5 335,-635.5 3,-635.5"/>
  142. <text text-anchor="start" x="50" y="-642.3" font-family="Noto Serif" font-size="14.00">Contains Flaggable Objects bonuses</text>
  143. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="0,-633 0,-706 338,-706 338,-633 0,-633"/>
  144. </g>
  145. <!-- Player&#45;&gt;Owned Object -->
  146. <g id="edge7" class="edge">
  147. <title>Player&#45;&gt;Owned Object</title>
  148. <path fill="none" stroke="black" d="M460.28,-1102.84C416.92,-1087.72 368.75,-1064.79 334,-1031 242.09,-941.63 196.58,-791.5 178.61,-716.31"/>
  149. <polygon fill="black" stroke="black" points="181.93,-715.16 176.25,-706.21 175.11,-716.75 181.93,-715.16"/>
  150. </g>
  151. <!-- Town and visiting hero -->
  152. <g id="node14" class="node">
  153. <title>Town and visiting hero</title>
  154. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="758.5,-1031 371.5,-1031 371.5,-897 758.5,-897 758.5,-1031"/>
  155. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="375,-1007 375,-1028 756,-1028 756,-1007 375,-1007"/>
  156. <text text-anchor="start" x="482.5" y="-1014.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Town and Visiting Hero</text>
  157. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="375,-984 375,-1005 756,-1005 756,-984 375,-984"/>
  158. <text text-anchor="start" x="457" y="-991.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  159. <text text-anchor="start" x="541" y="-991.8" font-family="monospace" font-weight="bold" font-size="14.00">TOWN_AND_VISITOR</text>
  160. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="375,-961 375,-982 756,-982 756,-961 375,-961"/>
  161. <text text-anchor="start" x="448.5" y="-968.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  162. <text text-anchor="start" x="516.5" y="-968.8" font-family="monospace" font-weight="bold" font-size="14.00">CTownAndVisitingHero</text>
  163. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="375,-923 375,-959 756,-959 756,-923 375,-923"/>
  164. <text text-anchor="start" x="466" y="-944.8" font-family="Noto Serif" font-size="14.00">Helper node that exists solely</text>
  165. <text text-anchor="start" x="389.5" y="-929.8" font-family="Noto Serif" font-size="14.00">to propagate bonuses to both town and visiting hero</text>
  166. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="375,-900 375,-921 756,-921 756,-900 375,-900"/>
  167. <text text-anchor="start" x="378" y="-906.8" font-family="Noto Serif" font-size="14.00">Note: Neutral towns are attached to global node instead</text>
  168. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="371.5,-897 371.5,-1031 758.5,-1031 758.5,-897 371.5,-897"/>
  169. </g>
  170. <!-- Player&#45;&gt;Town and visiting hero -->
  171. <g id="edge4" class="edge">
  172. <title>Player&#45;&gt;Town and visiting hero</title>
  173. <path fill="none" stroke="black" d="M565,-1067C565,-1058.59 565,-1049.88 565,-1041.26"/>
  174. <polygon fill="black" stroke="black" points="568.5,-1041.19 565,-1031.19 561.5,-1041.19 568.5,-1041.19"/>
  175. </g>
  176. <!-- Hero -->
  177. <g id="node4" class="node">
  178. <title>Hero</title>
  179. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1209.5,-597 740.5,-597 740.5,-433 1209.5,-433 1209.5,-597"/>
  180. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="744,-573 744,-594 1207,-594 1207,-573 744,-573"/>
  181. <text text-anchor="start" x="957.5" y="-580.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Hero</text>
  182. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="744,-550 744,-571 1207,-571 1207,-550 744,-550"/>
  183. <text text-anchor="start" x="916.5" y="-557.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  184. <text text-anchor="start" x="1000.5" y="-557.8" font-family="monospace" font-weight="bold" font-size="14.00">HERO</text>
  185. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="744,-527 744,-548 1207,-548 1207,-527 744,-527"/>
  186. <text text-anchor="start" x="883.5" y="-534.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  187. <text text-anchor="start" x="951.5" y="-534.8" font-family="monospace" font-weight="bold" font-size="14.00">CGHeroInstance</text>
  188. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="744,-474 744,-525 1207,-525 1207,-474 744,-474"/>
  189. <text text-anchor="start" x="790.5" y="-510.8" font-family="Noto Serif" font-size="14.00">Represents a hero, either owned by player or in prison.</text>
  190. <text text-anchor="start" x="828" y="-495.8" font-family="Noto Serif" font-size="14.00">Bonuses from specialty and secondary skills</text>
  191. <text text-anchor="start" x="864" y="-480.8" font-family="Noto Serif" font-size="14.00">are attached directly to this node</text>
  192. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="744,-436 744,-472 1207,-472 1207,-436 744,-436"/>
  193. <text text-anchor="start" x="797.5" y="-457.8" font-family="Noto Serif" font-size="14.00">Contains per&#45;hero global bonuses, specialty bonuses, </text>
  194. <text text-anchor="start" x="747" y="-442.8" font-family="Noto Serif" font-size="14.00">primary and secondary skill bonuses, campaign primary skill bonus</text>
  195. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="740.5,-433 740.5,-597 1209.5,-597 1209.5,-433 740.5,-433"/>
  196. </g>
  197. <!-- Army -->
  198. <g id="node19" class="node">
  199. <title>Army</title>
  200. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1199,-397 751,-397 751,-263 1199,-263 1199,-397"/>
  201. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="754,-373 754,-394 1196,-394 1196,-373 754,-373"/>
  202. <text text-anchor="start" x="955" y="-380.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Army</text>
  203. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="754,-350 754,-371 1196,-371 1196,-350 754,-350"/>
  204. <text text-anchor="start" x="916" y="-357.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  205. <text text-anchor="start" x="1000" y="-357.8" font-family="monospace" font-weight="bold" font-size="14.00">ARMY</text>
  206. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="754,-327 754,-348 1196,-348 1196,-327 754,-327"/>
  207. <text text-anchor="start" x="883" y="-334.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  208. <text text-anchor="start" x="951" y="-334.8" font-family="monospace" font-weight="bold" font-size="14.00">CArmedInstance</text>
  209. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="754,-289 754,-325 1196,-325 1196,-289 754,-289"/>
  210. <text text-anchor="start" x="834" y="-310.8" font-family="Noto Serif" font-size="14.00">Represents any object that can hold army,</text>
  211. <text text-anchor="start" x="779.5" y="-295.8" font-family="Noto Serif" font-size="14.00">such as town, hero, mines, garrisons, wandering monsters</text>
  212. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="754,-266 754,-287 1196,-287 1196,-266 754,-266"/>
  213. <text text-anchor="start" x="757" y="-272.8" font-family="Noto Serif" font-size="14.00">Contain anti&#45;magic garrison bonus, faction mixing morale bonus</text>
  214. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="751,-263 751,-397 1199,-397 1199,-263 751,-263"/>
  215. </g>
  216. <!-- Hero&#45;&gt;Army -->
  217. <g id="edge30" class="edge">
  218. <title>Hero&#45;&gt;Army</title>
  219. <path fill="none" stroke="black" d="M975,-432.93C975,-424.44 975,-415.82 975,-407.38"/>
  220. <polygon fill="black" stroke="black" points="978.5,-407.19 975,-397.19 971.5,-407.19 978.5,-407.19"/>
  221. </g>
  222. <!-- Visiting Hero -->
  223. <g id="node5" class="node">
  224. <title>Visiting Hero</title>
  225. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1150.5,-702 941.5,-702 941.5,-637 1150.5,-637 1150.5,-702"/>
  226. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="945,-677.5 945,-698.5 1148,-698.5 1148,-677.5 945,-677.5"/>
  227. <text text-anchor="start" x="999.5" y="-685.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Visiting Hero</text>
  228. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="945,-639.5 945,-675.5 1148,-675.5 1148,-639.5 945,-639.5"/>
  229. <text text-anchor="start" x="972.5" y="-661.3" font-family="Noto Serif" font-size="14.00">Hero that is currently</text>
  230. <text text-anchor="start" x="948" y="-646.3" font-family="Noto Serif" font-size="14.00">visiting owned or allied town</text>
  231. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="941.5,-637 941.5,-702 1150.5,-702 1150.5,-637 941.5,-637"/>
  232. </g>
  233. <!-- Visiting Hero&#45;&gt;Hero -->
  234. <g id="edge27" class="edge">
  235. <title>Visiting Hero&#45;&gt;Hero</title>
  236. <path fill="none" stroke="black" d="M1031.29,-636.9C1027.04,-627.77 1022.17,-617.32 1017.12,-606.46"/>
  237. <polygon fill="black" stroke="black" points="1020.23,-604.86 1012.84,-597.28 1013.89,-607.82 1020.23,-604.86"/>
  238. </g>
  239. <!-- Hero defending town -->
  240. <g id="node6" class="node">
  241. <title>Hero defending town</title>
  242. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="876,-702 612,-702 612,-637 876,-637 876,-702"/>
  243. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="615,-677.5 615,-698.5 873,-698.5 873,-677.5 615,-677.5"/>
  244. <text text-anchor="start" x="669" y="-685.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Hero defending town</text>
  245. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="615,-639.5 615,-675.5 873,-675.5 873,-639.5 615,-639.5"/>
  246. <text text-anchor="start" x="670" y="-661.3" font-family="Noto Serif" font-size="14.00">Hero that is currently</text>
  247. <text text-anchor="start" x="618" y="-646.3" font-family="Noto Serif" font-size="14.00">fighting on a defending side in a siege</text>
  248. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="612,-637 612,-702 876,-702 876,-637 612,-637"/>
  249. </g>
  250. <!-- Hero defending town&#45;&gt;Hero -->
  251. <g id="edge28" class="edge">
  252. <title>Hero defending town&#45;&gt;Hero</title>
  253. <path fill="none" stroke="black" d="M791.86,-636.9C807.22,-626.76 825.04,-615 843.41,-602.87"/>
  254. <polygon fill="black" stroke="black" points="845.47,-605.71 851.89,-597.28 841.61,-599.87 845.47,-605.71"/>
  255. </g>
  256. <!-- Wandering Hero&#45;&gt;Hero -->
  257. <g id="edge29" class="edge">
  258. <title>Wandering Hero&#45;&gt;Hero</title>
  259. <path fill="none" stroke="black" d="M1315.37,-636.99C1284.97,-626.19 1249.34,-613.52 1212.8,-600.53"/>
  260. <polygon fill="black" stroke="black" points="1213.58,-597.09 1202.98,-597.04 1211.23,-603.69 1213.58,-597.09"/>
  261. </g>
  262. <!-- Neutral Army&#45;&gt;Army -->
  263. <g id="edge25" class="edge">
  264. <title>Neutral Army&#45;&gt;Army</title>
  265. <path fill="none" stroke="black" d="M1558.9,-638.05C1549.48,-636.26 1540.11,-634.56 1531,-633 1470.47,-622.64 1302.48,-638.27 1257,-597 1201.59,-546.72 1267.27,-490.16 1219,-433 1209.61,-421.88 1198.81,-411.96 1187.09,-403.1"/>
  266. <polygon fill="black" stroke="black" points="1188.99,-400.15 1178.83,-397.13 1184.89,-405.82 1188.99,-400.15"/>
  267. </g>
  268. <!-- Owned Army&#45;&gt;Army -->
  269. <g id="edge26" class="edge">
  270. <title>Owned Army&#45;&gt;Army</title>
  271. <path fill="none" stroke="black" d="M462.31,-636.86C474.15,-585.95 504.66,-486.2 570,-433 618.57,-393.45 680.47,-368.98 741.18,-353.92"/>
  272. <polygon fill="black" stroke="black" points="742,-357.32 750.91,-351.58 740.37,-350.51 742,-357.32"/>
  273. </g>
  274. <!-- Town -->
  275. <g id="node11" class="node">
  276. <title>Town</title>
  277. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="692,-861 466,-861 466,-742 692,-742 692,-861"/>
  278. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="469,-836.5 469,-857.5 689,-857.5 689,-836.5 469,-836.5"/>
  279. <text text-anchor="start" x="559.5" y="-844.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Town</text>
  280. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="469,-813.5 469,-834.5 689,-834.5 689,-813.5 469,-813.5"/>
  281. <text text-anchor="start" x="520" y="-821.3" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  282. <text text-anchor="start" x="604" y="-821.3" font-family="monospace" font-weight="bold" font-size="14.00">TOWN</text>
  283. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="469,-790.5 469,-811.5 689,-811.5 689,-790.5 469,-790.5"/>
  284. <text text-anchor="start" x="487" y="-798.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  285. <text text-anchor="start" x="555" y="-798.3" font-family="monospace" font-weight="bold" font-size="14.00">CGTownInstance</text>
  286. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="469,-767.5 469,-788.5 689,-788.5 689,-767.5 469,-767.5"/>
  287. <text text-anchor="start" x="488" y="-774.3" font-family="Noto Serif" font-size="14.00">Represents a town on map.</text>
  288. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="469,-744.5 469,-765.5 689,-765.5 689,-744.5 469,-744.5"/>
  289. <text text-anchor="start" x="472" y="-751.3" font-family="Noto Serif" font-size="14.00">Contains town building bonuses</text>
  290. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="466,-742 466,-861 692,-861 692,-742 466,-742"/>
  291. </g>
  292. <!-- Town&#45;&gt;Hero defending town -->
  293. <g id="edge23" class="edge">
  294. <title>Town&#45;&gt;Hero defending town</title>
  295. <path fill="none" stroke="black" d="M653.29,-741.97C667.74,-730.58 682.53,-718.93 695.87,-708.42"/>
  296. <polygon fill="black" stroke="black" points="698.27,-710.98 703.96,-702.04 693.94,-705.48 698.27,-710.98"/>
  297. </g>
  298. <!-- Town&#45;&gt;Army -->
  299. <g id="edge24" class="edge">
  300. <title>Town&#45;&gt;Army</title>
  301. <path fill="none" stroke="black" d="M581.26,-741.61C584.03,-708.79 590.04,-667.67 603,-633 640.02,-533.92 650.94,-500.95 732,-433 745.61,-421.59 760.68,-411.3 776.45,-402.04"/>
  302. <polygon fill="black" stroke="black" points="778.32,-405 785.28,-397.01 774.86,-398.92 778.32,-405"/>
  303. </g>
  304. <!-- Artifact Instance -->
  305. <g id="node12" class="node">
  306. <title>Artifact Instance</title>
  307. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1454,-857 1078,-857 1078,-746 1454,-746 1454,-857"/>
  308. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1081,-832.5 1081,-853.5 1451,-853.5 1451,-832.5 1081,-832.5"/>
  309. <text text-anchor="start" x="1205.5" y="-840.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Artifact Instance</text>
  310. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1081,-809.5 1081,-830.5 1451,-830.5 1451,-809.5 1081,-809.5"/>
  311. <text text-anchor="start" x="1161.5" y="-817.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  312. <text text-anchor="start" x="1229.5" y="-817.3" font-family="monospace" font-weight="bold" font-size="14.00">CArtifactInstance</text>
  313. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1081,-771.5 1081,-807.5 1451,-807.5 1451,-771.5 1081,-771.5"/>
  314. <text text-anchor="start" x="1111" y="-793.3" font-family="Noto Serif" font-size="14.00">Represents a particular instance of an artifact</text>
  315. <text text-anchor="start" x="1169" y="-778.3" font-family="Noto Serif" font-size="14.00"> that hero can equip or trade</text>
  316. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1081,-748.5 1081,-769.5 1451,-769.5 1451,-748.5 1081,-748.5"/>
  317. <text text-anchor="start" x="1084" y="-755.3" font-family="Noto Serif" font-size="14.00">Contains bonuses of spell scrolls and growing artifacts</text>
  318. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1078,-746 1078,-857 1454,-857 1454,-746 1078,-746"/>
  319. </g>
  320. <!-- Artifact Instance&#45;&gt;Hero -->
  321. <g id="edge19" class="edge">
  322. <title>Artifact Instance&#45;&gt;Hero</title>
  323. <path fill="none" stroke="black" d="M1239.36,-745.63C1220.54,-710.63 1192.86,-665.85 1160,-633 1149.53,-622.53 1137.96,-612.54 1125.87,-603.12"/>
  324. <polygon fill="black" stroke="black" points="1127.93,-600.29 1117.85,-597.01 1123.69,-605.86 1127.93,-600.29"/>
  325. </g>
  326. <!-- Boat -->
  327. <g id="node13" class="node">
  328. <title>Boat</title>
  329. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1021.5,-849.5 710.5,-849.5 710.5,-753.5 1021.5,-753.5 1021.5,-849.5"/>
  330. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="714,-825.5 714,-846.5 1019,-846.5 1019,-825.5 714,-825.5"/>
  331. <text text-anchor="start" x="850" y="-833.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Boat</text>
  332. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="714,-802.5 714,-823.5 1019,-823.5 1019,-802.5 714,-802.5"/>
  333. <text text-anchor="start" x="807.5" y="-810.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  334. <text text-anchor="start" x="875.5" y="-810.3" font-family="monospace" font-weight="bold" font-size="14.00">CGBoat</text>
  335. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="714,-779.5 714,-800.5 1019,-800.5 1019,-779.5 714,-779.5"/>
  336. <text text-anchor="start" x="717" y="-786.3" font-family="Noto Serif" font-size="14.00">Represents a boat or other type of transport.</text>
  337. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="714,-756.5 714,-777.5 1019,-777.5 1019,-756.5 714,-756.5"/>
  338. <text text-anchor="start" x="720.5" y="-763.3" font-family="Noto Serif" font-size="14.00">Contains bonuses provided to boarded hero</text>
  339. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="710.5,-753.5 710.5,-849.5 1021.5,-849.5 1021.5,-753.5 710.5,-753.5"/>
  340. </g>
  341. <!-- Boat&#45;&gt;Hero -->
  342. <g id="edge10" class="edge">
  343. <title>Boat&#45;&gt;Hero</title>
  344. <path fill="none" stroke="black" d="M884.12,-753.2C899.36,-713.43 921.58,-655.43 940.24,-606.74"/>
  345. <polygon fill="black" stroke="black" points="943.61,-607.72 943.92,-597.13 937.07,-605.22 943.61,-607.72"/>
  346. </g>
  347. <!-- Town and visiting hero&#45;&gt;Visiting Hero -->
  348. <g id="edge9" class="edge">
  349. <title>Town and visiting hero&#45;&gt;Visiting Hero</title>
  350. <path fill="none" stroke="black" d="M758.73,-899.19C761.84,-898.43 764.93,-897.7 768,-897 825.5,-883.83 990.5,-903.89 1031,-861 1068.11,-821.7 1064.06,-755.25 1056.21,-712.14"/>
  351. <polygon fill="black" stroke="black" points="1059.63,-711.38 1054.26,-702.25 1052.76,-712.73 1059.63,-711.38"/>
  352. </g>
  353. <!-- Town and visiting hero&#45;&gt;Town -->
  354. <g id="edge8" class="edge">
  355. <title>Town and visiting hero&#45;&gt;Town</title>
  356. <path fill="none" stroke="black" d="M570.78,-896.79C571.51,-888.38 572.26,-879.76 573,-871.31"/>
  357. <polygon fill="black" stroke="black" points="576.51,-871.38 573.89,-861.11 569.53,-870.77 576.51,-871.38"/>
  358. </g>
  359. <!-- Combat -->
  360. <g id="node15" class="node">
  361. <title>Combat</title>
  362. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1716,-582 1266,-582 1266,-448 1716,-448 1716,-582"/>
  363. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1269,-558 1269,-579 1713,-579 1713,-558 1269,-558"/>
  364. <text text-anchor="start" x="1463.5" y="-565.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Combat</text>
  365. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1269,-535 1269,-556 1713,-556 1713,-535 1269,-535"/>
  366. <text text-anchor="start" x="1403.5" y="-542.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  367. <text text-anchor="start" x="1487.5" y="-542.8" font-family="monospace" font-weight="bold" font-size="14.00">BATTLE_WIDE</text>
  368. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1269,-512 1269,-533 1713,-533 1713,-512 1269,-512"/>
  369. <text text-anchor="start" x="1415.5" y="-519.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  370. <text text-anchor="start" x="1483.5" y="-519.8" font-family="monospace" font-weight="bold" font-size="14.00">BattleInfo</text>
  371. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1269,-474 1269,-510 1713,-510 1713,-474 1269,-474"/>
  372. <text text-anchor="start" x="1350.5" y="-495.8" font-family="Noto Serif" font-size="14.00">Node that contains both sides of a combat</text>
  373. <text text-anchor="start" x="1272" y="-480.8" font-family="Noto Serif" font-size="14.00">Anything propagated to this node will affect both sides in combat</text>
  374. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1269,-451 1269,-472 1713,-472 1713,-451 1269,-451"/>
  375. <text text-anchor="start" x="1333" y="-457.8" font-family="Noto Serif" font-size="14.00">Contains battlefield and native terrain bonuses</text>
  376. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1266,-448 1266,-582 1716,-582 1716,-448 1266,-448"/>
  377. </g>
  378. <!-- Combat&#45;&gt;Army -->
  379. <g id="edge11" class="edge">
  380. <title>Combat&#45;&gt;Army</title>
  381. <path fill="none" stroke="black" d="M1304.71,-447.93C1261.28,-432.53 1214.9,-416.08 1171.06,-400.53"/>
  382. <polygon fill="black" stroke="black" points="1172.04,-397.17 1161.45,-397.12 1169.7,-403.77 1172.04,-397.17"/>
  383. </g>
  384. <!-- Creature Type -->
  385. <g id="node16" class="node">
  386. <title>Creature Type</title>
  387. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1641,-378 1217,-378 1217,-282 1641,-282 1641,-378"/>
  388. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1220,-354 1220,-375 1638,-375 1638,-354 1220,-354"/>
  389. <text text-anchor="start" x="1377.5" y="-361.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Creature Type</text>
  390. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1220,-331 1220,-352 1638,-352 1638,-331 1220,-331"/>
  391. <text text-anchor="start" x="1357.5" y="-338.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  392. <text text-anchor="start" x="1425.5" y="-338.8" font-family="monospace" font-weight="bold" font-size="14.00">CCreature</text>
  393. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1220,-308 1220,-329 1638,-329 1638,-308 1220,-308"/>
  394. <text text-anchor="start" x="1245" y="-314.8" font-family="Noto Serif" font-size="14.00">Represents a creature type, such as Pikeman or Archer</text>
  395. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1220,-285 1220,-306 1638,-306 1638,-285 1220,-285"/>
  396. <text text-anchor="start" x="1223" y="-291.8" font-family="Noto Serif" font-size="14.00">Contains creature abilities bonuses, stack experience bonuses</text>
  397. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1217,-282 1217,-378 1641,-378 1641,-282 1217,-282"/>
  398. </g>
  399. <!-- Unit in Army -->
  400. <g id="node20" class="node">
  401. <title>Unit in Army</title>
  402. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1345,-227 1069,-227 1069,-124 1345,-124 1345,-227"/>
  403. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1072,-202.5 1072,-223.5 1342,-223.5 1342,-202.5 1072,-202.5"/>
  404. <text text-anchor="start" x="1160.5" y="-210.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Unit in Army</text>
  405. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1072,-179.5 1072,-200.5 1342,-200.5 1342,-179.5 1072,-179.5"/>
  406. <text text-anchor="start" x="1115" y="-187.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  407. <text text-anchor="start" x="1183" y="-187.3" font-family="monospace" font-weight="bold" font-size="14.00">CStackInstance</text>
  408. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1072,-126.5 1072,-177.5 1342,-177.5 1342,-126.5 1072,-126.5"/>
  409. <text text-anchor="start" x="1075" y="-163.3" font-family="Noto Serif" font-size="14.00">Represents a unit that is part of a army</text>
  410. <text text-anchor="start" x="1092.5" y="-148.3" font-family="Noto Serif" font-size="14.00">A unit always has a creature type,</text>
  411. <text text-anchor="start" x="1080.5" y="-133.3" font-family="Noto Serif" font-size="14.00">belongs to an army and has stack size</text>
  412. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1069,-124 1069,-227 1345,-227 1345,-124 1069,-124"/>
  413. </g>
  414. <!-- Creature Type&#45;&gt;Unit in Army -->
  415. <g id="edge22" class="edge">
  416. <title>Creature Type&#45;&gt;Unit in Army</title>
  417. <path fill="none" stroke="black" d="M1360.28,-281.79C1337.82,-266.37 1312.65,-249.08 1289.3,-233.04"/>
  418. <polygon fill="black" stroke="black" points="1291.01,-229.97 1280.79,-227.19 1287.05,-235.74 1291.01,-229.97"/>
  419. </g>
  420. <!-- Commander -->
  421. <g id="node21" class="node">
  422. <title>Commander</title>
  423. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1671,-212 1363,-212 1363,-139 1671,-139 1671,-212"/>
  424. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1366,-187.5 1366,-208.5 1668,-208.5 1668,-187.5 1366,-187.5"/>
  425. <text text-anchor="start" x="1473.5" y="-195.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Commander</text>
  426. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1366,-164.5 1366,-185.5 1668,-185.5 1668,-164.5 1366,-164.5"/>
  427. <text text-anchor="start" x="1408.5" y="-172.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  428. <text text-anchor="start" x="1476.5" y="-172.3" font-family="monospace" font-weight="bold" font-size="14.00">CCommanderInstance</text>
  429. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1366,-141.5 1366,-162.5 1668,-162.5 1668,-141.5 1366,-141.5"/>
  430. <text text-anchor="start" x="1369" y="-148.3" font-family="Noto Serif" font-size="14.00">Represents a hero commander, WoG feature</text>
  431. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1363,-139 1363,-212 1671,-212 1671,-139 1363,-139"/>
  432. </g>
  433. <!-- Creature Type&#45;&gt;Commander -->
  434. <g id="edge20" class="edge">
  435. <title>Creature Type&#45;&gt;Commander</title>
  436. <path fill="none" stroke="black" d="M1456.36,-281.58C1467.51,-262.26 1480.33,-240.04 1491.31,-221.02"/>
  437. <polygon fill="black" stroke="black" points="1494.4,-222.67 1496.37,-212.25 1488.34,-219.17 1494.4,-222.67"/>
  438. </g>
  439. <!-- Summon in Combat -->
  440. <g id="node23" class="node">
  441. <title>Summon in Combat</title>
  442. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1050.5,-219.5 723.5,-219.5 723.5,-131.5 1050.5,-131.5 1050.5,-219.5"/>
  443. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="727,-195.5 727,-216.5 1048,-216.5 1048,-195.5 727,-195.5"/>
  444. <text text-anchor="start" x="818.5" y="-203.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Summon in Combat</text>
  445. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="727,-172.5 727,-193.5 1048,-193.5 1048,-172.5 727,-172.5"/>
  446. <text text-anchor="start" x="828.5" y="-180.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  447. <text text-anchor="start" x="896.5" y="-180.3" font-family="monospace" font-weight="bold" font-size="14.00">CStack</text>
  448. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="727,-134.5 727,-170.5 1048,-170.5 1048,-134.5 727,-134.5"/>
  449. <text text-anchor="start" x="730" y="-156.3" font-family="Noto Serif" font-size="14.00">Represents any unit that was added in combat,</text>
  450. <text text-anchor="start" x="773" y="-141.3" font-family="Noto Serif" font-size="14.00">and may not remain after combat</text>
  451. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="723.5,-131.5 723.5,-219.5 1050.5,-219.5 1050.5,-131.5 723.5,-131.5"/>
  452. </g>
  453. <!-- Creature Type&#45;&gt;Summon in Combat -->
  454. <g id="edge21" class="edge">
  455. <title>Creature Type&#45;&gt;Summon in Combat</title>
  456. <path fill="none" stroke="black" d="M1275.33,-282C1252.8,-275.43 1229.84,-268.91 1208,-263 1142.66,-245.31 1125.4,-244.49 1060,-227 1054.29,-225.47 1048.48,-223.9 1042.61,-222.28"/>
  457. <polygon fill="black" stroke="black" points="1043.27,-218.83 1032.7,-219.54 1041.4,-225.58 1043.27,-218.83"/>
  458. </g>
  459. <!-- Artifact Type -->
  460. <g id="node17" class="node">
  461. <title>Artifact Type</title>
  462. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1141,-1012 777,-1012 777,-916 1141,-916 1141,-1012"/>
  463. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="780,-988 780,-1009 1138,-1009 1138,-988 780,-988"/>
  464. <text text-anchor="start" x="911" y="-995.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Artifact Type</text>
  465. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="780,-965 780,-986 1138,-986 1138,-965 780,-965"/>
  466. <text text-anchor="start" x="887.5" y="-972.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  467. <text text-anchor="start" x="955.5" y="-972.8" font-family="monospace" font-weight="bold" font-size="14.00">CArtifact</text>
  468. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="780,-942 780,-963 1138,-963 1138,-942 780,-942"/>
  469. <text text-anchor="start" x="783" y="-948.8" font-family="Noto Serif" font-size="14.00">Represents an artifact type, for example Ring of Life</text>
  470. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="780,-919 780,-940 1138,-940 1138,-919 780,-919"/>
  471. <text text-anchor="start" x="843.5" y="-925.8" font-family="Noto Serif" font-size="14.00">Contains fixed bonuses of artifacts</text>
  472. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="777,-916 777,-1012 1141,-1012 1141,-916 777,-916"/>
  473. </g>
  474. <!-- Artifact Type&#45;&gt;Artifact Instance -->
  475. <g id="edge17" class="edge">
  476. <title>Artifact Type&#45;&gt;Artifact Instance</title>
  477. <path fill="none" stroke="black" d="M1049.04,-915.93C1081.44,-898.99 1118.42,-879.66 1152.56,-861.81"/>
  478. <polygon fill="black" stroke="black" points="1154.39,-864.8 1161.64,-857.06 1151.15,-858.59 1154.39,-864.8"/>
  479. </g>
  480. <!-- Artifact Component -->
  481. <g id="node18" class="node">
  482. <title>Artifact Component</title>
  483. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1643,-1008 1159,-1008 1159,-920 1643,-920 1643,-1008"/>
  484. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1162,-984 1162,-1005 1640,-1005 1640,-984 1162,-984"/>
  485. <text text-anchor="start" x="1330" y="-991.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Artifact Component</text>
  486. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1162,-961 1162,-982 1640,-982 1640,-961 1162,-961"/>
  487. <text text-anchor="start" x="1296.5" y="-968.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  488. <text text-anchor="start" x="1364.5" y="-968.8" font-family="monospace" font-weight="bold" font-size="14.00">CArtifactInstance</text>
  489. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1162,-923 1162,-959 1640,-959 1640,-923 1162,-923"/>
  490. <text text-anchor="start" x="1285.5" y="-944.8" font-family="Noto Serif" font-size="14.00">For combined, non&#45;fused artifacts,</text>
  491. <text text-anchor="start" x="1165" y="-929.8" font-family="Noto Serif" font-size="14.00">instances of components are attached to instance of combined artifact</text>
  492. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1159,-920 1159,-1008 1643,-1008 1643,-920 1159,-920"/>
  493. </g>
  494. <!-- Artifact Component&#45;&gt;Artifact Instance -->
  495. <g id="edge18" class="edge">
  496. <title>Artifact Component&#45;&gt;Artifact Instance</title>
  497. <path fill="none" stroke="black" d="M1364.82,-919.99C1350.61,-903.09 1334.01,-883.36 1318.52,-864.94"/>
  498. <polygon fill="black" stroke="black" points="1321.08,-862.55 1311.96,-857.15 1315.72,-867.05 1321.08,-862.55"/>
  499. </g>
  500. <!-- Army&#45;&gt;Unit in Army -->
  501. <g id="edge13" class="edge">
  502. <title>Army&#45;&gt;Unit in Army</title>
  503. <path fill="none" stroke="black" d="M1075.41,-263C1090.66,-252.97 1106.28,-242.7 1121.19,-232.91"/>
  504. <polygon fill="black" stroke="black" points="1123.44,-235.62 1129.87,-227.2 1119.59,-229.77 1123.44,-235.62"/>
  505. </g>
  506. <!-- Army&#45;&gt;Commander -->
  507. <g id="edge12" class="edge">
  508. <title>Army&#45;&gt;Commander</title>
  509. <path fill="none" stroke="black" d="M1199.1,-265.37C1202.09,-264.57 1205.05,-263.78 1208,-263 1272.61,-245.89 1289.61,-244.9 1354,-227 1367.57,-223.23 1381.72,-219.12 1395.76,-214.92"/>
  510. <polygon fill="black" stroke="black" points="1396.89,-218.24 1405.46,-212.01 1394.88,-211.53 1396.89,-218.24"/>
  511. </g>
  512. <!-- Army&#45;&gt;Summon in Combat -->
  513. <g id="edge14" class="edge">
  514. <title>Army&#45;&gt;Summon in Combat</title>
  515. <path fill="none" stroke="black" d="M936.91,-263C930.24,-251.44 923.39,-239.56 916.98,-228.45"/>
  516. <polygon fill="black" stroke="black" points="919.97,-226.63 911.94,-219.72 913.91,-230.13 919.97,-226.63"/>
  517. </g>
  518. <!-- Unit in Combat -->
  519. <g id="node22" class="node">
  520. <title>Unit in Combat</title>
  521. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1533.5,-88 1190.5,-88 1190.5,0 1533.5,0 1533.5,-88"/>
  522. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1194,-64 1194,-85 1531,-85 1531,-64 1194,-64"/>
  523. <text text-anchor="start" x="1309" y="-71.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Unit in Combat</text>
  524. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1194,-41 1194,-62 1531,-62 1531,-41 1194,-41"/>
  525. <text text-anchor="start" x="1303.5" y="-48.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  526. <text text-anchor="start" x="1371.5" y="-48.8" font-family="monospace" font-weight="bold" font-size="14.00">CStack</text>
  527. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1194,-3 1194,-39 1531,-39 1531,-3 1194,-3"/>
  528. <text text-anchor="start" x="1197" y="-24.8" font-family="Noto Serif" font-size="14.00">Represents current state of a unit during combat,</text>
  529. <text text-anchor="start" x="1217.5" y="-9.8" font-family="Noto Serif" font-size="14.00">can be affected by spells or receive damage</text>
  530. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1190.5,0 1190.5,-88 1533.5,-88 1533.5,0 1190.5,0"/>
  531. </g>
  532. <!-- Unit in Army&#45;&gt;Unit in Combat -->
  533. <g id="edge15" class="edge">
  534. <title>Unit in Army&#45;&gt;Unit in Combat</title>
  535. <path fill="none" stroke="black" d="M1267.82,-123.69C1279.25,-114.13 1291.2,-104.15 1302.6,-94.63"/>
  536. <polygon fill="black" stroke="black" points="1304.96,-97.22 1310.39,-88.12 1300.47,-91.85 1304.96,-97.22"/>
  537. </g>
  538. <!-- Commander&#45;&gt;Unit in Combat -->
  539. <g id="edge16" class="edge">
  540. <title>Commander&#45;&gt;Unit in Combat</title>
  541. <path fill="none" stroke="black" d="M1474.24,-138.77C1457.99,-125.2 1439.19,-109.49 1421.67,-94.85"/>
  542. <polygon fill="black" stroke="black" points="1423.64,-91.94 1413.72,-88.21 1419.15,-97.31 1423.64,-91.94"/>
  543. </g>
  544. </g>
  545. </svg>