@@ -1459,34 +1459,34 @@ EndFunc ;==>TranslateTroopNames
14591459
14601460; Upgrading - Wall
14611461; First cost is for walls level 5. MBR doesn't support walls until level 4.
1462- Global Const $g_aiWallCost [10 ] = [20000 , 40000 , 80000 , 150000 , 250000 , 500000 , 1000000 , 3000000 , 5000000 , 6000000 ]
1462+ Global Const $g_aiWallCost [11 ] = [20000 , 40000 , 80000 , 150000 , 250000 , 500000 , 1000000 , 3000000 , 5000000 , 6000000 , 7000000 ]
14631463Global $g_iWallCost = 0
14641464
14651465; Upgrading - Heroes
14661466; Barbarian King/Queen Upgrade Costs = Dark Elixir in xxxK
1467- Global Const $g_iMaxKingLevel = 75
1468- Global Const $g_iMaxQueenLevel = 75
1469- Global Const $g_iMaxWardenLevel = 50
1470- Global Const $g_iMaxChampionLevel = 25
1471- Global Const $g_afKingUpgCost [$g_iMaxKingLevel ] = [10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 28 , 30 , 32 , 34 , 36 , 38 , 40 , 42 , 44 , 46 , 48 , 50 , 53 , 56 , 59 , 62 , 65 , 68 , 72 , 76 , 80 , 88 , 96 , 104 , 112 , 120 , 128 , 136 , 144 , 152 , 160 , 170 , 173 , 176 , 179 , 182 , 185 , 188 , 191 , 194 , 197 , 200 , 203 , 206 , 209 , 212 , 215 , 218 , 221 , 224 , 227 , 230 , 233 , 236 , 239 , 240 , 250 , 260 , 270 , 280 , 290 , 292 , 294 , 296 , 298 , 300 ]
1467+ Global Const $g_iMaxKingLevel = 80
1468+ Global Const $g_iMaxQueenLevel = 80
1469+ Global Const $g_iMaxWardenLevel = 55
1470+ Global Const $g_iMaxChampionLevel = 30
1471+ Global Const $g_afKingUpgCost [$g_iMaxKingLevel ] = [10 , 12 , 14 , 16 , 18 , 20 , 22 , 24 , 26 , 28 , 30 , 32 , 34 , 36 , 38 , 40 , 42 , 44 , 46 , 48 , 50 , 53 , 56 , 59 , 62 , 65 , 68 , 72 , 76 , 80 , 88 , 96 , 104 , 112 , 120 , 128 , 136 , 144 , 152 , 160 , 170 , 173 , 176 , 179 , 182 , 185 , 188 , 191 , 194 , 197 , 200 , 203 , 206 , 209 , 212 , 215 , 218 , 221 , 224 , 227 , 230 , 233 , 236 , 239 , 240 , 250 , 260 , 270 , 280 , 290 , 292 , 294 , 296 , 298 , 300 , 305 , 310 , 315 , 320 , 325 ]
14721472
1473- Global Const $g_afQueenUpgCost [$g_iMaxQueenLevel ] = [20 , 22 , 24 , 26 , 28 , 30 , 32 , 34 , 36 , 38 , 40 , 42 , 44 , 46 , 48 , 50 , 53 , 56 , 59 , 62 , 65 , 68 , 71 , 74 , 77 , 80 , 83 , 86 , 89 , 92 , 98 , 106 , 114 , 122 , 130 , 138 , 146 , 154 , 162 , 170 , 180 , 182 , 184 , 186 , 188 , 190 , 192 , 194 , 196 , 198 , 200 , 204 , 208 , 212 , 216 , 220 , 224 , 228 , 232 , 236 , 240 , 240 , 240 , 240 , 240 , 250 , 260 , 270 , 280 , 290 , 292 , 294 , 296 , 298 , 300 ]
1473+ Global Const $g_afQueenUpgCost [$g_iMaxQueenLevel ] = [20 , 22 , 24 , 26 , 28 , 30 , 32 , 34 , 36 , 38 , 40 , 42 , 44 , 46 , 48 , 50 , 53 , 56 , 59 , 62 , 65 , 68 , 71 , 74 , 77 , 80 , 83 , 86 , 89 , 92 , 98 , 106 , 114 , 122 , 130 , 138 , 146 , 154 , 162 , 170 , 180 , 182 , 184 , 186 , 188 , 190 , 192 , 194 , 196 , 198 , 200 , 204 , 208 , 212 , 216 , 220 , 224 , 228 , 232 , 236 , 240 , 240 , 240 , 240 , 240 , 250 , 260 , 270 , 280 , 290 , 292 , 294 , 296 , 298 , 300 , 306 , 312 , 318 , 324 , 330 ]
14741474
1475- Global Const $g_afChampionUpgCost [$g_iMaxChampionLevel ] = [120 , 130 , 140 , 150 , 160 , 170 , 180 , 190 , 200 , 210 , 220 , 230 , 235 , 240 , 245 , 250 , 255 , 260 , 265 , 270 , 275 , 280 , 285 , 290 , 295 ]
1475+ Global Const $g_afChampionUpgCost [$g_iMaxChampionLevel ] = [120 , 130 , 140 , 150 , 160 , 170 , 180 , 190 , 200 , 210 , 220 , 230 , 235 , 240 , 245 , 250 , 255 , 260 , 265 , 270 , 275 , 280 , 285 , 290 , 295 , 300 , 305 , 310 , 315 , 320 ]
14761476
14771477; Grand Warden Upgrade Costs = Elixir in xx.xK
14781478Global $g_iWardenLevel = - 1
1479- Global Const $g_afWardenUpgCost [$g_iMaxWardenLevel ] = [6 , 2.5 , 3 , 3.5 , 4 , 4.5 , 5 , 5.5 , 6 , 6.5 , 7 , 7.5 , 8 , 8.4 , 8.8 , 9.1 , 9.4 , 9.6 , 9.8 , 10 , 10 , 10.2 , 10.4 , 10.6 , 10.8 , 11 , 11.2 , 11.4 , 11.6 , 11.8 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12.5 , 13 , 13.5 , 14 , 14.5 , 15 , 15.5 , 16 , 16.5 ]
1479+ Global Const $g_afWardenUpgCost [$g_iMaxWardenLevel ] = [6 , 2.5 , 3 , 3.5 , 4 , 4.5 , 5 , 5.5 , 6 , 6.5 , 7 , 7.5 , 8 , 8.4 , 8.8 , 9.1 , 9.4 , 9.6 , 9.8 , 10 , 10 , 10.2 , 10.4 , 10.6 , 10.8 , 11 , 11.2 , 11.4 , 11.6 , 11.8 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12.5 , 13 , 13.5 , 14 , 14.5 , 15 , 15.5 , 16 , 16.5 , 17 , 17.5 , 18 , 18.5 , 19 ]
14801480
14811481; Special Bot activities active
14821482Global $g_bVillageSearchActive = False ; True during Village Search
14831483Global $g_bCloudsActive = False ; True when waiting for clouds
14841484Global $g_bAttackActive = False ; True when attacking Village
14851485
14861486; Search
1487- Global Const $g_iMaxTHLevel = 13
1488- Global Const $g_asTHText [8 ] = [" 4-6" , " 7" , " 8" , " 9" , " 10" , " 11" , " 12" , " 13" ]
1489- Global Const $g_aiSearchCost [$g_iMaxTHLevel ] = [10 , 50 , 75 , 110 , 170 , 250 , 380 , 580 , 750 , 900 , 1000 , 1100 , 1200 ]
1487+ Global Const $g_iMaxTHLevel = 14
1488+ Global Const $g_asTHText [9 ] = [" 4-6" , " 7" , " 8" , " 9" , " 10" , " 11" , " 12" , " 13" , " 14 " ]
1489+ Global Const $g_aiSearchCost [$g_iMaxTHLevel ] = [10 , 50 , 75 , 110 , 170 , 250 , 380 , 580 , 750 , 900 , 1000 , 1100 , 1200 , 1300 ]
14901490Global $g_bSearchMode = False
14911491Global $g_bIsSearchLimit = False
14921492Global $g_bIsClientSyncError = False ; If true means while searching Client Out Of Sync error occurred.
@@ -1683,8 +1683,8 @@ Global $g_aWeakDefenseNames = ["None", "Eagle Artillery", "Inferno Tower", "XBow
16831683; Building variables used by CSV attacks
16841684Global Enum $eBldgRedLine , $eBldgTownHall , $eBldgGoldM , $eBldgElixirC , $eBldgDrill , $eBldgGoldS , $eBldgElixirS , $eBldgDarkS , $eBldgEagle , $eBldgInferno , $eBldgXBow , $eBldgWizTower , $eBldgMortar , $eBldgAirDefense , $eBldgScatter , $eExternalWall , $eInternalWall
16851685Global $g_sBldgNames = [" Red Line" , " Town Hall" , " Gold Mine" , " Elixir Collector" , " Dark Elixir Drill" , " Gold Storage" , " Elixir Storage" , " Dark Elixir Storage" , " Eagle Artillery" , " Inferno Tower" , " XBow" , " Wizard Tower" , " Mortar" , " Air Defense" , " Scatter Shot" , " External Wall" , " Internal Wall" ]
1686- Global Const $g_iMaxCapTroopTH [14 ] = [0 , 20 , 30 , 70 , 80 , 135 , 150 , 200 , 200 , 220 , 240 , 260 , 280 , 300 ] ; element 0 is a dummy
1687- Global Const $g_iMaxCapSpellTH [14 ] = [0 , 0 , 0 , 0 , 0 , 2 , 4 , 6 , 7 , 9 , 11 , 11 , 11 , 11 ] ; element 0 is a dummy
1686+ Global Const $g_iMaxCapTroopTH [15 ] = [0 , 20 , 30 , 70 , 80 , 135 , 150 , 200 , 200 , 220 , 240 , 260 , 280 , 300 , 300 ] ; element 0 is a dummy
1687+ Global Const $g_iMaxCapSpellTH [15 ] = [0 , 0 , 0 , 0 , 0 , 2 , 4 , 6 , 7 , 9 , 11 , 11 , 11 , 11 , 13 ] ; element 0 is a dummy
16881688Global $g_oBldgAttackInfo = ObjCreate (" Scripting.Dictionary" ) ; stores building information of base being attacked
16891689$g_oBldgAttackInfo .CompareMode = 1 ; use case in-sensitve compare for key values
16901690
@@ -1716,29 +1716,29 @@ Global $g_oBldgLevels = ObjCreate("Scripting.Dictionary")
17161716; to find max level for any defense = $g_oBldgLevels.item(Building enum)[TownHall level -1]
17171717
17181718Func _FilloBldgLevels()
1719- Local Const $aBldgCollector [13 ] = [2 , 4 , 6 , 8 , 10 , 10 , 11 , 12 , 12 , 12 , 12 , 12 , 12 ]
1719+ Local Const $aBldgCollector [$g_iMaxTHLevel ] = [2 , 4 , 6 , 8 , 10 , 10 , 11 , 12 , 12 , 12 , 12 , 12 , 12 , 12 ]
17201720 $g_oBldgLevels .add($eBldgGoldM , $aBldgCollector )
17211721 $g_oBldgLevels .add($eBldgElixirC , $aBldgCollector )
1722- Local Const $aBldgDrill [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 3 , 3 , 6 , 6 , 6 , 6 , 6 ]
1722+ Local Const $aBldgDrill [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 3 , 3 , 6 , 6 , 6 , 6 , 6 , 6 ]
17231723 $g_oBldgLevels .add($eBldgDrill , $aBldgDrill )
1724- Local Const $aBldgStorage [13 ] = [1 , 3 , 6 , 8 , 9 , 10 , 11 , 11 , 11 , 11 , 12 , 13 , 14 ]
1724+ Local Const $aBldgStorage [$g_iMaxTHLevel ] = [1 , 3 , 6 , 8 , 9 , 10 , 11 , 11 , 11 , 11 , 12 , 13 , 14 , 15 ]
17251725 $g_oBldgLevels .add($eBldgGoldS , $aBldgStorage )
17261726 $g_oBldgLevels .add($eBldgElixirS , $aBldgStorage )
1727- Local Const $aBldgDarkStorage [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 2 , 4 , 6 , 6 , 6 , 7 , 8 ]
1727+ Local Const $aBldgDarkStorage [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 2 , 4 , 6 , 6 , 6 , 7 , 8 , 9 ]
17281728 $g_oBldgLevels .add($eBldgDarkS , $aBldgDarkStorage )
1729- Local Const $aBldgEagle [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 4 ]
1729+ Local Const $aBldgEagle [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 4 , 5 ]
17301730 $g_oBldgLevels .add($eBldgEagle , $aBldgEagle )
1731- Local Const $aBldgInferno [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 5 , 6 , 7 ]
1731+ Local Const $aBldgInferno [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 5 , 6 , 7 , 8 ]
17321732 $g_oBldgLevels .add($eBldgInferno , $aBldgInferno )
1733- Local Const $aBldgMortar [13 ] = [0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 10 , 11 , 11 ]
1733+ Local Const $aBldgMortar [$g_iMaxTHLevel ] = [0 , 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 10 , 11 , 11 , 12 ]
17341734 $g_oBldgLevels .add($eBldgMortar , $aBldgMortar )
1735- Local Const $aBldgWizTower [13 ] = [0 , 0 , 0 , 0 , 2 , 3 , 4 , 6 , 7 , 9 , 10 , 11 , 12 ]
1735+ Local Const $aBldgWizTower [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 2 , 3 , 4 , 6 , 7 , 9 , 10 , 11 , 12 , 13 ]
17361736 $g_oBldgLevels .add($eBldgWizTower , $aBldgWizTower )
1737- Local Const $aBldgXBow [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 4 , 5 , 6 , 7 ]
1737+ Local Const $aBldgXBow [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 4 , 5 , 6 , 7 , 8 ]
17381738 $g_oBldgLevels .add($eBldgXBow , $aBldgXBow )
1739- Local Const $aBldgAirDefense [13 ] = [0 , 0 , 0 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 ]
1739+ Local Const $aBldgAirDefense [$g_iMaxTHLevel ] = [0 , 0 , 0 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 ]
17401740 $g_oBldgLevels .add($eBldgAirDefense , $aBldgAirDefense )
1741- Local const $aBldgScatterShot [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 ]
1741+ Local const $aBldgScatterShot [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 ]
17421742 $g_oBldgLevels .add($eBldgScatter , $aBldgScatterShot )
17431743EndFunc ; ==>_FilloBldgLevels
17441744_FilloBldgLevels()
@@ -1748,37 +1748,37 @@ Global $g_oBldgMaxQty = ObjCreate("Scripting.Dictionary")
17481748; to find max number of bldgs for any defense = $g_oBldgMaxQty.item(Building enum)[TownHall level -1]
17491749
17501750Func _FilloBldgMaxQty()
1751- Local Const $aBldgCollector [13 ] = [1 , 2 , 3 , 4 , 5 , 6 , 6 , 6 , 6 , 7 , 7 , 7 , 7 ]
1751+ Local Const $aBldgCollector [$g_iMaxTHLevel ] = [1 , 2 , 3 , 4 , 5 , 6 , 6 , 6 , 6 , 7 , 7 , 7 , 7 , 7 ]
17521752 $g_oBldgMaxQty .add($eBldgGoldM , $aBldgCollector )
17531753 $g_oBldgMaxQty .add($eBldgElixirC , $aBldgCollector )
1754- Local Const $aBldgDrill [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 2 , 3 , 3 , 3 , 3 ]
1754+ Local Const $aBldgDrill [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 2 , 3 , 3 , 3 , 3 , 3 ]
17551755 $g_oBldgMaxQty .add($eBldgDrill , $aBldgDrill )
1756- Local Const $aBldgStorage [13 ] = [1 , 1 , 2 , 2 , 2 , 2 , 2 , 3 , 4 , 4 , 4 , 4 , 4 ]
1756+ Local Const $aBldgStorage [$g_iMaxTHLevel ] = [1 , 1 , 2 , 2 , 2 , 2 , 2 , 3 , 4 , 4 , 4 , 4 , 4 , 4 ]
17571757 $g_oBldgMaxQty .add($eBldgGoldS , $aBldgStorage )
17581758 $g_oBldgMaxQty .add($eBldgElixirS , $aBldgStorage )
1759- Local Const $aBldgDarkStorage [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ]
1759+ Local Const $aBldgDarkStorage [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ]
17601760 $g_oBldgMaxQty .add($eBldgDarkS , $aBldgDarkStorage )
1761- Local Const $aBldgEagle [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 ]
1761+ Local Const $aBldgEagle [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 ]
17621762 $g_oBldgMaxQty .add($eBldgEagle , $aBldgEagle )
1763- Local Const $aBldgInferno [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 2 , 3 , 3 ]
1763+ Local Const $aBldgInferno [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 2 , 3 , 3 , 3 ]
17641764 $g_oBldgMaxQty .add($eBldgInferno , $aBldgInferno )
1765- Local Const $aBldgMortar [13 ] = [0 , 0 , 1 , 1 , 1 , 2 , 3 , 4 , 4 , 4 , 4 , 4 , 4 ]
1765+ Local Const $aBldgMortar [$g_iMaxTHLevel ] = [0 , 0 , 1 , 1 , 1 , 2 , 3 , 4 , 4 , 4 , 4 , 4 , 4 , 4 ]
17661766 $g_oBldgMaxQty .add($eBldgMortar , $aBldgMortar )
1767- Local Const $aBldgWizTower [13 ] = [0 , 0 , 0 , 0 , 1 , 2 , 2 , 3 , 4 , 4 , 5 , 5 , 5 ]
1767+ Local Const $aBldgWizTower [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 1 , 2 , 2 , 3 , 4 , 4 , 5 , 5 , 5 , 5 ]
17681768 $g_oBldgMaxQty .add($eBldgWizTower , $aBldgWizTower )
1769- Local Const $aBldgXBow [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 4 , 4 , 4 ]
1769+ Local Const $aBldgXBow [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 4 , 4 , 4 , 4 ]
17701770 $g_oBldgMaxQty .add($eBldgXBow , $aBldgXBow )
1771- Local Const $aBldgAirDefense [13 ] = [0 , 0 , 0 , 1 , 1 , 2 , 3 , 3 , 4 , 4 , 4 , 4 , 4 ]
1771+ Local Const $aBldgAirDefense [$g_iMaxTHLevel ] = [0 , 0 , 0 , 1 , 1 , 2 , 3 , 3 , 4 , 4 , 4 , 4 , 4 , 4 ]
17721772 $g_oBldgMaxQty .add($eBldgAirDefense , $aBldgAirDefense )
1773- Local const $aBldgScatterShot [13 ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 ]
1773+ Local const $aBldgScatterShot [$g_iMaxTHLevel ] = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 2 ]
17741774 $g_oBldgMaxQty .add($eBldgScatter , $aBldgScatterShot )
17751775EndFunc ; ==>_FilloBldgMaxQty
17761776_FilloBldgMaxQty()
17771777
17781778Global $g_oBldgImages = ObjCreate (" Scripting.Dictionary" ) ; stores strings with location of images used to find buildings during attacks
17791779; Building image key string value = bldg type enum & "_" & $g_iDetectedImageType (no snow, with snow)
1780- $g_oBldgImages .add($eBldgTownHall & " _" & " 0" , " imglocth-bundle " )
1781- $g_oBldgImages .add($eBldgTownHall & " _" & " 1" , " snow-imglocth-bundle " )
1780+ $g_oBldgImages .add($eBldgTownHall & " _" & " 0" , @ScriptDir & " \imgxml\Buildings\Townhall " )
1781+ $g_oBldgImages .add($eBldgTownHall & " _" & " 1" , @ScriptDir & " \imgxml\Buildings\ snow-Townhall " )
17821782$g_oBldgImages .add($eBldgGoldM & " _" & " 0" , @ScriptDir & " \imgxml\Storages\Mines" )
17831783$g_oBldgImages .add($eBldgGoldM & " _" & " 1" , @ScriptDir & " \imgxml\Storages\Mines_Snow" )
17841784$g_oBldgImages .add($eBldgElixirC & " _" & " 0" , @ScriptDir & " \imgxml\Storages\Collectors" )
0 commit comments