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-07-06 16:00:12 +03:00
<svg width= "1847pt" height= "1571pt"
viewBox="0.00 0.00 1847.00 1571.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 1567)" >
2025-05-10 19:13:47 +03:00
<title > mygraph</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "white" stroke= "transparent" points= "-4,4 -4,-1567 1843,-1567 1843,4 -4,4" />
2025-05-10 19:13:47 +03:00
<!-- Global -->
<g id= "node1" class= "node" >
<title > Global</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1382,-1563 892,-1563 892,-1391 1382,-1391 1382,-1563" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "895,-1539 895,-1560 1379,-1560 1379,-1539 895,-1539" />
<text text-anchor= "start" x= "1113.5" y= "-1546.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Global</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "895,-1516 895,-1537 1379,-1537 1379,-1516 895,-1516" />
<text text-anchor= "start" x= "1041" y= "-1523.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1125" y= "-1523.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > GLOBAL_EFFECT</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "895,-1493 895,-1514 1379,-1514 1379,-1493 895,-1493" />
<text text-anchor= "start" x= "1061.5" y= "-1500.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1129.5" y= "-1500.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGameState</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "895,-1455 895,-1491 1379,-1491 1379,-1455 895,-1455" />
<text text-anchor= "start" x= "1065.5" y= "-1476.8" font-family= "Noto Serif" font-size= "14.00" > Global node to which</text>
<text text-anchor= "start" x= "1035.5" y= "-1461.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= "895,-1417 895,-1453 1379,-1453 1379,-1417 895,-1417" />
<text text-anchor= "start" x= "984" y= "-1438.8" font-family= "Noto Serif" font-size= "14.00" > Note: Not recruited heroes (such as in tavern)</text>
<text text-anchor= "start" x= "1039.5" y= "-1423.8" font-family= "Noto Serif" font-size= "14.00" > are not attached to any node</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "895,-1394 895,-1415 1379,-1415 1379,-1394 895,-1394" />
<text text-anchor= "start" x= "898" y= "-1400.8" font-family= "Noto Serif" font-size= "14.00" > Contains global bonuses, global stack experience and difficulty bonuses</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "892,-1391 892,-1563 1382,-1563 1382,-1391 892,-1391" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Team -->
<g id= "node2" class= "node" >
<title > Team</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1186.5,-1355 931.5,-1355 931.5,-1229 1186.5,-1229 1186.5,-1355" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "935,-1331 935,-1352 1184,-1352 1184,-1331 935,-1331" />
<text text-anchor= "start" x= "1039.5" y= "-1338.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Team</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "935,-1308 935,-1329 1184,-1329 1184,-1308 935,-1308" />
<text text-anchor= "start" x= "1000.5" y= "-1315.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1084.5" y= "-1315.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > TEAM</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "935,-1285 935,-1306 1184,-1306 1184,-1285 935,-1285" />
<text text-anchor= "start" x= "988" y= "-1292.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1056" y= "-1292.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > TeamState</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "935,-1232 935,-1283 1184,-1283 1184,-1232 935,-1232" />
<text text-anchor= "start" x= "1008" y= "-1268.8" font-family= "Noto Serif" font-size= "14.00" > Per- team node.</text>
<text text-anchor= "start" x= "938" y= "-1253.8" font-family= "Noto Serif" font-size= "14.00" > Game will put players without team</text>
<text text-anchor= "start" x= "952.5" y= "-1238.8" font-family= "Noto Serif" font-size= "14.00" > into a team with a single player</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "931.5,-1229 931.5,-1355 1186.5,-1355 1186.5,-1229 931.5,-1229" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Global->Team -->
<g id= "edge1" class= "edge" >
<title > Global- > Team</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1100.74,-1390.93C1096.97,-1382.09 1093.17,-1373.16 1089.47,-1364.49" />
<polygon fill= "black" stroke= "black" points= "1092.65,-1363.03 1085.51,-1355.2 1086.21,-1365.77 1092.65,-1363.03" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Neutral Army -->
2025-07-06 16:00:12 +03:00
<g id= "node8" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Neutral Army</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1839,-702 1559,-702 1559,-637 1839,-637 1839,-702" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1562,-677.5 1562,-698.5 1836,-698.5 1836,-677.5 1562,-677.5" />
<text text-anchor= "start" x= "1649.5" y= "-685.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= "1562,-639.5 1562,-675.5 1836,-675.5 1836,-639.5 1562,-639.5" />
<text text-anchor= "start" x= "1565.5" y= "-661.3" font-family= "Noto Serif" font-size= "14.00" > Any army that is not owned by a player</text>
<text text-anchor= "start" x= "1565" y= "-646.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= "1559,-637 1559,-702 1839,-702 1839,-637 1559,-637" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Global->Neutral Army -->
<g id= "edge2" class= "edge" >
<title > Global- > Neutral Army</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1382.07,-1427.94C1537.32,-1381.63 1709,-1293.65 1709,-1131 1709,-1131 1709,-1131 1709,-963 1709,-873.55 1704.27,-768.8 1701.32,-712.1" />
<polygon fill= "black" stroke= "black" points= "1704.81,-711.89 1700.79,-702.09 1697.82,-712.26 1704.81,-711.89" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player -->
<g id= "node3" class= "node" >
<title > Player</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "669.5,-1193 460.5,-1193 460.5,-1067 669.5,-1067 669.5,-1193" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "464,-1169 464,-1190 667,-1190 667,-1169 464,-1169" />
<text text-anchor= "start" x= "542" y= "-1176.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Player</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "464,-1146 464,-1167 667,-1167 667,-1146 464,-1146" />
<text text-anchor= "start" x= "498.5" y= "-1153.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "582.5" y= "-1153.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > PLAYER</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "464,-1123 464,-1144 667,-1144 667,-1123 464,-1123" />
<text text-anchor= "start" x= "481.5" y= "-1130.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "549.5" y= "-1130.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CPlayerState</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "464,-1070 464,-1121 667,-1121 667,-1070 464,-1070" />
<text text-anchor= "start" x= "509.5" y= "-1106.8" font-family= "Noto Serif" font-size= "14.00" > Per- player team.</text>
<text text-anchor= "start" x= "467" y= "-1091.8" font-family= "Noto Serif" font-size= "14.00" > All objects owned by a player</text>
<text text-anchor= "start" x= "498.5" y= "-1076.8" font-family= "Noto Serif" font-size= "14.00" > belong to such node</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "460.5,-1067 460.5,-1193 669.5,-1193 669.5,-1067 460.5,-1067" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Team->Player -->
<g id= "edge3" class= "edge" >
<title > Team- > Player</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M931.46,-1249.69C853.47,-1224.43 754.53,-1192.39 679.13,-1167.96" />
<polygon fill= "black" stroke= "black" points= "680.18,-1164.63 669.59,-1164.87 678.02,-1171.28 680.18,-1164.63" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Wandering Hero -->
2025-07-06 16:00:12 +03:00
<g id= "node7" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Wandering Hero</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1522,-702 1286,-702 1286,-637 1522,-637 1522,-702" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1289,-677.5 1289,-698.5 1519,-698.5 1519,-677.5 1289,-677.5" />
<text text-anchor= "start" x= "1345" y= "-685.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= "1289,-639.5 1289,-675.5 1519,-675.5 1519,-639.5 1289,-639.5" />
<text text-anchor= "start" x= "1330" y= "-661.3" font-family= "Noto Serif" font-size= "14.00" > Hero that is currently</text>
<text text-anchor= "start" x= "1292" y= "-646.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= "1286,-637 1286,-702 1522,-702 1522,-637 1286,-637" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player->Wandering Hero -->
<g id= "edge5" class= "edge" >
<title > Player- > Wandering Hero</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M669.91,-1127.41C929.66,-1122.38 1586.53,-1102.64 1652,-1031 1749.85,-923.93 1563.78,-776.04 1462.88,-707.78" />
<polygon fill= "black" stroke= "black" points= "1464.54,-704.67 1454.28,-702.01 1460.64,-710.49 1464.54,-704.67" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Owned Army -->
2025-07-06 16:00:12 +03:00
<g id= "node9" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Owned Army</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "555.5,-702 356.5,-702 356.5,-637 555.5,-637 555.5,-702" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "360,-677.5 360,-698.5 553,-698.5 553,-677.5 360,-677.5" />
<text text-anchor= "start" x= "409.5" y= "-685.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,-639.5 360,-675.5 553,-675.5 553,-639.5 360,-639.5" />
<text text-anchor= "start" x= "373" y= "-661.3" font-family= "Noto Serif" font-size= "14.00" > Army owned by a player.</text>
<text text-anchor= "start" x= "363" y= "-646.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,-637 356.5,-702 555.5,-702 555.5,-637 356.5,-637" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Player->Owned Army -->
<g id= "edge6" class= "edge" >
<title > Player- > Owned Army</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M460.3,-1103.68C422.65,-1088.98 384.05,-1066.14 362,-1031 297.12,-927.64 378.94,-780.81 426.46,-710.73" />
<polygon fill= "black" stroke= "black" points= "429.56,-712.39 432.35,-702.17 423.8,-708.42 429.56,-712.39" />
2025-05-19 23:45:53 +03:00
</g>
<!-- Owned Object -->
2025-07-06 16:00:12 +03:00
<g id= "node10" class= "node" >
2025-05-19 23:45:53 +03:00
<title > Owned Object</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "338,-706 0,-706 0,-633 338,-633 338,-706" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "3,-681.5 3,-702.5 335,-702.5 335,-681.5 3,-681.5" />
<text text-anchor= "start" x= "119" y= "-689.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Owned Object</text>
2025-05-19 23:45:53 +03:00
<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" />
2025-07-06 16:00:12 +03:00
<text text-anchor= "start" x= "6" y= "-665.3" font-family= "Noto Serif" font-size= "14.00" > Other objects owned by a player, like Lighthouse</text>
2025-05-19 23:45:53 +03:00
<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" />
2025-07-06 16:00:12 +03:00
<text text-anchor= "start" x= "50" y= "-642.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,-633 0,-706 338,-706 338,-633 0,-633" />
2025-05-19 23:45:53 +03:00
</g>
<!-- Player->Owned Object -->
<g id= "edge7" class= "edge" >
<title > Player- > Owned Object</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M460.28,-1102.84C416.92,-1087.72 368.75,-1064.79 334,-1031 242.09,-941.63 196.58,-791.5 178.61,-716.31" />
<polygon fill= "black" stroke= "black" points= "181.93,-715.16 176.25,-706.21 175.11,-716.75 181.93,-715.16" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town and visiting hero -->
2025-07-06 16:00:12 +03:00
<g id= "node14" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Town and visiting hero</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "758.5,-1031 371.5,-1031 371.5,-897 758.5,-897 758.5,-1031" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "375,-1007 375,-1028 756,-1028 756,-1007 375,-1007" />
<text text-anchor= "start" x= "482.5" y= "-1014.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Town and Visiting Hero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "375,-984 375,-1005 756,-1005 756,-984 375,-984" />
<text text-anchor= "start" x= "457" y= "-991.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "541" y= "-991.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > TOWN_AND_VISITOR</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "375,-961 375,-982 756,-982 756,-961 375,-961" />
<text text-anchor= "start" x= "448.5" y= "-968.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "516.5" y= "-968.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CTownAndVisitingHero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "375,-923 375,-959 756,-959 756,-923 375,-923" />
<text text-anchor= "start" x= "466" y= "-944.8" font-family= "Noto Serif" font-size= "14.00" > Helper node that exists solely</text>
<text text-anchor= "start" x= "389.5" y= "-929.8" font-family= "Noto Serif" font-size= "14.00" > to propagate bonuses to both town and visiting hero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "375,-900 375,-921 756,-921 756,-900 375,-900" />
<text text-anchor= "start" x= "378" y= "-906.8" font-family= "Noto Serif" font-size= "14.00" > Note: Neutral towns are attached to global node instead</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "371.5,-897 371.5,-1031 758.5,-1031 758.5,-897 371.5,-897" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M565,-1067C565,-1058.59 565,-1049.88 565,-1041.26" />
<polygon fill= "black" stroke= "black" points= "568.5,-1041.19 565,-1031.19 561.5,-1041.19 568.5,-1041.19" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Hero -->
<g id= "node4" class= "node" >
<title > Hero</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1209.5,-597 740.5,-597 740.5,-433 1209.5,-433 1209.5,-597" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "744,-573 744,-594 1207,-594 1207,-573 744,-573" />
<text text-anchor= "start" x= "957.5" y= "-580.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Hero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "744,-550 744,-571 1207,-571 1207,-550 744,-550" />
<text text-anchor= "start" x= "916.5" y= "-557.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1000.5" y= "-557.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > HERO</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "744,-527 744,-548 1207,-548 1207,-527 744,-527" />
<text text-anchor= "start" x= "883.5" y= "-534.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "951.5" y= "-534.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGHeroInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "744,-474 744,-525 1207,-525 1207,-474 744,-474" />
<text text-anchor= "start" x= "790.5" y= "-510.8" font-family= "Noto Serif" font-size= "14.00" > Represents a hero, either owned by player or in prison.</text>
<text text-anchor= "start" x= "828" y= "-495.8" font-family= "Noto Serif" font-size= "14.00" > Bonuses from specialty and secondary skills</text>
<text text-anchor= "start" x= "864" y= "-480.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= "744,-436 744,-472 1207,-472 1207,-436 744,-436" />
<text text-anchor= "start" x= "797.5" y= "-457.8" font-family= "Noto Serif" font-size= "14.00" > Contains per- hero global bonuses, specialty bonuses, </text>
<text text-anchor= "start" x= "747" y= "-442.8" font-family= "Noto Serif" font-size= "14.00" > primary and secondary skill bonuses, campaign primary skill bonus</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "740.5,-433 740.5,-597 1209.5,-597 1209.5,-433 740.5,-433" />
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-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1199,-397 751,-397 751,-263 1199,-263 1199,-397" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "754,-373 754,-394 1196,-394 1196,-373 754,-373" />
<text text-anchor= "start" x= "955" y= "-380.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Army</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "754,-350 754,-371 1196,-371 1196,-350 754,-350" />
<text text-anchor= "start" x= "916" y= "-357.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1000" y= "-357.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > ARMY</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "754,-327 754,-348 1196,-348 1196,-327 754,-327" />
<text text-anchor= "start" x= "883" y= "-334.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "951" y= "-334.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArmedInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "754,-289 754,-325 1196,-325 1196,-289 754,-289" />
<text text-anchor= "start" x= "834" y= "-310.8" font-family= "Noto Serif" font-size= "14.00" > Represents any object that can hold army,</text>
<text text-anchor= "start" x= "779.5" y= "-295.8" font-family= "Noto Serif" font-size= "14.00" > such as town, hero, mines, garrisons, wandering monsters</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "754,-266 754,-287 1196,-287 1196,-266 754,-266" />
<text text-anchor= "start" x= "757" y= "-272.8" 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= "751,-263 751,-397 1199,-397 1199,-263 751,-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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M975,-432.93C975,-424.44 975,-415.82 975,-407.38" />
<polygon fill= "black" stroke= "black" points= "978.5,-407.19 975,-397.19 971.5,-407.19 978.5,-407.19" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Visiting Hero -->
2025-07-06 16:00:12 +03:00
<g id= "node5" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Visiting Hero</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1150.5,-702 941.5,-702 941.5,-637 1150.5,-637 1150.5,-702" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "945,-677.5 945,-698.5 1148,-698.5 1148,-677.5 945,-677.5" />
<text text-anchor= "start" x= "999.5" y= "-685.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= "945,-639.5 945,-675.5 1148,-675.5 1148,-639.5 945,-639.5" />
<text text-anchor= "start" x= "972.5" y= "-661.3" font-family= "Noto Serif" font-size= "14.00" > Hero that is currently</text>
<text text-anchor= "start" x= "948" y= "-646.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= "941.5,-637 941.5,-702 1150.5,-702 1150.5,-637 941.5,-637" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1031.29,-636.9C1027.04,-627.77 1022.17,-617.32 1017.12,-606.46" />
<polygon fill= "black" stroke= "black" points= "1020.23,-604.86 1012.84,-597.28 1013.89,-607.82 1020.23,-604.86" />
2025-05-10 19:13:47 +03:00
</g>
2025-07-06 16:00:12 +03:00
<!-- Hero defending town -->
<g id= "node6" class= "node" >
<title > Hero defending town</title>
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "876,-702 612,-702 612,-637 876,-637 876,-702" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "615,-677.5 615,-698.5 873,-698.5 873,-677.5 615,-677.5" />
<text text-anchor= "start" x= "669" y= "-685.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Hero defending town</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "615,-639.5 615,-675.5 873,-675.5 873,-639.5 615,-639.5" />
<text text-anchor= "start" x= "670" y= "-661.3" font-family= "Noto Serif" font-size= "14.00" > Hero that is currently</text>
<text text-anchor= "start" x= "618" y= "-646.3" font-family= "Noto Serif" font-size= "14.00" > fighting on a defending side in a siege</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "612,-637 612,-702 876,-702 876,-637 612,-637" />
</g>
<!-- Hero defending town->Hero -->
2025-05-19 23:45:53 +03:00
<g id= "edge28" class= "edge" >
2025-07-06 16:00:12 +03:00
<title > Hero defending town- > Hero</title>
<path fill= "none" stroke= "black" d= "M791.86,-636.9C807.22,-626.76 825.04,-615 843.41,-602.87" />
<polygon fill= "black" stroke= "black" points= "845.47,-605.71 851.89,-597.28 841.61,-599.87 845.47,-605.71" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1315.37,-636.99C1284.97,-626.19 1249.34,-613.52 1212.8,-600.53" />
<polygon fill= "black" stroke= "black" points= "1213.58,-597.09 1202.98,-597.04 1211.23,-603.69 1213.58,-597.09" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1558.9,-638.05C1549.48,-636.26 1540.11,-634.56 1531,-633 1470.47,-622.64 1302.48,-638.27 1257,-597 1201.59,-546.72 1267.27,-490.16 1219,-433 1209.61,-421.88 1198.81,-411.96 1187.09,-403.1" />
<polygon fill= "black" stroke= "black" points= "1188.99,-400.15 1178.83,-397.13 1184.89,-405.82 1188.99,-400.15" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M462.31,-636.86C474.15,-585.95 504.66,-486.2 570,-433 618.57,-393.45 680.47,-368.98 741.18,-353.92" />
<polygon fill= "black" stroke= "black" points= "742,-357.32 750.91,-351.58 740.37,-350.51 742,-357.32" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Town -->
2025-07-06 16:00:12 +03:00
<g id= "node11" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Town</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "692,-861 466,-861 466,-742 692,-742 692,-861" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "469,-836.5 469,-857.5 689,-857.5 689,-836.5 469,-836.5" />
<text text-anchor= "start" x= "559.5" y= "-844.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Town</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "469,-813.5 469,-834.5 689,-834.5 689,-813.5 469,-813.5" />
<text text-anchor= "start" x= "520" y= "-821.3" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "604" y= "-821.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > TOWN</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "469,-790.5 469,-811.5 689,-811.5 689,-790.5 469,-790.5" />
<text text-anchor= "start" x= "487" y= "-798.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "555" y= "-798.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGTownInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "469,-767.5 469,-788.5 689,-788.5 689,-767.5 469,-767.5" />
<text text-anchor= "start" x= "488" y= "-774.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= "469,-744.5 469,-765.5 689,-765.5 689,-744.5 469,-744.5" />
<text text-anchor= "start" x= "472" y= "-751.3" font-family= "Noto Serif" font-size= "14.00" > Contains town building bonuses</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "466,-742 466,-861 692,-861 692,-742 466,-742" />
</g>
<!-- Town->Hero defending town -->
2025-05-19 23:45:53 +03:00
<g id= "edge23" class= "edge" >
2025-07-06 16:00:12 +03:00
<title > Town- > Hero defending town</title>
<path fill= "none" stroke= "black" d= "M653.29,-741.97C667.74,-730.58 682.53,-718.93 695.87,-708.42" />
<polygon fill= "black" stroke= "black" points= "698.27,-710.98 703.96,-702.04 693.94,-705.48 698.27,-710.98" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M581.26,-741.61C584.03,-708.79 590.04,-667.67 603,-633 640.02,-533.92 650.94,-500.95 732,-433 745.61,-421.59 760.68,-411.3 776.45,-402.04" />
<polygon fill= "black" stroke= "black" points= "778.32,-405 785.28,-397.01 774.86,-398.92 778.32,-405" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Artifact Instance -->
2025-07-06 16:00:12 +03:00
<g id= "node12" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Artifact Instance</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#00ffff" fill-opacity= "0.501961" stroke= "transparent" points= "1454,-857 1078,-857 1078,-746 1454,-746 1454,-857" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1081,-832.5 1081,-853.5 1451,-853.5 1451,-832.5 1081,-832.5" />
<text text-anchor= "start" x= "1205.5" y= "-840.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= "1081,-809.5 1081,-830.5 1451,-830.5 1451,-809.5 1081,-809.5" />
<text text-anchor= "start" x= "1161.5" y= "-817.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1229.5" y= "-817.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArtifactInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1081,-771.5 1081,-807.5 1451,-807.5 1451,-771.5 1081,-771.5" />
<text text-anchor= "start" x= "1111" y= "-793.3" font-family= "Noto Serif" font-size= "14.00" > Represents a particular instance of an artifact</text>
<text text-anchor= "start" x= "1169" y= "-778.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= "1081,-748.5 1081,-769.5 1451,-769.5 1451,-748.5 1081,-748.5" />
<text text-anchor= "start" x= "1084" y= "-755.3" font-family= "Noto Serif" font-size= "14.00" > Contains bonuses of spell scrolls and growing artifacts</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1078,-746 1078,-857 1454,-857 1454,-746 1078,-746" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1239.36,-745.63C1220.54,-710.63 1192.86,-665.85 1160,-633 1149.53,-622.53 1137.96,-612.54 1125.87,-603.12" />
<polygon fill= "black" stroke= "black" points= "1127.93,-600.29 1117.85,-597.01 1123.69,-605.86 1127.93,-600.29" />
2025-05-10 19:13:47 +03:00
</g>
<!-- Boat -->
2025-07-06 16:00:12 +03:00
<g id= "node13" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Boat</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#00ffff" fill-opacity= "0.501961" stroke= "transparent" points= "1021.5,-849.5 710.5,-849.5 710.5,-753.5 1021.5,-753.5 1021.5,-849.5" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "714,-825.5 714,-846.5 1019,-846.5 1019,-825.5 714,-825.5" />
<text text-anchor= "start" x= "850" y= "-833.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Boat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "714,-802.5 714,-823.5 1019,-823.5 1019,-802.5 714,-802.5" />
<text text-anchor= "start" x= "807.5" y= "-810.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "875.5" y= "-810.3" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CGBoat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "714,-779.5 714,-800.5 1019,-800.5 1019,-779.5 714,-779.5" />
<text text-anchor= "start" x= "717" y= "-786.3" font-family= "Noto Serif" font-size= "14.00" > Represents a boat or other type of transport.</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "714,-756.5 714,-777.5 1019,-777.5 1019,-756.5 714,-756.5" />
<text text-anchor= "start" x= "720.5" y= "-763.3" font-family= "Noto Serif" font-size= "14.00" > Contains bonuses provided to boarded hero</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "710.5,-753.5 710.5,-849.5 1021.5,-849.5 1021.5,-753.5 710.5,-753.5" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M884.12,-753.2C899.36,-713.43 921.58,-655.43 940.24,-606.74" />
<polygon fill= "black" stroke= "black" points= "943.61,-607.72 943.92,-597.13 937.07,-605.22 943.61,-607.72" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M758.73,-899.19C761.84,-898.43 764.93,-897.7 768,-897 825.5,-883.83 990.5,-903.89 1031,-861 1068.11,-821.7 1064.06,-755.25 1056.21,-712.14" />
<polygon fill= "black" stroke= "black" points= "1059.63,-711.38 1054.26,-702.25 1052.76,-712.73 1059.63,-711.38" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M570.78,-896.79C571.51,-888.38 572.26,-879.76 573,-871.31" />
<polygon fill= "black" stroke= "black" points= "576.51,-871.38 573.89,-861.11 569.53,-870.77 576.51,-871.38" />
</g>
<!-- Combat -->
<g id= "node15" class= "node" >
<title > Combat</title>
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1716,-582 1266,-582 1266,-448 1716,-448 1716,-582" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1269,-558 1269,-579 1713,-579 1713,-558 1269,-558" />
<text text-anchor= "start" x= "1463.5" y= "-565.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Combat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1269,-535 1269,-556 1713,-556 1713,-535 1269,-535" />
<text text-anchor= "start" x= "1403.5" y= "-542.8" font-family= "Noto Serif" font-size= "14.00" > Propagator: </text>
<text text-anchor= "start" x= "1487.5" y= "-542.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > BATTLE_WIDE</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1269,-512 1269,-533 1713,-533 1713,-512 1269,-512" />
<text text-anchor= "start" x= "1415.5" y= "-519.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1483.5" y= "-519.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > BattleInfo</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1269,-474 1269,-510 1713,-510 1713,-474 1269,-474" />
<text text-anchor= "start" x= "1350.5" y= "-495.8" font-family= "Noto Serif" font-size= "14.00" > Node that contains both sides of a combat</text>
<text text-anchor= "start" x= "1272" y= "-480.8" font-family= "Noto Serif" font-size= "14.00" > Anything propagated to this node will affect both sides in combat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1269,-451 1269,-472 1713,-472 1713,-451 1269,-451" />
<text text-anchor= "start" x= "1333" y= "-457.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= "1266,-448 1266,-582 1716,-582 1716,-448 1266,-448" />
</g>
<!-- Combat->Army -->
<g id= "edge11" class= "edge" >
<title > Combat- > Army</title>
<path fill= "none" stroke= "black" d= "M1304.71,-447.93C1261.28,-432.53 1214.9,-416.08 1171.06,-400.53" />
<polygon fill= "black" stroke= "black" points= "1172.04,-397.17 1161.45,-397.12 1169.7,-403.77 1172.04,-397.17" />
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-07-06 16:00:12 +03:00
<polygon fill= "#00ffff" fill-opacity= "0.501961" stroke= "transparent" points= "1641,-378 1217,-378 1217,-282 1641,-282 1641,-378" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1220,-354 1220,-375 1638,-375 1638,-354 1220,-354" />
<text text-anchor= "start" x= "1377.5" y= "-361.8" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Creature Type</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1220,-331 1220,-352 1638,-352 1638,-331 1220,-331" />
<text text-anchor= "start" x= "1357.5" y= "-338.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1425.5" y= "-338.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CCreature</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1220,-308 1220,-329 1638,-329 1638,-308 1220,-308" />
<text text-anchor= "start" x= "1245" y= "-314.8" font-family= "Noto Serif" font-size= "14.00" > Represents a creature type, such as Pikeman or Archer</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1220,-285 1220,-306 1638,-306 1638,-285 1220,-285" />
<text text-anchor= "start" x= "1223" y= "-291.8" font-family= "Noto Serif" font-size= "14.00" > Contains creature abilities bonuses, stack experience bonuses</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1217,-282 1217,-378 1641,-378 1641,-282 1217,-282" />
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-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1345,-227 1069,-227 1069,-124 1345,-124 1345,-227" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1072,-202.5 1072,-223.5 1342,-223.5 1342,-202.5 1072,-202.5" />
<text text-anchor= "start" x= "1160.5" y= "-210.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Unit in Army</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1072,-179.5 1072,-200.5 1342,-200.5 1342,-179.5 1072,-179.5" />
<text text-anchor= "start" x= "1115" y= "-187.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1183" 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= "1072,-126.5 1072,-177.5 1342,-177.5 1342,-126.5 1072,-126.5" />
<text text-anchor= "start" x= "1075" y= "-163.3" font-family= "Noto Serif" font-size= "14.00" > Represents a unit that is part of a army</text>
<text text-anchor= "start" x= "1092.5" y= "-148.3" font-family= "Noto Serif" font-size= "14.00" > A unit always has a creature type,</text>
<text text-anchor= "start" x= "1080.5" y= "-133.3" font-family= "Noto Serif" font-size= "14.00" > belongs to an army and has stack size</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1069,-124 1069,-227 1345,-227 1345,-124 1069,-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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1360.28,-281.79C1337.82,-266.37 1312.65,-249.08 1289.3,-233.04" />
<polygon fill= "black" stroke= "black" points= "1291.01,-229.97 1280.79,-227.19 1287.05,-235.74 1291.01,-229.97" />
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>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1671,-212 1363,-212 1363,-139 1671,-139 1671,-212" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1366,-187.5 1366,-208.5 1668,-208.5 1668,-187.5 1366,-187.5" />
<text text-anchor= "start" x= "1473.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= "1366,-164.5 1366,-185.5 1668,-185.5 1668,-164.5 1366,-164.5" />
<text text-anchor= "start" x= "1408.5" y= "-172.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1476.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= "1366,-141.5 1366,-162.5 1668,-162.5 1668,-141.5 1366,-141.5" />
<text text-anchor= "start" x= "1369" 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= "1363,-139 1363,-212 1671,-212 1671,-139 1363,-139" />
2025-05-19 23:45:53 +03:00
</g>
<!-- Creature Type->Commander -->
<g id= "edge20" class= "edge" >
<title > Creature Type- > Commander</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1456.36,-281.58C1467.51,-262.26 1480.33,-240.04 1491.31,-221.02" />
<polygon fill= "black" stroke= "black" points= "1494.4,-222.67 1496.37,-212.25 1488.34,-219.17 1494.4,-222.67" />
2025-05-19 23:45:53 +03:00
</g>
<!-- Summon in Combat -->
<g id= "node23" class= "node" >
2025-05-10 19:13:47 +03:00
<title > Summon in Combat</title>
2025-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1050.5,-219.5 723.5,-219.5 723.5,-131.5 1050.5,-131.5 1050.5,-219.5" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "727,-195.5 727,-216.5 1048,-216.5 1048,-195.5 727,-195.5" />
<text text-anchor= "start" x= "818.5" y= "-203.3" font-family= "Noto Serif" font-weight= "bold" font-size= "14.00" > Summon in Combat</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "727,-172.5 727,-193.5 1048,-193.5 1048,-172.5 727,-172.5" />
<text text-anchor= "start" x= "828.5" y= "-180.3" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "896.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= "727,-134.5 727,-170.5 1048,-170.5 1048,-134.5 727,-134.5" />
<text text-anchor= "start" x= "730" y= "-156.3" font-family= "Noto Serif" font-size= "14.00" > Represents any unit that was added in combat,</text>
<text text-anchor= "start" x= "773" 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= "723.5,-131.5 723.5,-219.5 1050.5,-219.5 1050.5,-131.5 723.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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1275.33,-282C1252.8,-275.43 1229.84,-268.91 1208,-263 1142.66,-245.31 1125.4,-244.49 1060,-227 1054.29,-225.47 1048.48,-223.9 1042.61,-222.28" />
<polygon fill= "black" stroke= "black" points= "1043.27,-218.83 1032.7,-219.54 1041.4,-225.58 1043.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-07-06 16:00:12 +03:00
<polygon fill= "#00ffff" fill-opacity= "0.501961" stroke= "transparent" points= "1141,-1012 777,-1012 777,-916 1141,-916 1141,-1012" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "780,-988 780,-1009 1138,-1009 1138,-988 780,-988" />
<text text-anchor= "start" x= "911" y= "-995.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= "780,-965 780,-986 1138,-986 1138,-965 780,-965" />
<text text-anchor= "start" x= "887.5" y= "-972.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "955.5" y= "-972.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArtifact</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "780,-942 780,-963 1138,-963 1138,-942 780,-942" />
<text text-anchor= "start" x= "783" y= "-948.8" font-family= "Noto Serif" font-size= "14.00" > Represents an artifact type, for example Ring of Life</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "780,-919 780,-940 1138,-940 1138,-919 780,-919" />
<text text-anchor= "start" x= "843.5" y= "-925.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= "777,-916 777,-1012 1141,-1012 1141,-916 777,-916" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1049.04,-915.93C1081.44,-898.99 1118.42,-879.66 1152.56,-861.81" />
<polygon fill= "black" stroke= "black" points= "1154.39,-864.8 1161.64,-857.06 1151.15,-858.59 1154.39,-864.8" />
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-07-06 16:00:12 +03:00
<polygon fill= "#808080" fill-opacity= "0.501961" stroke= "transparent" points= "1643,-1008 1159,-1008 1159,-920 1643,-920 1643,-1008" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1162,-984 1162,-1005 1640,-1005 1640,-984 1162,-984" />
<text text-anchor= "start" x= "1330" y= "-991.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= "1162,-961 1162,-982 1640,-982 1640,-961 1162,-961" />
<text text-anchor= "start" x= "1296.5" y= "-968.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1364.5" y= "-968.8" font-family= "monospace" font-weight= "bold" font-size= "14.00" > CArtifactInstance</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1162,-923 1162,-959 1640,-959 1640,-923 1162,-923" />
<text text-anchor= "start" x= "1285.5" y= "-944.8" font-family= "Noto Serif" font-size= "14.00" > For combined, non- fused artifacts,</text>
<text text-anchor= "start" x= "1165" y= "-929.8" font-family= "Noto Serif" font-size= "14.00" > instances of components are attached to instance of combined artifact</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1159,-920 1159,-1008 1643,-1008 1643,-920 1159,-920" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1364.82,-919.99C1350.61,-903.09 1334.01,-883.36 1318.52,-864.94" />
<polygon fill= "black" stroke= "black" points= "1321.08,-862.55 1311.96,-857.15 1315.72,-867.05 1321.08,-862.55" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1075.41,-263C1090.66,-252.97 1106.28,-242.7 1121.19,-232.91" />
<polygon fill= "black" stroke= "black" points= "1123.44,-235.62 1129.87,-227.2 1119.59,-229.77 1123.44,-235.62" />
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>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1199.1,-265.37C1202.09,-264.57 1205.05,-263.78 1208,-263 1272.61,-245.89 1289.61,-244.9 1354,-227 1367.57,-223.23 1381.72,-219.12 1395.76,-214.92" />
<polygon fill= "black" stroke= "black" points= "1396.89,-218.24 1405.46,-212.01 1394.88,-211.53 1396.89,-218.24" />
2025-05-19 23:45:53 +03:00
</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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M936.91,-263C930.24,-251.44 923.39,-239.56 916.98,-228.45" />
<polygon fill= "black" stroke= "black" points= "919.97,-226.63 911.94,-219.72 913.91,-230.13 919.97,-226.63" />
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-07-06 16:00:12 +03:00
<polygon fill= "#602000" fill-opacity= "0.501961" stroke= "transparent" points= "1533.5,-88 1190.5,-88 1190.5,0 1533.5,0 1533.5,-88" />
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1194,-64 1194,-85 1531,-85 1531,-64 1194,-64" />
<text text-anchor= "start" x= "1309" 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= "1194,-41 1194,-62 1531,-62 1531,-41 1194,-41" />
<text text-anchor= "start" x= "1303.5" y= "-48.8" font-family= "Noto Serif" font-size= "14.00" > C++ Class: </text>
<text text-anchor= "start" x= "1371.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= "1194,-3 1194,-39 1531,-39 1531,-3 1194,-3" />
<text text-anchor= "start" x= "1197" y= "-24.8" font-family= "Noto Serif" font-size= "14.00" > Represents current state of a unit during combat,</text>
<text text-anchor= "start" x= "1217.5" y= "-9.8" font-family= "Noto Serif" font-size= "14.00" > can be affected by spells or receive damage</text>
<polygon fill= "none" stroke= "#000000" stroke-opacity= "0.501961" points= "1190.5,0 1190.5,-88 1533.5,-88 1533.5,0 1190.5,0" />
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-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1267.82,-123.69C1279.25,-114.13 1291.2,-104.15 1302.6,-94.63" />
<polygon fill= "black" stroke= "black" points= "1304.96,-97.22 1310.39,-88.12 1300.47,-91.85 1304.96,-97.22" />
2025-05-19 23:45:53 +03:00
</g>
<!-- Commander->Unit in Combat -->
<g id= "edge16" class= "edge" >
<title > Commander- > Unit in Combat</title>
2025-07-06 16:00:12 +03:00
<path fill= "none" stroke= "black" d= "M1474.24,-138.77C1457.99,-125.2 1439.19,-109.49 1421.67,-94.85" />
<polygon fill= "black" stroke= "black" points= "1423.64,-91.94 1413.72,-88.21 1419.15,-97.31 1423.64,-91.94" />
2025-05-10 19:13:47 +03:00
</g>
</g>
</svg>