2025-05-10 19:13:47 +03:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
< !DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: mygraph Pages: 1 -->
2025-05-19 23:45:53 +03:00
<svg width= "1970pt" height= "1540pt"
viewBox="0.00 0.00 1970.00 1540.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id= "graph0" class= "graph" transform= "scale(1 1) rotate(0) translate(4 1536)" >
2025-05-10 19:13:47 +03:00
<title > mygraph</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "white" stroke= "transparent" points= "-4,4 -4,-1536 1966,-1536 1966,4 -4,4" />
2025-05-10 19:13:47 +03:00
<!-- Global -->
<g id= "node1" class= "node" >
<title > Global</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1495,-1532 1005,-1532 1005,-1360 1495,-1360 1495,-1532" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1008,-1508 1008,-1529 1492,-1529 1492,-1508 1008,-1508" />
<text text-anchor= "start" x= "1226.5" y= "-1515.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Global</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1008,-1485 1008,-1506 1492,-1506 1492,-1485 1008,-1485" />
<text text-anchor= "start" x= "1154" y= "-1492.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1238" y= "-1492.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > GLOBAL_EFFECT</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1008,-1462 1008,-1483 1492,-1483 1492,-1462 1008,-1462" />
<text text-anchor= "start" x= "1174.5" y= "-1469.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1242.5" y= "-1469.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGameState</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1008,-1424 1008,-1460 1492,-1460 1492,-1424 1008,-1424" />
<text text-anchor= "start" x= "1178.5" y= "-1445.8" font-family= "Noto Serif" font-size= "14.00" > Global node to which</text>
<text text-anchor= "start" x= "1148.5" y= "-1430.8" font-family= "Noto Serif" font-size= "14.00" > all map entities are connected</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1008,-1386 1008,-1422 1492,-1422 1492,-1386 1008,-1386" />
<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>
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1008,-1363 1008,-1384 1492,-1384 1492,-1363 1008,-1363" />
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1005,-1360 1005,-1532 1495,-1532 1495,-1360 1005,-1360" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Team -->
<g id= "node2" class= "node" >
<title > Team</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1048,-1300 1048,-1321 1297,-1321 1297,-1300 1048,-1300" />
<text text-anchor= "start" x= "1152.5" y= "-1307.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Team</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1048,-1277 1048,-1298 1297,-1298 1297,-1277 1048,-1277" />
<text text-anchor= "start" x= "1068.5" y= "-1284.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1152.5" y= "-1284.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > TEAM_PROPAGATOR</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1048,-1254 1048,-1275 1297,-1275 1297,-1254 1048,-1254" />
<text text-anchor= "start" x= "1101" y= "-1261.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1169" y= "-1261.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > TeamState</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1048,-1201 1048,-1252 1297,-1252 1297,-1201 1048,-1201" />
<text text-anchor= "start" x= "1121" y= "-1237.8" font-family= "Noto Serif" font-size= "14.00" > Per- team node.</text>
<text text-anchor= "start" x= "1051" y= "-1222.8" font-family= "Noto Serif" font-size= "14.00" > Game will put players without team</text>
<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>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Global->Team -->
<g id= "edge1" class= "edge" >
<title > Global- > Team</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1213.74,-1359.93C1209.97,-1351.09 1206.17,-1342.16 1202.47,-1333.49" />
<polygon fill= "black" stroke= "black" points= "1205.65,-1332.03 1198.51,-1324.2 1199.21,-1334.77 1205.65,-1332.03" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Neutral Army -->
<g id= "node9" class= "node" >
<title > Neutral Army</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1962,-679 1682,-679 1682,-614 1962,-614 1962,-679" />
<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" />
<text text-anchor= "start" x= "1772.5" y= "-662.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Neutral Army</text>
<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" />
<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>
<text text-anchor= "start" x= "1688" y= "-623.3" font-family= "Noto Serif" font-size= "14.00" > Wandering monsters, Banks, Events, etc</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1682,-614 1682,-679 1962,-679 1962,-614 1682,-614" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Global->Neutral Army -->
<g id= "edge2" class= "edge" >
<title > Global- > Neutral Army</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "1825.5,-689.07 1822,-679.07 1818.5,-689.07 1825.5,-689.07" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player -->
<g id= "node3" class= "node" >
<title > Player</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "563,-1138 563,-1159 794,-1159 794,-1138 563,-1138" />
<text text-anchor= "start" x= "655" y= "-1145.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Player</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "563,-1115 563,-1136 794,-1136 794,-1115 563,-1115" />
<text text-anchor= "start" x= "566" y= "-1122.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "650" y= "-1122.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > PLAYER_PROPAGATOR</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "563,-1092 563,-1113 794,-1113 794,-1092 563,-1092" />
<text text-anchor= "start" x= "594.5" y= "-1099.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "662.5" y= "-1099.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CPlayerState</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "563,-1039 563,-1090 794,-1090 794,-1039 563,-1039" />
<text text-anchor= "start" x= "622.5" y= "-1075.8" font-family= "Noto Serif" font-size= "14.00" > Per- player team.</text>
<text text-anchor= "start" x= "580" y= "-1060.8" font-family= "Noto Serif" font-size= "14.00" > All objects owned by a player</text>
<text text-anchor= "start" x= "611.5" y= "-1045.8" font-family= "Noto Serif" font-size= "14.00" > belong to such node</text>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Team->Player -->
<g id= "edge3" class= "edge" >
<title > Team- > Player</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1044.46,-1218.69C971.28,-1194.99 879.66,-1165.31 806.34,-1141.57" />
<polygon fill= "black" stroke= "black" points= "807.17,-1138.16 796.58,-1138.4 805.01,-1144.82 807.17,-1138.16" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Wandering Hero -->
<g id= "node8" class= "node" >
<title > Wandering Hero</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1664,-679 1428,-679 1428,-614 1664,-614 1664,-679" />
<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" />
<text text-anchor= "start" x= "1487" y= "-662.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Wandering Hero</text>
<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" />
<text text-anchor= "start" x= "1472" y= "-638.3" font-family= "Noto Serif" font-size= "14.00" > Hero that is currently</text>
<text text-anchor= "start" x= "1434" y= "-623.3" font-family= "Noto Serif" font-size= "14.00" > moving on map, outside of towns</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1428,-614 1428,-679 1664,-679 1664,-614 1428,-614" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player->Wandering Hero -->
<g id= "edge5" class= "edge" >
<title > Player- > Wandering Hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "1648.24,-680.47 1637.75,-679.01 1645.04,-686.7 1648.24,-680.47" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Owned Army -->
<g id= "node10" class= "node" >
<title > Owned Army</title>
2025-05-19 23:45:53 +03:00
<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" />
<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" />
<text text-anchor= "start" x= "409.5" y= "-662.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Owned Army</text>
<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" />
<text text-anchor= "start" x= "373" y= "-638.3" font-family= "Noto Serif" font-size= "14.00" > Army owned by a player.</text>
<text text-anchor= "start" x= "363" y= "-623.3" font-family= "Noto Serif" font-size= "14.00" > Mines, Garrisons, Dwellings</text>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player->Owned Army -->
<g id= "edge6" class= "edge" >
<title > Player- > Owned Army</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "449.17,-689.54 447.9,-679.03 442.33,-688.04 449.17,-689.54" />
</g>
<!-- Owned Object -->
<g id= "node11" class= "node" >
<title > Owned Object</title>
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "338,-683 0,-683 0,-610 338,-610 338,-683" />
<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" />
<text text-anchor= "start" x= "119" y= "-666.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Owned Object</text>
<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" />
<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>
<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" />
<text text-anchor= "start" x= "50" y= "-619.3" font-family= "Noto Serif" font-size= "14.00" > Contains Flaggable Objects bonuses</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "0,-610 0,-683 338,-683 338,-610 0,-610" />
</g>
<!-- Player->Owned Object -->
<g id= "edge7" class= "edge" >
<title > Player- > Owned Object</title>
<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" />
<polygon fill= "black" stroke= "black" points= "194.22,-690.41 186.5,-683.15 188.01,-693.64 194.22,-690.41" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town and visiting hero -->
2025-05-19 23:45:53 +03:00
<g id= "node15" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Town and visiting hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "488,-976 488,-997 869,-997 869,-976 488,-976" />
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "488,-953 488,-974 869,-974 869,-953 488,-953" />
<text text-anchor= "start" x= "537" y= "-960.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "621" y= "-960.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > VISITED_TOWN_AND_VISITOR</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "488,-930 488,-951 869,-951 869,-930 488,-930" />
<text text-anchor= "start" x= "561.5" y= "-937.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "629.5" y= "-937.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CTownAndVisitingHero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "488,-892 488,-928 869,-928 869,-892 488,-892" />
<text text-anchor= "start" x= "579" y= "-913.8" font-family= "Noto Serif" font-size= "14.00" > Helper node that exists solely</text>
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "488,-869 488,-890 869,-890 869,-869 488,-869" />
<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>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player->Town and visiting hero -->
<g id= "edge4" class= "edge" >
<title > Player- > Town and visiting hero</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M678,-1036C678,-1027.59 678,-1018.88 678,-1010.26" />
<polygon fill= "black" stroke= "black" points= "681.5,-1010.19 678,-1000.19 674.5,-1010.19 681.5,-1010.19" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Hero -->
<g id= "node4" class= "node" >
<title > Hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "970,-550 970,-571 1433,-571 1433,-550 970,-550" />
<text text-anchor= "start" x= "1183.5" y= "-557.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Hero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "970,-527 970,-548 1433,-548 1433,-527 970,-527" />
<text text-anchor= "start" x= "1142.5" y= "-534.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1226.5" y= "-534.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > HERO</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "970,-504 970,-525 1433,-525 1433,-504 970,-504" />
<text text-anchor= "start" x= "1109.5" y= "-511.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1177.5" y= "-511.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGHeroInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "970,-451 970,-502 1433,-502 1433,-451 970,-451" />
<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>
<text text-anchor= "start" x= "1054" y= "-472.8" font-family= "Noto Serif" font-size= "14.00" > Bonuses from specialty and secondary skills</text>
<text text-anchor= "start" x= "1090" y= "-457.8" font-family= "Noto Serif" font-size= "14.00" > are attached directly to this node</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "970,-413 970,-449 1433,-449 1433,-413 970,-413" />
<text text-anchor= "start" x= "1023.5" y= "-434.8" font-family= "Noto Serif" font-size= "14.00" > Contains per- hero global bonuses, specialty bonuses, </text>
<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>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Army -->
2025-05-19 23:45:53 +03:00
<g id= "node19" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Army</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1052,-374 604,-374 604,-263 1052,-263 1052,-374" />
<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" />
<text text-anchor= "start" x= "808" y= "-357.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Army</text>
<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" />
<text text-anchor= "start" x= "736" y= "-334.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "804" y= "-334.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArmedInstance</text>
<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" />
<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>
<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>
<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" />
<text text-anchor= "start" x= "610" y= "-272.3" font-family= "Noto Serif" font-size= "14.00" > Contain anti- magic garrison bonus, faction mixing morale bonus</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "604,-263 604,-374 1052,-374 1052,-263 604,-263" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Hero->Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge30" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Hero- > Army</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1024.6,-409.9C1001.41,-399.23 978.02,-388.47 955.85,-378.28" />
<polygon fill= "black" stroke= "black" points= "957.31,-375.1 946.76,-374.1 954.38,-381.46 957.31,-375.1" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Combat -->
<g id= "node5" class= "node" >
<title > Combat</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "800,-559 350,-559 350,-425 800,-425 800,-559" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "353,-535 353,-556 797,-556 797,-535 353,-535" />
<text text-anchor= "start" x= "547.5" y= "-542.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Combat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "353,-512 353,-533 797,-533 797,-512 353,-512" />
<text text-anchor= "start" x= "487.5" y= "-519.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "571.5" y= "-519.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > BATTLE_WIDE</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "353,-489 353,-510 797,-510 797,-489 353,-489" />
<text text-anchor= "start" x= "499.5" y= "-496.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "567.5" y= "-496.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > BattleInfo</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "353,-451 353,-487 797,-487 797,-451 353,-451" />
<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>
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "353,-428 353,-449 797,-449 797,-428 353,-428" />
<text text-anchor= "start" x= "417" y= "-434.8" font-family= "Noto Serif" font-size= "14.00" > Contains battlefield and native terrain bonuses</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "350,-425 350,-559 800,-559 800,-425 350,-425" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Combat->Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge11" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Combat- > Army</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M672.45,-424.94C694.33,-410.11 717.43,-394.45 738.94,-379.87" />
<polygon fill= "black" stroke= "black" points= "741.1,-382.63 747.42,-374.13 737.17,-376.84 741.1,-382.63" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Visiting Hero -->
<g id= "node6" class= "node" >
<title > Visiting Hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<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" />
<text text-anchor= "start" x= "1220.5" y= "-662.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Visiting Hero</text>
<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" />
<text text-anchor= "start" x= "1193.5" y= "-638.3" font-family= "Noto Serif" font-size= "14.00" > Hero that is currently</text>
<text text-anchor= "start" x= "1169" y= "-623.3" font-family= "Noto Serif" font-size= "14.00" > visiting owned or allied town</text>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Visiting Hero->Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge27" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Visiting Hero- > Hero</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1253.32,-613.9C1249.37,-604.77 1244.85,-594.32 1240.15,-583.46" />
<polygon fill= "black" stroke= "black" points= "1243.36,-582.06 1236.18,-574.28 1236.94,-584.84 1243.36,-582.06" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Garrisoned Hero -->
<g id= "node7" class= "node" >
<title > Garrisoned Hero</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1106,-679 856,-679 856,-614 1106,-614 1106,-679" />
<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" />
<text text-anchor= "start" x= "921" y= "-662.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Garrisoned Hero</text>
<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" />
<text text-anchor= "start" x= "907" y= "-638.3" font-family= "Noto Serif" font-size= "14.00" > Hero that is currently</text>
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "856,-614 856,-679 1106,-679 1106,-614 856,-614" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Garrisoned Hero->Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge28" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Garrisoned Hero- > Hero</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1026.58,-613.9C1041.08,-603.86 1057.87,-592.21 1075.21,-580.2" />
<polygon fill= "black" stroke= "black" points= "1077.52,-582.85 1083.75,-574.28 1073.54,-577.1 1077.52,-582.85" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Wandering Hero->Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge29" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Wandering Hero- > Hero</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1474.52,-613.9C1450.56,-603.31 1422.6,-590.95 1393.87,-578.25" />
<polygon fill= "black" stroke= "black" points= "1395.08,-574.96 1384.51,-574.12 1392.25,-581.36 1395.08,-574.96" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Neutral Army->Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge25" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Neutral Army- > Army</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "1062.45,-370.6 1052.03,-372.5 1061.36,-377.51 1062.45,-370.6" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Owned Army->Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge26" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Owned Army- > Army</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "594.38,-338.36 603.93,-333.76 593.6,-331.41 594.38,-338.36" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town -->
2025-05-19 23:45:53 +03:00
<g id= "node12" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Town</title>
2025-05-19 23:45:53 +03:00
<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" />
<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" />
<text text-anchor= "start" x= "792.5" y= "-806.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Town</text>
<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" />
<text text-anchor= "start" x= "720" y= "-783.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "788" y= "-783.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGTownInstance</text>
<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" />
<text text-anchor= "start" x= "721" y= "-759.3" font-family= "Noto Serif" font-size= "14.00" > Represents a town on map.</text>
<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" />
<text text-anchor= "start" x= "705" y= "-736.3" font-family= "Noto Serif" font-size= "14.00" > Contains town building bonuses</text>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town->Garrisoned Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge23" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Town- > Garrisoned Hero</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M875.41,-726.22C893.52,-712.72 913.01,-698.19 930.26,-685.33" />
<polygon fill= "black" stroke= "black" points= "932.6,-687.95 938.53,-679.17 928.42,-682.34 932.6,-687.95" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town->Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge24" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Town- > Army</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M813.67,-726.2C816.55,-644.44 822.46,-476.58 825.72,-384.13" />
<polygon fill= "black" stroke= "black" points= "829.22,-384.18 826.08,-374.06 822.23,-383.93 829.22,-384.18" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Instance -->
2025-05-19 23:45:53 +03:00
<g id= "node13" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Artifact Instance</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#00ffff" fill-opacity= "0.501961" stroke= "transparent" points= "1687,-830 1311,-830 1311,-719 1687,-719 1687,-830" />
<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" />
<text text-anchor= "start" x= "1438.5" y= "-813.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Artifact Instance</text>
<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" />
<text text-anchor= "start" x= "1394.5" y= "-790.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1462.5" y= "-790.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArtifactInstance</text>
<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" />
<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>
<text text-anchor= "start" x= "1402" y= "-751.3" font-family= "Noto Serif" font-size= "14.00" > that hero can equip or trade</text>
<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" />
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1311,-719 1311,-830 1687,-830 1687,-719 1311,-719" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Instance->Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge19" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Artifact Instance- > Hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "1351.91,-577.62 1341.93,-574.04 1347.5,-583.06 1351.91,-577.62" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Boat -->
2025-05-19 23:45:53 +03:00
<g id= "node14" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Boat</title>
2025-05-19 23:45:53 +03:00
<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" />
<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" />
<text text-anchor= "start" x= "1083" y= "-806.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Boat</text>
<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" />
<text text-anchor= "start" x= "1040.5" y= "-783.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1108.5" y= "-783.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGBoat</text>
<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" />
<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>
<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" />
<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>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Boat->Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge10" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Boat- > Hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "1167.27,-584.86 1167.65,-574.28 1160.75,-582.32 1167.27,-584.86" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town and visiting hero->Visiting Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge9" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Town and visiting hero- > Visiting Hero</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "1283.79,-687.96 1277.8,-679.22 1277.03,-689.79 1283.79,-687.96" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town and visiting hero->Town -->
2025-05-19 23:45:53 +03:00
<g id= "edge8" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Town and visiting hero- > Town</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M734.83,-865.63C744.91,-853.85 755.31,-841.71 765.08,-830.29" />
<polygon fill= "black" stroke= "black" points= "767.89,-832.4 771.74,-822.52 762.57,-827.84 767.89,-832.4" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Creature Type -->
2025-05-19 23:45:53 +03:00
<g id= "node16" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Creature Type</title>
2025-05-19 23:45:53 +03:00
<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" />
<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" />
<text text-anchor= "start" x= "1230.5" y= "-350.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Creature Type</text>
<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" />
<text text-anchor= "start" x= "1210.5" y= "-327.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1278.5" y= "-327.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CCreature</text>
<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" />
<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>
<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" />
<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>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Unit in Army -->
2025-05-19 23:45:53 +03:00
<g id= "node20" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Unit in Army</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1198,-227 922,-227 922,-124 1198,-124 1198,-227" />
<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" />
<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>
<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" />
<text text-anchor= "start" x= "968" y= "-187.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1036" y= "-187.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CStackInstance</text>
<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" />
<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>
<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>
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "922,-124 922,-227 1198,-227 1198,-124 922,-124" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Creature Type->Unit in Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge22" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Creature Type- > Unit in Army</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1207.77,-270.35C1188.77,-258.29 1168.16,-245.2 1148.52,-232.72" />
<polygon fill= "black" stroke= "black" points= "1150.2,-229.64 1139.88,-227.23 1146.44,-235.55 1150.2,-229.64" />
2025-05-10 19:13:47 +03:00
</g>
2025-05-19 23:45:53 +03:00
<!-- Commander -->
2025-05-10 19:13:47 +03:00
<g id= "node21" class= "node" >
2025-05-19 23:45:53 +03:00
<title > Commander</title>
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1524,-212 1216,-212 1216,-139 1524,-139 1524,-212" />
<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" />
<text text-anchor= "start" x= "1326.5" y= "-195.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Commander</text>
<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" />
<text text-anchor= "start" x= "1261.5" y= "-172.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1329.5" y= "-172.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CCommanderInstance</text>
<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" />
<text text-anchor= "start" x= "1222" y= "-148.3" font-family= "Noto Serif" font-size= "14.00" > Represents a hero commander, WoG feature</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1216,-139 1216,-212 1524,-212 1524,-139 1216,-139" />
</g>
<!-- Creature Type->Commander -->
<g id= "edge20" class= "edge" >
<title > Creature Type- > Commander</title>
<path fill= "none" stroke= "black" d= "M1311.55,-270.16C1321.49,-254.23 1332.54,-236.52 1342.33,-220.83" />
<polygon fill= "black" stroke= "black" points= "1345.3,-222.68 1347.63,-212.35 1339.36,-218.98 1345.3,-222.68" />
</g>
<!-- Summon in Combat -->
<g id= "node23" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Summon in Combat</title>
2025-05-19 23:45:53 +03:00
<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" />
<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" />
<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>
<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" />
<text text-anchor= "start" x= "681.5" y= "-180.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "749.5" y= "-180.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CStack</text>
<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" />
<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>
<text text-anchor= "start" x= "626" y= "-141.3" font-family= "Noto Serif" font-size= "14.00" > and may not remain after combat</text>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Creature Type->Summon in Combat -->
2025-05-19 23:45:53 +03:00
<g id= "edge21" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Creature Type- > Summon in Combat</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "black" stroke= "black" points= "896.27,-218.83 885.7,-219.54 894.4,-225.58 896.27,-218.83" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Type -->
2025-05-19 23:45:53 +03:00
<g id= "node17" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Artifact Type</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#00ffff" fill-opacity= "0.501961" stroke= "transparent" points= "1254,-981 890,-981 890,-885 1254,-885 1254,-981" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "893,-957 893,-978 1251,-978 1251,-957 893,-957" />
<text text-anchor= "start" x= "1024" y= "-964.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Artifact Type</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "893,-934 893,-955 1251,-955 1251,-934 893,-934" />
<text text-anchor= "start" x= "1000.5" y= "-941.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1068.5" y= "-941.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArtifact</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "893,-911 893,-932 1251,-932 1251,-911 893,-911" />
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "893,-888 893,-909 1251,-909 1251,-888 893,-888" />
<text text-anchor= "start" x= "956.5" y= "-894.8" font-family= "Noto Serif" font-size= "14.00" > Contains fixed bonuses of artifacts</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "890,-885 890,-981 1254,-981 1254,-885 890,-885" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Type->Artifact Instance -->
2025-05-19 23:45:53 +03:00
<g id= "edge17" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Artifact Type- > Artifact Instance</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1200.4,-884.94C1244.52,-868.77 1294.43,-850.48 1340.65,-833.54" />
<polygon fill= "black" stroke= "black" points= "1341.96,-836.79 1350.14,-830.06 1339.55,-830.21 1341.96,-836.79" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Component -->
2025-05-19 23:45:53 +03:00
<g id= "node18" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Artifact Component</title>
2025-05-19 23:45:53 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1756,-977 1272,-977 1272,-889 1756,-889 1756,-977" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1275,-953 1275,-974 1753,-974 1753,-953 1275,-953" />
<text text-anchor= "start" x= "1443" y= "-960.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Artifact Component</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1275,-930 1275,-951 1753,-951 1753,-930 1275,-930" />
<text text-anchor= "start" x= "1409.5" y= "-937.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1477.5" y= "-937.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArtifactInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1275,-892 1275,-928 1753,-928 1753,-892 1275,-892" />
<text text-anchor= "start" x= "1398.5" y= "-913.8" font-family= "Noto Serif" font-size= "14.00" > For combined, non- fused artifacts,</text>
<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>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1272,-889 1272,-977 1756,-977 1756,-889 1272,-889" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Component->Artifact Instance -->
2025-05-19 23:45:53 +03:00
<g id= "edge18" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Artifact Component- > Artifact Instance</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1509.86,-888.82C1508.42,-873.76 1506.77,-856.52 1505.19,-840.1" />
<polygon fill= "black" stroke= "black" points= "1508.66,-839.63 1504.22,-830.01 1501.69,-840.3 1508.66,-839.63" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Army->Unit in Army -->
2025-05-19 23:45:53 +03:00
<g id= "edge13" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Army- > Unit in Army</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M917.7,-262.99C934.2,-252.95 951.46,-242.47 968.03,-232.4" />
<polygon fill= "black" stroke= "black" points= "969.89,-235.36 976.62,-227.17 966.26,-229.38 969.89,-235.36" />
2025-05-10 19:13:47 +03:00
</g>
2025-05-19 23:45:53 +03:00
<!-- Army->Commander -->
2025-05-10 19:13:47 +03:00
<g id= "edge12" class= "edge" >
2025-05-19 23:45:53 +03:00
<title > Army- > Commander</title>
<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" />
<polygon fill= "black" stroke= "black" points= "1249.91,-218.34 1258.49,-212.12 1247.91,-211.63 1249.91,-218.34" />
</g>
<!-- Army->Summon in Combat -->
<g id= "edge14" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Army- > Summon in Combat</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M793.98,-262.99C786.81,-251.5 779.27,-239.42 772.17,-228.04" />
<polygon fill= "black" stroke= "black" points= "775.1,-226.14 766.84,-219.51 769.17,-229.84 775.1,-226.14" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Unit in Combat -->
2025-05-19 23:45:53 +03:00
<g id= "node22" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Unit in Combat</title>
2025-05-19 23:45:53 +03:00
<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" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1047,-64 1047,-85 1384,-85 1384,-64 1047,-64" />
<text text-anchor= "start" x= "1162" y= "-71.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Unit in Combat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1047,-41 1047,-62 1384,-62 1384,-41 1047,-41" />
<text text-anchor= "start" x= "1156.5" y= "-48.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1224.5" y= "-48.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CStack</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1047,-3 1047,-39 1384,-39 1384,-3 1047,-3" />
<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>
<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>
<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" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Unit in Army->Unit in Combat -->
2025-05-19 23:45:53 +03:00
<g id= "edge15" class= "edge" >
2025-05-10 19:13:47 +03:00
<title > Unit in Army- > Unit in Combat</title>
2025-05-19 23:45:53 +03:00
<path fill= "none" stroke= "black" d= "M1120.82,-123.69C1132.25,-114.13 1144.2,-104.15 1155.6,-94.63" />
<polygon fill= "black" stroke= "black" points= "1157.96,-97.22 1163.39,-88.12 1153.47,-91.85 1157.96,-97.22" />
</g>
<!-- Commander->Unit in Combat -->
<g id= "edge16" class= "edge" >
<title > Commander- > Unit in Combat</title>
<path fill= "none" stroke= "black" d= "M1327.24,-138.77C1310.99,-125.2 1292.19,-109.49 1274.67,-94.85" />
<polygon fill= "black" stroke= "black" points= "1276.64,-91.94 1266.72,-88.21 1272.15,-97.31 1276.64,-91.94" />
2025-05-10 19:13:47 +03:00
</g>
</g>
</svg>