function ConvertAttackStringToInteger takes nothing returns integer
local string inputStr = BlzFrameGetText(BlzGetFrameByName("InfoPanelIconValue", 0))
local string currentChar = ""
local boolean isSecondHyphen = false
local integer i = 1
local integer len = StringLength(inputStr)
local integer minAttack = 0
local integer maxAttack = 0
local integer bonus = 0
local integer maxIndex = 0
// Loop through the characters in the input string
loop
exitwhen i > len
set currentChar = SubStringBJ(inputStr, i, i)
if currentChar == "-" and isSecondHyphen == false then
set isSecondHyphen = true
set minAttack = S2I(SubStringBJ(inputStr, 1, i - 1))
set maxIndex = i + 1
elseif currentChar == "+" then
set maxAttack = S2I(SubStringBJ(inputStr, maxIndex, i - 1))
set bonus = S2I(SubStringBJ(inputStr, i + 1, len))
return minAttack + maxAttack + (bonus * 2)
elseif currentChar == "-" and isSecondHyphen then
set maxAttack = S2I(SubStringBJ(inputStr, maxIndex, i - 1))
set bonus = S2I(SubStringBJ(inputStr, i + 1, len))
set bonus = bonus * -1
return minAttack + maxAttack + (bonus * 2)
endif
set i = i + 1
if i >= len then
// No bonus
set maxAttack = S2I(SubStringBJ(inputStr, maxIndex, len))
return minAttack + maxAttack
endif
endloop
return 0
endfunction
function ConvertArmorStringToReal takes nothing returns real
local string inputStr = BlzFrameGetText(BlzGetFrameByName("InfoPanelIconValue", 2))
local string currentChar = ""
local integer i = 1
local integer len = StringLength(inputStr)
local integer armor = 0
local integer bonus = 0
local real armorBonus = 0.0
// Loop through the characters in the input string
loop
exitwhen i > len
set currentChar = SubStringBJ(inputStr, i, i)
if currentChar == "-" then
set armor = S2I(SubStringBJ(inputStr, 1, i - 1))
set armorBonus = S2R(SubStringBJ(inputStr, i + 1, len))
// Check for int or real bonus armor
if armorBonus == 0.0 then
// Bonus is an integer
set bonus = S2I(SubStringBJ(inputStr, i + 1, len))
return I2R(armor - bonus)
else
// Bonus is a real
return I2R(armor) - armorBonus
endif
elseif currentChar == "+" then
set armor = S2I(SubStringBJ(inputStr, 1, i - 1))
set armorBonus = S2R(SubStringBJ(inputStr, i + 1, len))
// Check for int or real bonus armor
if armorBonus == 0.0 then
// Bonus is an integer
set bonus = S2I(SubStringBJ(inputStr, i + 1, len))
return I2R(armor + bonus)
else
// Bonus is a real
return I2R(armor) + armorBonus
endif
endif
set i = i + 1
if i >= len then
// No bonus
set armor = S2I(SubStringBJ(inputStr, 1, len))
return I2R(armor)
endif
endloop
return 0.0
endfunction
Name | Type | is_array | initial_value |
alliedDamageScore | real | No | |
alliedSustainScore | real | No | |
alliedValue | integer | No | |
AmplificationScoreUponAlly | real | No | |
AmplificationScoreUponEnemy | real | No | |
armorReductionScore | real | No | |
Attack_Result | integer | No | |
enemyDamageScore | real | No | |
enemySustainScore | real | No | |
enemyValue | integer | No | |
maxDamage | integer | No | |
minDamage | integer | No | |
myUnit | unit | No | |
sourceUnit | unit | No | |
targetUnit | unit | No | |
tempAverageDamageScore | real | No | |
tempRForSustainScore | real | No |