Bonus_System_Nodes.svg 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  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="1970pt" height="1540pt"
  8. viewBox="0.00 0.00 1970.00 1540.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 1536)">
  10. <title>mygraph</title>
  11. <polygon fill="white" stroke="transparent" points="-4,4 -4,-1536 1966,-1536 1966,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="1495,-1532 1005,-1532 1005,-1360 1495,-1360 1495,-1532"/>
  16. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1008,-1508 1008,-1529 1492,-1529 1492,-1508 1008,-1508"/>
  17. <text text-anchor="start" x="1226.5" y="-1515.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="1008,-1485 1008,-1506 1492,-1506 1492,-1485 1008,-1485"/>
  19. <text text-anchor="start" x="1154" y="-1492.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  20. <text text-anchor="start" x="1238" y="-1492.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="1008,-1462 1008,-1483 1492,-1483 1492,-1462 1008,-1462"/>
  22. <text text-anchor="start" x="1174.5" y="-1469.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  23. <text text-anchor="start" x="1242.5" y="-1469.8" font-family="monospace" font-weight="bold" font-size="14.00">CGameState</text>
  24. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1008,-1424 1008,-1460 1492,-1460 1492,-1424 1008,-1424"/>
  25. <text text-anchor="start" x="1178.5" y="-1445.8" font-family="Noto Serif" font-size="14.00">Global node to which</text>
  26. <text text-anchor="start" x="1148.5" y="-1430.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="1008,-1386 1008,-1422 1492,-1422 1492,-1386 1008,-1386"/>
  28. <text text-anchor="start" x="1097" y="-1407.8" font-family="Noto Serif" font-size="14.00">Note: Not recruited heroes (such as in tavern)</text>
  29. <text text-anchor="start" x="1152.5" y="-1392.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="1008,-1363 1008,-1384 1492,-1384 1492,-1363 1008,-1363"/>
  31. <text text-anchor="start" x="1011" y="-1369.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="1005,-1360 1005,-1532 1495,-1532 1495,-1360 1005,-1360"/>
  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="1299.5,-1324 1044.5,-1324 1044.5,-1198 1299.5,-1198 1299.5,-1324"/>
  38. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1048,-1300 1048,-1321 1297,-1321 1297,-1300 1048,-1300"/>
  39. <text text-anchor="start" x="1152.5" y="-1307.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="1048,-1277 1048,-1298 1297,-1298 1297,-1277 1048,-1277"/>
  41. <text text-anchor="start" x="1068.5" y="-1284.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  42. <text text-anchor="start" x="1152.5" y="-1284.8" font-family="monospace" font-weight="bold" font-size="14.00">TEAM_PROPAGATOR</text>
  43. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1048,-1254 1048,-1275 1297,-1275 1297,-1254 1048,-1254"/>
  44. <text text-anchor="start" x="1101" y="-1261.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  45. <text text-anchor="start" x="1169" y="-1261.8" font-family="monospace" font-weight="bold" font-size="14.00">TeamState</text>
  46. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1048,-1201 1048,-1252 1297,-1252 1297,-1201 1048,-1201"/>
  47. <text text-anchor="start" x="1121" y="-1237.8" font-family="Noto Serif" font-size="14.00">Per&#45;team node.</text>
  48. <text text-anchor="start" x="1051" y="-1222.8" font-family="Noto Serif" font-size="14.00">Game will put players without team</text>
  49. <text text-anchor="start" x="1065.5" y="-1207.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="1044.5,-1198 1044.5,-1324 1299.5,-1324 1299.5,-1198 1044.5,-1198"/>
  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="M1213.74,-1359.93C1209.97,-1351.09 1206.17,-1342.16 1202.47,-1333.49"/>
  56. <polygon fill="black" stroke="black" points="1205.65,-1332.03 1198.51,-1324.2 1199.21,-1334.77 1205.65,-1332.03"/>
  57. </g>
  58. <!-- Neutral Army -->
  59. <g id="node9" class="node">
  60. <title>Neutral Army</title>
  61. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1962,-679 1682,-679 1682,-614 1962,-614 1962,-679"/>
  62. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1685,-654.5 1685,-675.5 1959,-675.5 1959,-654.5 1685,-654.5"/>
  63. <text text-anchor="start" x="1772.5" y="-662.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="1685,-616.5 1685,-652.5 1959,-652.5 1959,-616.5 1685,-616.5"/>
  65. <text text-anchor="start" x="1688.5" y="-638.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="1688" y="-623.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="1682,-614 1682,-679 1962,-679 1962,-614 1682,-614"/>
  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="M1495.07,-1396.94C1650.32,-1350.63 1822,-1262.65 1822,-1100 1822,-1100 1822,-1100 1822,-932 1822,-845.69 1822,-744.66 1822,-689.21"/>
  73. <polygon fill="black" stroke="black" points="1825.5,-689.07 1822,-679.07 1818.5,-689.07 1825.5,-689.07"/>
  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="796.5,-1162 559.5,-1162 559.5,-1036 796.5,-1036 796.5,-1162"/>
  79. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="563,-1138 563,-1159 794,-1159 794,-1138 563,-1138"/>
  80. <text text-anchor="start" x="655" y="-1145.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="563,-1115 563,-1136 794,-1136 794,-1115 563,-1115"/>
  82. <text text-anchor="start" x="566" y="-1122.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  83. <text text-anchor="start" x="650" y="-1122.8" font-family="monospace" font-weight="bold" font-size="14.00">PLAYER_PROPAGATOR</text>
  84. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="563,-1092 563,-1113 794,-1113 794,-1092 563,-1092"/>
  85. <text text-anchor="start" x="594.5" y="-1099.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  86. <text text-anchor="start" x="662.5" y="-1099.8" font-family="monospace" font-weight="bold" font-size="14.00">CPlayerState</text>
  87. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="563,-1039 563,-1090 794,-1090 794,-1039 563,-1039"/>
  88. <text text-anchor="start" x="622.5" y="-1075.8" font-family="Noto Serif" font-size="14.00">Per&#45;player team.</text>
  89. <text text-anchor="start" x="580" y="-1060.8" font-family="Noto Serif" font-size="14.00">All objects owned by a player</text>
  90. <text text-anchor="start" x="611.5" y="-1045.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="559.5,-1036 559.5,-1162 796.5,-1162 796.5,-1036 559.5,-1036"/>
  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="M1044.46,-1218.69C971.28,-1194.99 879.66,-1165.31 806.34,-1141.57"/>
  97. <polygon fill="black" stroke="black" points="807.17,-1138.16 796.58,-1138.4 805.01,-1144.82 807.17,-1138.16"/>
  98. </g>
  99. <!-- Wandering Hero -->
  100. <g id="node8" class="node">
  101. <title>Wandering Hero</title>
  102. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1664,-679 1428,-679 1428,-614 1664,-614 1664,-679"/>
  103. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1431,-654.5 1431,-675.5 1661,-675.5 1661,-654.5 1431,-654.5"/>
  104. <text text-anchor="start" x="1487" y="-662.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="1431,-616.5 1431,-652.5 1661,-652.5 1661,-616.5 1431,-616.5"/>
  106. <text text-anchor="start" x="1472" y="-638.3" font-family="Noto Serif" font-size="14.00">Hero that is currently</text>
  107. <text text-anchor="start" x="1434" y="-623.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="1428,-614 1428,-679 1664,-679 1664,-614 1428,-614"/>
  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="M796.56,-1096.14C1064.93,-1090.69 1700.65,-1070.42 1765,-1000 1851.75,-905.07 1786.66,-810.2 1696,-719 1682.06,-704.97 1664.83,-693.33 1647.07,-683.81"/>
  114. <polygon fill="black" stroke="black" points="1648.24,-680.47 1637.75,-679.01 1645.04,-686.7 1648.24,-680.47"/>
  115. </g>
  116. <!-- Owned Army -->
  117. <g id="node10" class="node">
  118. <title>Owned Army</title>
  119. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="555.5,-679 356.5,-679 356.5,-614 555.5,-614 555.5,-679"/>
  120. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="360,-654.5 360,-675.5 553,-675.5 553,-654.5 360,-654.5"/>
  121. <text text-anchor="start" x="409.5" y="-662.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,-616.5 360,-652.5 553,-652.5 553,-616.5 360,-616.5"/>
  123. <text text-anchor="start" x="373" y="-638.3" font-family="Noto Serif" font-size="14.00">Army owned by a player.</text>
  124. <text text-anchor="start" x="363" y="-623.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,-614 356.5,-679 555.5,-679 555.5,-614 356.5,-614"/>
  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="M559.38,-1065.77C526.78,-1051.05 494.95,-1029.97 475,-1000 411.22,-904.22 430.78,-759.31 445.74,-688.86"/>
  131. <polygon fill="black" stroke="black" points="449.17,-689.54 447.9,-679.03 442.33,-688.04 449.17,-689.54"/>
  132. </g>
  133. <!-- Owned Object -->
  134. <g id="node11" class="node">
  135. <title>Owned Object</title>
  136. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="338,-683 0,-683 0,-610 338,-610 338,-683"/>
  137. <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"/>
  138. <text text-anchor="start" x="119" y="-666.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,-635.5 3,-656.5 335,-656.5 335,-635.5 3,-635.5"/>
  140. <text text-anchor="start" x="6" y="-642.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,-612.5 3,-633.5 335,-633.5 335,-612.5 3,-612.5"/>
  142. <text text-anchor="start" x="50" y="-619.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,-610 0,-683 338,-683 338,-610 0,-610"/>
  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="M559.41,-1066.51C515.59,-1051.13 467.31,-1029.44 429,-1000 316.53,-913.58 229.92,-765.96 191.2,-692.2"/>
  149. <polygon fill="black" stroke="black" points="194.22,-690.41 186.5,-683.15 188.01,-693.64 194.22,-690.41"/>
  150. </g>
  151. <!-- Town and visiting hero -->
  152. <g id="node15" class="node">
  153. <title>Town and visiting hero</title>
  154. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="871.5,-1000 484.5,-1000 484.5,-866 871.5,-866 871.5,-1000"/>
  155. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="488,-976 488,-997 869,-997 869,-976 488,-976"/>
  156. <text text-anchor="start" x="595.5" y="-983.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="488,-953 488,-974 869,-974 869,-953 488,-953"/>
  158. <text text-anchor="start" x="537" y="-960.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  159. <text text-anchor="start" x="621" y="-960.8" font-family="monospace" font-weight="bold" font-size="14.00">VISITED_TOWN_AND_VISITOR</text>
  160. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="488,-930 488,-951 869,-951 869,-930 488,-930"/>
  161. <text text-anchor="start" x="561.5" y="-937.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  162. <text text-anchor="start" x="629.5" y="-937.8" font-family="monospace" font-weight="bold" font-size="14.00">CTownAndVisitingHero</text>
  163. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="488,-892 488,-928 869,-928 869,-892 488,-892"/>
  164. <text text-anchor="start" x="579" y="-913.8" font-family="Noto Serif" font-size="14.00">Helper node that exists solely</text>
  165. <text text-anchor="start" x="502.5" y="-898.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="488,-869 488,-890 869,-890 869,-869 488,-869"/>
  167. <text text-anchor="start" x="491" y="-875.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="484.5,-866 484.5,-1000 871.5,-1000 871.5,-866 484.5,-866"/>
  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="M678,-1036C678,-1027.59 678,-1018.88 678,-1010.26"/>
  174. <polygon fill="black" stroke="black" points="681.5,-1010.19 678,-1000.19 674.5,-1010.19 681.5,-1010.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="1435.5,-574 966.5,-574 966.5,-410 1435.5,-410 1435.5,-574"/>
  180. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="970,-550 970,-571 1433,-571 1433,-550 970,-550"/>
  181. <text text-anchor="start" x="1183.5" y="-557.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="970,-527 970,-548 1433,-548 1433,-527 970,-527"/>
  183. <text text-anchor="start" x="1142.5" y="-534.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  184. <text text-anchor="start" x="1226.5" y="-534.8" font-family="monospace" font-weight="bold" font-size="14.00">HERO</text>
  185. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="970,-504 970,-525 1433,-525 1433,-504 970,-504"/>
  186. <text text-anchor="start" x="1109.5" y="-511.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  187. <text text-anchor="start" x="1177.5" y="-511.8" font-family="monospace" font-weight="bold" font-size="14.00">CGHeroInstance</text>
  188. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="970,-451 970,-502 1433,-502 1433,-451 970,-451"/>
  189. <text text-anchor="start" x="1016.5" y="-487.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="1054" y="-472.8" font-family="Noto Serif" font-size="14.00">Bonuses from specialty and secondary skills</text>
  191. <text text-anchor="start" x="1090" y="-457.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="970,-413 970,-449 1433,-449 1433,-413 970,-413"/>
  193. <text text-anchor="start" x="1023.5" y="-434.8" font-family="Noto Serif" font-size="14.00">Contains per&#45;hero global bonuses, specialty bonuses, </text>
  194. <text text-anchor="start" x="973" y="-419.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="966.5,-410 966.5,-574 1435.5,-574 1435.5,-410 966.5,-410"/>
  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="1052,-374 604,-374 604,-263 1052,-263 1052,-374"/>
  201. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="607,-349.5 607,-370.5 1049,-370.5 1049,-349.5 607,-349.5"/>
  202. <text text-anchor="start" x="808" y="-357.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Army</text>
  203. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="607,-326.5 607,-347.5 1049,-347.5 1049,-326.5 607,-326.5"/>
  204. <text text-anchor="start" x="736" y="-334.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  205. <text text-anchor="start" x="804" y="-334.3" font-family="monospace" font-weight="bold" font-size="14.00">CArmedInstance</text>
  206. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="607,-288.5 607,-324.5 1049,-324.5 1049,-288.5 607,-288.5"/>
  207. <text text-anchor="start" x="687" y="-310.3" font-family="Noto Serif" font-size="14.00">Represents any object that can hold army,</text>
  208. <text text-anchor="start" x="632.5" y="-295.3" font-family="Noto Serif" font-size="14.00">such as town, hero, mines, garrisons, wandering monsters</text>
  209. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="607,-265.5 607,-286.5 1049,-286.5 1049,-265.5 607,-265.5"/>
  210. <text text-anchor="start" x="610" y="-272.3" font-family="Noto Serif" font-size="14.00">Contain anti&#45;magic garrison bonus, faction mixing morale bonus</text>
  211. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="604,-263 604,-374 1052,-374 1052,-263 604,-263"/>
  212. </g>
  213. <!-- Hero&#45;&gt;Army -->
  214. <g id="edge30" class="edge">
  215. <title>Hero&#45;&gt;Army</title>
  216. <path fill="none" stroke="black" d="M1024.6,-409.9C1001.41,-399.23 978.02,-388.47 955.85,-378.28"/>
  217. <polygon fill="black" stroke="black" points="957.31,-375.1 946.76,-374.1 954.38,-381.46 957.31,-375.1"/>
  218. </g>
  219. <!-- Combat -->
  220. <g id="node5" class="node">
  221. <title>Combat</title>
  222. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="800,-559 350,-559 350,-425 800,-425 800,-559"/>
  223. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="353,-535 353,-556 797,-556 797,-535 353,-535"/>
  224. <text text-anchor="start" x="547.5" y="-542.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Combat</text>
  225. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="353,-512 353,-533 797,-533 797,-512 353,-512"/>
  226. <text text-anchor="start" x="487.5" y="-519.8" font-family="Noto Serif" font-size="14.00">Propagator: </text>
  227. <text text-anchor="start" x="571.5" y="-519.8" font-family="monospace" font-weight="bold" font-size="14.00">BATTLE_WIDE</text>
  228. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="353,-489 353,-510 797,-510 797,-489 353,-489"/>
  229. <text text-anchor="start" x="499.5" y="-496.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  230. <text text-anchor="start" x="567.5" y="-496.8" font-family="monospace" font-weight="bold" font-size="14.00">BattleInfo</text>
  231. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="353,-451 353,-487 797,-487 797,-451 353,-451"/>
  232. <text text-anchor="start" x="434.5" y="-472.8" font-family="Noto Serif" font-size="14.00">Node that contains both sides of a combat</text>
  233. <text text-anchor="start" x="356" y="-457.8" font-family="Noto Serif" font-size="14.00">Anything propagated to this node will affect both sides in combat</text>
  234. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="353,-428 353,-449 797,-449 797,-428 353,-428"/>
  235. <text text-anchor="start" x="417" y="-434.8" font-family="Noto Serif" font-size="14.00">Contains battlefield and native terrain bonuses</text>
  236. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="350,-425 350,-559 800,-559 800,-425 350,-425"/>
  237. </g>
  238. <!-- Combat&#45;&gt;Army -->
  239. <g id="edge11" class="edge">
  240. <title>Combat&#45;&gt;Army</title>
  241. <path fill="none" stroke="black" d="M672.45,-424.94C694.33,-410.11 717.43,-394.45 738.94,-379.87"/>
  242. <polygon fill="black" stroke="black" points="741.1,-382.63 747.42,-374.13 737.17,-376.84 741.1,-382.63"/>
  243. </g>
  244. <!-- Visiting Hero -->
  245. <g id="node6" class="node">
  246. <title>Visiting Hero</title>
  247. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1371.5,-679 1162.5,-679 1162.5,-614 1371.5,-614 1371.5,-679"/>
  248. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1166,-654.5 1166,-675.5 1369,-675.5 1369,-654.5 1166,-654.5"/>
  249. <text text-anchor="start" x="1220.5" y="-662.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Visiting Hero</text>
  250. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1166,-616.5 1166,-652.5 1369,-652.5 1369,-616.5 1166,-616.5"/>
  251. <text text-anchor="start" x="1193.5" y="-638.3" font-family="Noto Serif" font-size="14.00">Hero that is currently</text>
  252. <text text-anchor="start" x="1169" y="-623.3" font-family="Noto Serif" font-size="14.00">visiting owned or allied town</text>
  253. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1162.5,-614 1162.5,-679 1371.5,-679 1371.5,-614 1162.5,-614"/>
  254. </g>
  255. <!-- Visiting Hero&#45;&gt;Hero -->
  256. <g id="edge27" class="edge">
  257. <title>Visiting Hero&#45;&gt;Hero</title>
  258. <path fill="none" stroke="black" d="M1253.32,-613.9C1249.37,-604.77 1244.85,-594.32 1240.15,-583.46"/>
  259. <polygon fill="black" stroke="black" points="1243.36,-582.06 1236.18,-574.28 1236.94,-584.84 1243.36,-582.06"/>
  260. </g>
  261. <!-- Garrisoned Hero -->
  262. <g id="node7" class="node">
  263. <title>Garrisoned Hero</title>
  264. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1106,-679 856,-679 856,-614 1106,-614 1106,-679"/>
  265. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="859,-654.5 859,-675.5 1103,-675.5 1103,-654.5 859,-654.5"/>
  266. <text text-anchor="start" x="921" y="-662.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Garrisoned Hero</text>
  267. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="859,-616.5 859,-652.5 1103,-652.5 1103,-616.5 859,-616.5"/>
  268. <text text-anchor="start" x="907" y="-638.3" font-family="Noto Serif" font-size="14.00">Hero that is currently</text>
  269. <text text-anchor="start" x="862" y="-623.3" font-family="Noto Serif" font-size="14.00">placed in a garrison of owned town</text>
  270. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="856,-614 856,-679 1106,-679 1106,-614 856,-614"/>
  271. </g>
  272. <!-- Garrisoned Hero&#45;&gt;Hero -->
  273. <g id="edge28" class="edge">
  274. <title>Garrisoned Hero&#45;&gt;Hero</title>
  275. <path fill="none" stroke="black" d="M1026.58,-613.9C1041.08,-603.86 1057.87,-592.21 1075.21,-580.2"/>
  276. <polygon fill="black" stroke="black" points="1077.52,-582.85 1083.75,-574.28 1073.54,-577.1 1077.52,-582.85"/>
  277. </g>
  278. <!-- Wandering Hero&#45;&gt;Hero -->
  279. <g id="edge29" class="edge">
  280. <title>Wandering Hero&#45;&gt;Hero</title>
  281. <path fill="none" stroke="black" d="M1474.52,-613.9C1450.56,-603.31 1422.6,-590.95 1393.87,-578.25"/>
  282. <polygon fill="black" stroke="black" points="1395.08,-574.96 1384.51,-574.12 1392.25,-581.36 1395.08,-574.96"/>
  283. </g>
  284. <!-- Neutral Army&#45;&gt;Army -->
  285. <g id="edge25" class="edge">
  286. <title>Neutral Army&#45;&gt;Army</title>
  287. <path fill="none" stroke="black" d="M1784.91,-613.89C1720.6,-561.13 1582.08,-456.33 1445,-410 1285.7,-356.16 1232.22,-399.85 1062.07,-374.08"/>
  288. <polygon fill="black" stroke="black" points="1062.45,-370.6 1052.03,-372.5 1061.36,-377.51 1062.45,-370.6"/>
  289. </g>
  290. <!-- Owned Army&#45;&gt;Army -->
  291. <g id="edge26" class="edge">
  292. <title>Owned Army&#45;&gt;Army</title>
  293. <path fill="none" stroke="black" d="M380.63,-613.89C364.79,-603.59 350.14,-590.44 341,-574 305.59,-510.29 294.41,-466.05 341,-410 374.42,-369.8 485.94,-347.37 593.84,-334.9"/>
  294. <polygon fill="black" stroke="black" points="594.38,-338.36 603.93,-333.76 593.6,-331.41 594.38,-338.36"/>
  295. </g>
  296. <!-- Town -->
  297. <g id="node12" class="node">
  298. <title>Town</title>
  299. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="925,-822.5 699,-822.5 699,-726.5 925,-726.5 925,-822.5"/>
  300. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="702,-798.5 702,-819.5 922,-819.5 922,-798.5 702,-798.5"/>
  301. <text text-anchor="start" x="792.5" y="-806.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Town</text>
  302. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="702,-775.5 702,-796.5 922,-796.5 922,-775.5 702,-775.5"/>
  303. <text text-anchor="start" x="720" y="-783.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  304. <text text-anchor="start" x="788" y="-783.3" font-family="monospace" font-weight="bold" font-size="14.00">CGTownInstance</text>
  305. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="702,-752.5 702,-773.5 922,-773.5 922,-752.5 702,-752.5"/>
  306. <text text-anchor="start" x="721" y="-759.3" font-family="Noto Serif" font-size="14.00">Represents a town on map.</text>
  307. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="702,-729.5 702,-750.5 922,-750.5 922,-729.5 702,-729.5"/>
  308. <text text-anchor="start" x="705" y="-736.3" font-family="Noto Serif" font-size="14.00">Contains town building bonuses</text>
  309. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="699,-726.5 699,-822.5 925,-822.5 925,-726.5 699,-726.5"/>
  310. </g>
  311. <!-- Town&#45;&gt;Garrisoned Hero -->
  312. <g id="edge23" class="edge">
  313. <title>Town&#45;&gt;Garrisoned Hero</title>
  314. <path fill="none" stroke="black" d="M875.41,-726.22C893.52,-712.72 913.01,-698.19 930.26,-685.33"/>
  315. <polygon fill="black" stroke="black" points="932.6,-687.95 938.53,-679.17 928.42,-682.34 932.6,-687.95"/>
  316. </g>
  317. <!-- Town&#45;&gt;Army -->
  318. <g id="edge24" class="edge">
  319. <title>Town&#45;&gt;Army</title>
  320. <path fill="none" stroke="black" d="M813.67,-726.2C816.55,-644.44 822.46,-476.58 825.72,-384.13"/>
  321. <polygon fill="black" stroke="black" points="829.22,-384.18 826.08,-374.06 822.23,-383.93 829.22,-384.18"/>
  322. </g>
  323. <!-- Artifact Instance -->
  324. <g id="node13" class="node">
  325. <title>Artifact Instance</title>
  326. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1687,-830 1311,-830 1311,-719 1687,-719 1687,-830"/>
  327. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1314,-805.5 1314,-826.5 1684,-826.5 1684,-805.5 1314,-805.5"/>
  328. <text text-anchor="start" x="1438.5" y="-813.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Artifact Instance</text>
  329. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1314,-782.5 1314,-803.5 1684,-803.5 1684,-782.5 1314,-782.5"/>
  330. <text text-anchor="start" x="1394.5" y="-790.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  331. <text text-anchor="start" x="1462.5" y="-790.3" font-family="monospace" font-weight="bold" font-size="14.00">CArtifactInstance</text>
  332. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1314,-744.5 1314,-780.5 1684,-780.5 1684,-744.5 1314,-744.5"/>
  333. <text text-anchor="start" x="1344" y="-766.3" font-family="Noto Serif" font-size="14.00">Represents a particular instance of an artifact</text>
  334. <text text-anchor="start" x="1402" y="-751.3" font-family="Noto Serif" font-size="14.00"> that hero can equip or trade</text>
  335. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1314,-721.5 1314,-742.5 1684,-742.5 1684,-721.5 1314,-721.5"/>
  336. <text text-anchor="start" x="1317" y="-728.3" font-family="Noto Serif" font-size="14.00">Contains bonuses of spell scrolls and growing artifacts</text>
  337. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1311,-719 1311,-830 1687,-830 1687,-719 1311,-719"/>
  338. </g>
  339. <!-- Artifact Instance&#45;&gt;Hero -->
  340. <g id="edge19" class="edge">
  341. <title>Artifact Instance&#45;&gt;Hero</title>
  342. <path fill="none" stroke="black" d="M1446.84,-718.76C1437.06,-707.35 1427.31,-695.1 1419,-683 1398.29,-652.85 1405.59,-637.08 1381,-610 1371.53,-599.57 1360.94,-589.68 1349.76,-580.38"/>
  343. <polygon fill="black" stroke="black" points="1351.91,-577.62 1341.93,-574.04 1347.5,-583.06 1351.91,-577.62"/>
  344. </g>
  345. <!-- Boat -->
  346. <g id="node14" class="node">
  347. <title>Boat</title>
  348. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1254.5,-822.5 943.5,-822.5 943.5,-726.5 1254.5,-726.5 1254.5,-822.5"/>
  349. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="947,-798.5 947,-819.5 1252,-819.5 1252,-798.5 947,-798.5"/>
  350. <text text-anchor="start" x="1083" y="-806.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Boat</text>
  351. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="947,-775.5 947,-796.5 1252,-796.5 1252,-775.5 947,-775.5"/>
  352. <text text-anchor="start" x="1040.5" y="-783.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  353. <text text-anchor="start" x="1108.5" y="-783.3" font-family="monospace" font-weight="bold" font-size="14.00">CGBoat</text>
  354. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="947,-752.5 947,-773.5 1252,-773.5 1252,-752.5 947,-752.5"/>
  355. <text text-anchor="start" x="950" y="-759.3" font-family="Noto Serif" font-size="14.00">Represents a boat or other type of transport.</text>
  356. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="947,-729.5 947,-750.5 1252,-750.5 1252,-729.5 947,-729.5"/>
  357. <text text-anchor="start" x="953.5" y="-736.3" font-family="Noto Serif" font-size="14.00">Contains bonuses provided to boarded hero</text>
  358. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="943.5,-726.5 943.5,-822.5 1254.5,-822.5 1254.5,-726.5 943.5,-726.5"/>
  359. </g>
  360. <!-- Boat&#45;&gt;Hero -->
  361. <g id="edge10" class="edge">
  362. <title>Boat&#45;&gt;Hero</title>
  363. <path fill="none" stroke="black" d="M1114.06,-726.38C1124.73,-693.58 1139.65,-648.92 1154,-610 1157.14,-601.48 1160.5,-592.65 1163.92,-583.83"/>
  364. <polygon fill="black" stroke="black" points="1167.27,-584.86 1167.65,-574.28 1160.75,-582.32 1167.27,-584.86"/>
  365. </g>
  366. <!-- Town and visiting hero&#45;&gt;Visiting Hero -->
  367. <g id="edge9" class="edge">
  368. <title>Town and visiting hero&#45;&gt;Visiting Hero</title>
  369. <path fill="none" stroke="black" d="M871.69,-868C874.81,-867.31 877.92,-866.64 881,-866 964.71,-848.68 1205.93,-892.74 1264,-830 1298.6,-792.62 1290.93,-730.23 1280.43,-688.97"/>
  370. <polygon fill="black" stroke="black" points="1283.79,-687.96 1277.8,-679.22 1277.03,-689.79 1283.79,-687.96"/>
  371. </g>
  372. <!-- Town and visiting hero&#45;&gt;Town -->
  373. <g id="edge8" class="edge">
  374. <title>Town and visiting hero&#45;&gt;Town</title>
  375. <path fill="none" stroke="black" d="M734.83,-865.63C744.91,-853.85 755.31,-841.71 765.08,-830.29"/>
  376. <polygon fill="black" stroke="black" points="767.89,-832.4 771.74,-822.52 762.57,-827.84 767.89,-832.4"/>
  377. </g>
  378. <!-- Creature Type -->
  379. <g id="node16" class="node">
  380. <title>Creature Type</title>
  381. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1494,-366.5 1070,-366.5 1070,-270.5 1494,-270.5 1494,-366.5"/>
  382. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1073,-342.5 1073,-363.5 1491,-363.5 1491,-342.5 1073,-342.5"/>
  383. <text text-anchor="start" x="1230.5" y="-350.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Creature Type</text>
  384. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1073,-319.5 1073,-340.5 1491,-340.5 1491,-319.5 1073,-319.5"/>
  385. <text text-anchor="start" x="1210.5" y="-327.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  386. <text text-anchor="start" x="1278.5" y="-327.3" font-family="monospace" font-weight="bold" font-size="14.00">CCreature</text>
  387. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1073,-296.5 1073,-317.5 1491,-317.5 1491,-296.5 1073,-296.5"/>
  388. <text text-anchor="start" x="1098" y="-303.3" font-family="Noto Serif" font-size="14.00">Represents a creature type, such as Pikeman or Archer</text>
  389. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1073,-273.5 1073,-294.5 1491,-294.5 1491,-273.5 1073,-273.5"/>
  390. <text text-anchor="start" x="1076" y="-280.3" font-family="Noto Serif" font-size="14.00">Contains creature abilities bonuses, stack experience bonuses</text>
  391. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1070,-270.5 1070,-366.5 1494,-366.5 1494,-270.5 1070,-270.5"/>
  392. </g>
  393. <!-- Unit in Army -->
  394. <g id="node20" class="node">
  395. <title>Unit in Army</title>
  396. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1198,-227 922,-227 922,-124 1198,-124 1198,-227"/>
  397. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="925,-202.5 925,-223.5 1195,-223.5 1195,-202.5 925,-202.5"/>
  398. <text text-anchor="start" x="1013.5" y="-210.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Unit in Army</text>
  399. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="925,-179.5 925,-200.5 1195,-200.5 1195,-179.5 925,-179.5"/>
  400. <text text-anchor="start" x="968" y="-187.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  401. <text text-anchor="start" x="1036" y="-187.3" font-family="monospace" font-weight="bold" font-size="14.00">CStackInstance</text>
  402. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="925,-126.5 925,-177.5 1195,-177.5 1195,-126.5 925,-126.5"/>
  403. <text text-anchor="start" x="928" y="-163.3" font-family="Noto Serif" font-size="14.00">Represents a unit that is part of a army</text>
  404. <text text-anchor="start" x="945.5" y="-148.3" font-family="Noto Serif" font-size="14.00">A unit always has a creature type,</text>
  405. <text text-anchor="start" x="933.5" y="-133.3" font-family="Noto Serif" font-size="14.00">belongs to an army and has stack size</text>
  406. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="922,-124 922,-227 1198,-227 1198,-124 922,-124"/>
  407. </g>
  408. <!-- Creature Type&#45;&gt;Unit in Army -->
  409. <g id="edge22" class="edge">
  410. <title>Creature Type&#45;&gt;Unit in Army</title>
  411. <path fill="none" stroke="black" d="M1207.77,-270.35C1188.77,-258.29 1168.16,-245.2 1148.52,-232.72"/>
  412. <polygon fill="black" stroke="black" points="1150.2,-229.64 1139.88,-227.23 1146.44,-235.55 1150.2,-229.64"/>
  413. </g>
  414. <!-- Commander -->
  415. <g id="node21" class="node">
  416. <title>Commander</title>
  417. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1524,-212 1216,-212 1216,-139 1524,-139 1524,-212"/>
  418. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1219,-187.5 1219,-208.5 1521,-208.5 1521,-187.5 1219,-187.5"/>
  419. <text text-anchor="start" x="1326.5" y="-195.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Commander</text>
  420. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1219,-164.5 1219,-185.5 1521,-185.5 1521,-164.5 1219,-164.5"/>
  421. <text text-anchor="start" x="1261.5" y="-172.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  422. <text text-anchor="start" x="1329.5" y="-172.3" font-family="monospace" font-weight="bold" font-size="14.00">CCommanderInstance</text>
  423. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1219,-141.5 1219,-162.5 1521,-162.5 1521,-141.5 1219,-141.5"/>
  424. <text text-anchor="start" x="1222" y="-148.3" font-family="Noto Serif" font-size="14.00">Represents a hero commander, WoG feature</text>
  425. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1216,-139 1216,-212 1524,-212 1524,-139 1216,-139"/>
  426. </g>
  427. <!-- Creature Type&#45;&gt;Commander -->
  428. <g id="edge20" class="edge">
  429. <title>Creature Type&#45;&gt;Commander</title>
  430. <path fill="none" stroke="black" d="M1311.55,-270.16C1321.49,-254.23 1332.54,-236.52 1342.33,-220.83"/>
  431. <polygon fill="black" stroke="black" points="1345.3,-222.68 1347.63,-212.35 1339.36,-218.98 1345.3,-222.68"/>
  432. </g>
  433. <!-- Summon in Combat -->
  434. <g id="node23" class="node">
  435. <title>Summon in Combat</title>
  436. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="903.5,-219.5 576.5,-219.5 576.5,-131.5 903.5,-131.5 903.5,-219.5"/>
  437. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="580,-195.5 580,-216.5 901,-216.5 901,-195.5 580,-195.5"/>
  438. <text text-anchor="start" x="671.5" y="-203.3" font-family="Noto Serif" font-weight="bold" font-size="14.00">Summon in Combat</text>
  439. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="580,-172.5 580,-193.5 901,-193.5 901,-172.5 580,-172.5"/>
  440. <text text-anchor="start" x="681.5" y="-180.3" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  441. <text text-anchor="start" x="749.5" y="-180.3" font-family="monospace" font-weight="bold" font-size="14.00">CStack</text>
  442. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="580,-134.5 580,-170.5 901,-170.5 901,-134.5 580,-134.5"/>
  443. <text text-anchor="start" x="583" y="-156.3" font-family="Noto Serif" font-size="14.00">Represents any unit that was added in combat,</text>
  444. <text text-anchor="start" x="626" y="-141.3" font-family="Noto Serif" font-size="14.00">and may not remain after combat</text>
  445. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="576.5,-131.5 576.5,-219.5 903.5,-219.5 903.5,-131.5 576.5,-131.5"/>
  446. </g>
  447. <!-- Creature Type&#45;&gt;Summon in Combat -->
  448. <g id="edge21" class="edge">
  449. <title>Creature Type&#45;&gt;Summon in Combat</title>
  450. <path fill="none" stroke="black" d="M1091.54,-270.49C1081.21,-267.95 1070.98,-265.44 1061,-263 995.25,-246.9 978.4,-244.49 913,-227 907.29,-225.47 901.48,-223.9 895.61,-222.28"/>
  451. <polygon fill="black" stroke="black" points="896.27,-218.83 885.7,-219.54 894.4,-225.58 896.27,-218.83"/>
  452. </g>
  453. <!-- Artifact Type -->
  454. <g id="node17" class="node">
  455. <title>Artifact Type</title>
  456. <polygon fill="#00ffff" fill-opacity="0.501961" stroke="transparent" points="1254,-981 890,-981 890,-885 1254,-885 1254,-981"/>
  457. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="893,-957 893,-978 1251,-978 1251,-957 893,-957"/>
  458. <text text-anchor="start" x="1024" y="-964.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Artifact Type</text>
  459. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="893,-934 893,-955 1251,-955 1251,-934 893,-934"/>
  460. <text text-anchor="start" x="1000.5" y="-941.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  461. <text text-anchor="start" x="1068.5" y="-941.8" font-family="monospace" font-weight="bold" font-size="14.00">CArtifact</text>
  462. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="893,-911 893,-932 1251,-932 1251,-911 893,-911"/>
  463. <text text-anchor="start" x="896" y="-917.8" font-family="Noto Serif" font-size="14.00">Represents an artifact type, for example Ring of Life</text>
  464. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="893,-888 893,-909 1251,-909 1251,-888 893,-888"/>
  465. <text text-anchor="start" x="956.5" y="-894.8" font-family="Noto Serif" font-size="14.00">Contains fixed bonuses of artifacts</text>
  466. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="890,-885 890,-981 1254,-981 1254,-885 890,-885"/>
  467. </g>
  468. <!-- Artifact Type&#45;&gt;Artifact Instance -->
  469. <g id="edge17" class="edge">
  470. <title>Artifact Type&#45;&gt;Artifact Instance</title>
  471. <path fill="none" stroke="black" d="M1200.4,-884.94C1244.52,-868.77 1294.43,-850.48 1340.65,-833.54"/>
  472. <polygon fill="black" stroke="black" points="1341.96,-836.79 1350.14,-830.06 1339.55,-830.21 1341.96,-836.79"/>
  473. </g>
  474. <!-- Artifact Component -->
  475. <g id="node18" class="node">
  476. <title>Artifact Component</title>
  477. <polygon fill="#808080" fill-opacity="0.501961" stroke="transparent" points="1756,-977 1272,-977 1272,-889 1756,-889 1756,-977"/>
  478. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1275,-953 1275,-974 1753,-974 1753,-953 1275,-953"/>
  479. <text text-anchor="start" x="1443" y="-960.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Artifact Component</text>
  480. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1275,-930 1275,-951 1753,-951 1753,-930 1275,-930"/>
  481. <text text-anchor="start" x="1409.5" y="-937.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  482. <text text-anchor="start" x="1477.5" y="-937.8" font-family="monospace" font-weight="bold" font-size="14.00">CArtifactInstance</text>
  483. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1275,-892 1275,-928 1753,-928 1753,-892 1275,-892"/>
  484. <text text-anchor="start" x="1398.5" y="-913.8" font-family="Noto Serif" font-size="14.00">For combined, non&#45;fused artifacts,</text>
  485. <text text-anchor="start" x="1278" y="-898.8" font-family="Noto Serif" font-size="14.00">instances of components are attached to instance of combined artifact</text>
  486. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1272,-889 1272,-977 1756,-977 1756,-889 1272,-889"/>
  487. </g>
  488. <!-- Artifact Component&#45;&gt;Artifact Instance -->
  489. <g id="edge18" class="edge">
  490. <title>Artifact Component&#45;&gt;Artifact Instance</title>
  491. <path fill="none" stroke="black" d="M1509.86,-888.82C1508.42,-873.76 1506.77,-856.52 1505.19,-840.1"/>
  492. <polygon fill="black" stroke="black" points="1508.66,-839.63 1504.22,-830.01 1501.69,-840.3 1508.66,-839.63"/>
  493. </g>
  494. <!-- Army&#45;&gt;Unit in Army -->
  495. <g id="edge13" class="edge">
  496. <title>Army&#45;&gt;Unit in Army</title>
  497. <path fill="none" stroke="black" d="M917.7,-262.99C934.2,-252.95 951.46,-242.47 968.03,-232.4"/>
  498. <polygon fill="black" stroke="black" points="969.89,-235.36 976.62,-227.17 966.26,-229.38 969.89,-235.36"/>
  499. </g>
  500. <!-- Army&#45;&gt;Commander -->
  501. <g id="edge12" class="edge">
  502. <title>Army&#45;&gt;Commander</title>
  503. <path fill="none" stroke="black" d="M1052.23,-264.59C1124.31,-247.46 1190.04,-231.65 1207,-227 1220.58,-223.28 1234.74,-219.2 1248.79,-215.02"/>
  504. <polygon fill="black" stroke="black" points="1249.91,-218.34 1258.49,-212.12 1247.91,-211.63 1249.91,-218.34"/>
  505. </g>
  506. <!-- Army&#45;&gt;Summon in Combat -->
  507. <g id="edge14" class="edge">
  508. <title>Army&#45;&gt;Summon in Combat</title>
  509. <path fill="none" stroke="black" d="M793.98,-262.99C786.81,-251.5 779.27,-239.42 772.17,-228.04"/>
  510. <polygon fill="black" stroke="black" points="775.1,-226.14 766.84,-219.51 769.17,-229.84 775.1,-226.14"/>
  511. </g>
  512. <!-- Unit in Combat -->
  513. <g id="node22" class="node">
  514. <title>Unit in Combat</title>
  515. <polygon fill="#602000" fill-opacity="0.501961" stroke="transparent" points="1386.5,-88 1043.5,-88 1043.5,0 1386.5,0 1386.5,-88"/>
  516. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1047,-64 1047,-85 1384,-85 1384,-64 1047,-64"/>
  517. <text text-anchor="start" x="1162" y="-71.8" font-family="Noto Serif" font-weight="bold" font-size="14.00">Unit in Combat</text>
  518. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1047,-41 1047,-62 1384,-62 1384,-41 1047,-41"/>
  519. <text text-anchor="start" x="1156.5" y="-48.8" font-family="Noto Serif" font-size="14.00">C++ Class: </text>
  520. <text text-anchor="start" x="1224.5" y="-48.8" font-family="monospace" font-weight="bold" font-size="14.00">CStack</text>
  521. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1047,-3 1047,-39 1384,-39 1384,-3 1047,-3"/>
  522. <text text-anchor="start" x="1050" y="-24.8" font-family="Noto Serif" font-size="14.00">Represents current state of a unit during combat,</text>
  523. <text text-anchor="start" x="1070.5" y="-9.8" font-family="Noto Serif" font-size="14.00">can be affected by spells or receive damage</text>
  524. <polygon fill="none" stroke="#000000" stroke-opacity="0.501961" points="1043.5,0 1043.5,-88 1386.5,-88 1386.5,0 1043.5,0"/>
  525. </g>
  526. <!-- Unit in Army&#45;&gt;Unit in Combat -->
  527. <g id="edge15" class="edge">
  528. <title>Unit in Army&#45;&gt;Unit in Combat</title>
  529. <path fill="none" stroke="black" d="M1120.82,-123.69C1132.25,-114.13 1144.2,-104.15 1155.6,-94.63"/>
  530. <polygon fill="black" stroke="black" points="1157.96,-97.22 1163.39,-88.12 1153.47,-91.85 1157.96,-97.22"/>
  531. </g>
  532. <!-- Commander&#45;&gt;Unit in Combat -->
  533. <g id="edge16" class="edge">
  534. <title>Commander&#45;&gt;Unit in Combat</title>
  535. <path fill="none" stroke="black" d="M1327.24,-138.77C1310.99,-125.2 1292.19,-109.49 1274.67,-94.85"/>
  536. <polygon fill="black" stroke="black" points="1276.64,-91.94 1266.72,-88.21 1272.15,-97.31 1276.64,-91.94"/>
  537. </g>
  538. </g>
  539. </svg>