Mirc Tree Tracker
dialog tree_tracker {
title "SeeD Player Tracker"
size -1 -1 233 243
option dbu
box "Armor Modifiers", 41, 176 53 56 20
box "Status Effects", 65, 3 147 228 95
edit "", 1, 60 17 50 10, center
edit "", 2, 122 17 50 10, center
edit "", 3, 60 39 50 10, center
edit "", 4, 122 39 50 10, center
edit "", 72, 60 57 50 10, center
edit "", 73, 122 57 50 10, center
edit "", 5, 60 79 50 10, center
edit "#", 6, 60 102 50 10
edit "", 7, 122 79 50 10, center
edit "", 8, 122 102 50 10, center
button "Physical Damage", 9, 5 5 46 12
button "Magical Damage", 10, 5 17 46 12
button "Healing", 11, 5 30 46 12
button "MP Recovery", 12, 5 54 46 12
button "Cast", 13, 5 42 46 12
button "Post", 14, 5 78 46 12
check "Bubble", 15, 179 41 41 10
check "MP Damage", 17, 179 23 40 10
check "Piercing Damage", 21, 179 61 50 10
button "Poison", 22, 5 66 46 12
button "Regen", 23, 5 116 34 17
edit "", 24, 211 5 19 10, center
edit "", 25, 40 124 18 10, center
button "Refresh", 26, 61 117 34 17
edit "", 27, 96 125 18 10, center
button "Gravity", 28, 118 117 34 17
edit "", 29, 155 125 18 10, center
edit "", 30, 97 135 25 10
text "Current HP", 32, 70 6 39 8
text "Max HP", 33, 133 6 20 8
text "Current MP", 34, 70 28 29 8
text "Max MP", 35, 132 28 25 8
text "Damage", 36, 73 68 25 8
text "Channel", 37, 71 91 25 8
text "Armor", 38, 133 68 25 8
text "M.Armor", 39, 131 91 25 8
box "Defense Modifiers", 40, 176 74 56 50
box "HP Modifiers", 42, 176 15 56 37
text "Character Tier", 43, 176 6 36 8
text "VIT", 44, 44 116 11 8
text "SPR", 45, 99 117 11 8
text "%", 46, 160 117 9 8
text "Post-Armor Damage", 47, 44 136 52 8
button "End Of Turn", 48, 5 134 38 12
edit "", 100, 15 164 50 10
edit "", 112, 71 164 15 10, center
edit "", 101, 15 174 50 10
edit "", 113, 71 174 15 10, center
text "Status", 66, 31 155 25 8
text "Dur.", 67, 73 155 11 8
text "Status", 68, 129 155 25 8
text "Dur.", 69, 169 155 12 8
button "Winning Streak /Extend", 70, 187 158 39 32, multi
check "Element Absorb", 71, 179 32 50 10
text "Current LP", 74, 72 49 30 8
text "Max LP", 75, 132 49 25 8
combo 76, 153 135 79 46, vsbar size drop
button "Limit Charge", 77, 5 90 46 12
button "Limit Execute", 78, 5 102 36 12
text "Limit Type", 79, 126 137 25 8
edit "", 80, 41 102 11 12, center
edit "", 102, 15 184 50 10
edit "", 114, 71 184 15 10, center
edit "", 103, 15 194 50 10
edit "", 115, 71 194 15 10, center
edit "", 104, 15 204 50 10
edit "", 116, 71 204 15 10, center
edit "", 105, 15 214 50 10
edit "", 117, 71 214 15 10, center
edit "", 106, 112 166 50 10
edit "", 118, 168 166 15 10, center
edit "", 107, 112 176 50 10
edit "", 119, 168 176 15 10, center
edit "", 108, 112 186 50 10
edit "", 120, 168 186 15 10, center
edit "", 109, 112 196 50 10
edit "", 121, 168 196 15 10, center
edit "", 110, 112 206 50 10
edit "", 122, 168 206 15 10, center
edit "", 111, 112 216 50 10
edit "", 123, 168 216 15 10, center
edit "", 31, 99 229 50 10
text "Stoneskin", 49, 73 229 25 8, right
button "Boon", 50, 187 191 39 32, multi
radio "5/5ths", 200, 179 81 50 8
radio "4/5ths", 201, 179 89 50 8
radio "3/5ths", 202, 179 97 50 8
radio "2/5ths", 203, 179 105 50 8
radio "1/5th", 204, 179 113 50 8
menu "Menu", 81
item "End Battle", 82, 81
item "Open", 83, 81
item "Save", 84, 81
}
alias treetracker {
dialog -md tree_tracker tree_tracker
did -a tree_tracker 76 No Limit
did -a tree_tracker 76 Ally (2 LP)
did -a tree_tracker 76 Avenger (40 LP)
did -a tree_tracker 76 Comrade (3 LP)
did -a tree_tracker 76 Daredevil [Offense] (8 LP)
did -a tree_tracker 76 Daredevil [Other] (3 LP)
did -a tree_tracker 76 Evader [Damage] (10 LP)
did -a tree_tracker 76 Evader [Status] (4 LP)
did -a tree_tracker 76 Healer (5 LP)
did -a tree_tracker 76 Slayer (30 LP)
did -a tree_tracker 76 Stoic (10 LP)
did -a tree_tracker 76 Striker [Non-Weapon] (4 LP)
did -a tree_tracker 76 Striker [Light] (3 LP)
did -a tree_tracker 76 Striker [Medium] (4 LP)
did -a tree_tracker 76 Striker [Heavy] (5 LP)
did -a tree_tracker 76 Striker [Great] (6 LP)
did -a tree_tracker 76 Tactician [Negative] (6 LP)
did -a tree_tracker 76 Tactician [Positive] (3 LP)
did -a tree_tracker 76 Victor (18 LP)
treeload
}
alias treesave {
; Character Save
if ($did(tree_tracker,1) != $null) { writeini seedcharadv.ini $me currhp $did(tree_tracker,1) }
if ($did(tree_tracker,2) != $null) { writeini seedcharadv.ini $me maxhp $did(tree_tracker,2) }
if ($did(tree_tracker,3) != $null) { writeini seedcharadv.ini $me currmp $did(tree_tracker,3) }
if ($did(tree_tracker,4) != $null) { writeini seedcharadv.ini $me maxmp $did(tree_tracker,4) }
if ($did(tree_tracker,6) != $null) { writeini seedcharadv.ini $me chan $did(tree_tracker,6) }
if ($did(tree_tracker,7) != $null) { writeini seedcharadv.ini $me arm $did(tree_tracker,7) }
if ($did(tree_tracker,8) != $null) { writeini seedcharadv.ini $me marm $did(tree_tracker,8) }
if ($did(tree_tracker,24) != $null) { writeini seedcharadv.ini $me tier $did(tree_tracker,24) }
if ($did(tree_tracker,25) != $null) { writeini seedcharadv.ini $me vit $did(tree_tracker,25) }
if ($did(tree_tracker,27) != $null) { writeini seedcharadv.ini $me spr $did(tree_tracker,27) }
if ($did(tree_tracker,72) != $null) { writeini seedcharadv.ini $me currlp $did(tree_tracker,72) }
if ($did(tree_tracker,73) != $null) { writeini seedcharadv.ini $me maxlp $did(tree_tracker,73) }
}
alias treeload {
; Character Load
did -o tree_tracker 1 1 $readini(seedcharadv.ini,$me,currhp)
did -o tree_tracker 2 1 $readini(seedcharadv.ini,$me,maxhp)
did -o tree_tracker 3 1 $readini(seedcharadv.ini,$me,currmp)
did -o tree_tracker 4 1 $readini(seedcharadv.ini,$me,maxmp)
did -o tree_tracker 6 1 $readini(seedcharadv.ini,$me,chan)
did -o tree_tracker 7 1 $readini(seedcharadv.ini,$me,arm)
did -o tree_tracker 8 1 $readini(seedcharadv.ini,$me,marm)
did -o tree_tracker 24 1 $readini(seedcharadv.ini,$me,tier)
did -o tree_tracker 25 1 $readini(seedcharadv.ini,$me,vit)
did -o tree_tracker 27 1 $readini(seedcharadv.ini,$me,spr)
did -o tree_tracker 72 1 $readini(seedcharadv.ini,$me,currlp)
did -o tree_tracker 73 1 $readini(seedcharadv.ini,$me,maxlp)
}
alias maxhp {
if ($did(tree_tracker,15).state) { return $calc($did(tree_tracker,2)*2) }
else { return $did(tree_tracker,2) }
}
alias sarmor {
if ($did(tree_tracker,21).state) { return 0 }
return $calc($did(tree_tracker,7) + %armmod)
}
alias smarmor {
if ($did(tree_tracker,21).state) { return 0 }
return $calc($did(tree_tracker,8) + %marmmod)
}
alias sdamage {
var %damage = $1
if ($did(tree_tracker,17).state) {
if (%damage >= $did(tree_tracker,3)) { did -o tree_tracker 3 1 0 | var %fdam = 1 }
else { did -o tree_tracker 3 1 $calc($did(tree_tracker,3) - %damage) | var %fdam = %damage }
}
else {
if (%damage >= $did(tree_tracker,1)) { did -o tree_tracker 1 1 0 | var %fdam = 1 }
else { did -o tree_tracker 1 1 $calc($did(tree_tracker,1) - %damage) | var %fdam = %damage }
}
did -o tree_tracker 30 1 %fdam
}
alias sheal {
var %heal = $2
if ($1 == 1) {
if ($calc(%heal + $did(tree_tracker,1)) >= $maxhp) { did -o tree_tracker 1 1 $maxhp }
else { did -o tree_tracker 1 1 $calc(%heal + $did(tree_tracker,1)) }
}
else {
if ($calc(%heal + $did(tree_tracker,3)) >= $did(tree_tracker,4)) { did -o tree_tracker 3 1 $did(tree_tracker,4) }
else { did -o tree_tracker 3 1 $calc(%heal + $did(tree_tracker,3)) }
}
; Usage: heal <HP:1/MP:2>
}
alias scharge {
; Limit charging
if ($calc($1 + $did(tree_tracker,72)) >= $did(tree_tracker,73)) { did -o tree_tracker 72 1 $did(tree_tracker,73) }
else { did -o tree_tracker 72 1 $calc($did(tree_tracker,72) + $1) }
}
on *:dialog:tree_tracker:sclick:15: {
if ($did(tree_tracker,15).state) { did -o tree_tracker 1 1 $int($calc($did(tree_tracker,1) * 2)) }
else { did -o tree_tracker 1 1 $int($calc($did(tree_tracker,1) / 2)) }
}
on *:dialog:tree_tracker:sclick:9: {
; Physical Damage button
if ($did(tree_tracker,200).state) { var %defend = 1 }
elseif ($did(tree_tracker,201).state) { var %defend = 0.8 }
elseif ($did(tree_tracker,202).state) { var %defend = 0.6 }
elseif ($did(tree_tracker,203).state) { var %defend = 0.4 }
elseif ($did(tree_tracker,204).state) { var %defend = 0.2 }
else { var %defend = 1 }
var %damage = $calc(($did(tree_tracker,5) - $sarmor) * %defend)
if (%damage <= 0) { var %damage = 1 }
if ($did(tree_tracker,31) > 0) && ($did(tree_tracker,31) isnum) {
;Stoneskin Damage
if (%damage <= $did(tree_tracker,31)) {
did -o tree_tracker 31 1 $calc($did(tree_tracker,31) - %damage)
var %damage = 0
}
else {
var %damage = $calc( %damage - $did(tree_tracker,31) )
did -o tree_tracker 31 1 0
}
}
if ($did(tree_tracker,71).state) { sheal 1 $int(%damage) }
else { sdamage $int(%damage) }
}
on *:dialog:tree_tracker:sclick:10: {
; Magical Damage button
if ($did(tree_tracker,200).state) { var %defend = 1 }
elseif ($did(tree_tracker,201).state) { var %defend = 0.8 }
elseif ($did(tree_tracker,202).state) { var %defend = 0.6 }
elseif ($did(tree_tracker,203).state) { var %defend = 0.4 }
elseif ($did(tree_tracker,204).state) { var %defend = 0.2 }
else { var %defend = 1 }
var %damage = $calc(($did(tree_tracker,5) - $smarmor) * %defend)
if (%damage <= 0) { var %damage = 1 }
if ($did(tree_tracker,31) > 0) && ($did(tree_tracker,31) isnum) {
;Stoneskin Damage
if (%damage <= $did(tree_tracker,31)) {
did -o tree_tracker 31 1 $calc($did(tree_tracker,31) - %damage)
var %damage = 0
}
else {
var %damage = $calc( %damage - $did(tree_tracker,31) )
did -o tree_tracker 31 1 0
}
}
if ($did(tree_tracker,71).state) { sheal 1 $int(%damage) }
else { sdamage $int(%damage) }
}
on *:dialog:tree_tracker:sclick:11: {
; Healing button
sheal 1 $did(tree_tracker,5)
}
on *:dialog:tree_tracker:sclick:13 {
; Spellcast button
if ($did(tree_tracker,5) > $did(tree_tracker,3)) { msg $me MP cost exceeds current MP, cannot cast }
else { did -o tree_tracker 3 1 $calc($did(tree_tracker,3) - $did(tree_tracker,5)) }
}
on *:dialog:tree_tracker:sclick:12: {
; MP Recovery button
sheal 2 $did(tree_tracker,5)
}
on *:dialog:tree_tracker:sclick:22 {
; Poison button
sdamage $int($calc($did(tree_tracker,1) * 0.2))
}
on *:dialog:tree_tracker:sclick:23: {
; Regen button
sheal 1 $calc($did(tree_tracker,25) * 4 * $did(tree_tracker,24))
}
on *:dialog:tree_tracker:sclick:26: {
; Refresh button
sheal 2 $calc($did(tree_tracker,27) * ($did(tree_tracker,24) + 1))
}
on *:dialog:tree_tracker:sclick:28: {
; Gravity button
if ($did(tree_tracker,17).state) {
var %damage = $calc($did(tree_tracker,3) * ($did(tree_tracker,29)/100))
if (%damage >= $did(tree_tracker,3)) { var %damage = 0 }
}
else {
var %damage = $calc($did(tree_tracker,1) * ($did(tree_tracker,29)/100))
if (%damage >= $did(tree_tracker,1)) { var %damage = 0 }
}
sdamage $int(%damage)
}
; Status Tracker
on *:dialog:tree_tracker:sclick:48: {
; End of Turn
var %currstatus = 1
while (%currstatus <= 12) {
var %currtimer = $calc(%currstatus + 111)
if ($did(tree_tracker, $+ %currtimer $+) isnum) && ($did(tree_tracker, $+ %currtimer $+) > 0) {
did -o tree_tracker %currtimer 1 $calc($did(tree_tracker, $+ %currtimer $+) - 1)
}
inc %currstatus
}
}
on *:dialog:tree_tracker:sclick:70: {
; Winning Streak button
var %currstatus = 1
while (%currstatus <= 12) {
var %currtimer = $calc(%currstatus + 111)
if ($did(tree_tracker, $+ %currtimer $+) isnum) && ($did(tree_tracker, $+ %currtimer $+) > 0) && ( ) {
did -o tree_tracker %currtimer 1 $calc($did(tree_tracker, $+ %currtimer $+) + 2)
}
inc %currstatus
}
}
on *:dialog:tree_tracker:sclick:50: {
; Boon button
var %currstatus = 1
var %boonlist = Accuracy Up.Bar-Fire.Bar-Ice.Bar-Lightning.Bar-Water.Bar-Holy.Bar-Shadow.Bar-Element.Blink.Bravery.Bubble.Critical Up.Dread Spikes.En-Fire.En-Ice.En-Lightning.En-Holy.En-Shadow.En-Water.Fire Sword.Ice Sword.Lightning Sword.Water Sword.Holy Sword.Dark Sword.Element Sword.Lethargy Sword.Slow Sword.Zombie Sword.Sap Sword.Stun Sword.Sleep Sword.Flare Sword.Drain Sword.Osmoses Sword.Other Sword.Evasion Up.Faith.Float.Haste.Protect.Reflect.Refresh.Regen.Resist.Shell.Tranq.Vanish.Veil.Vigilance
while (%currstatus <= 12) {
var %currtimer = $calc(%currstatus + 111)
var %currname = $calc(%currstatus + 99)
if ($did(tree_tracker, $+ %currtimer $+) isnum) && ($did(tree_tracker, $+ %currtimer $+) > 0) && ($istok(%boonlist,$did(tree_tracker, $+ %currname $+),46) == $true) {
did -o tree_tracker %currtimer 1 $calc($did(tree_tracker, $+ %currtimer $+) + 1)
}
inc %currstatus
}
}
alias boonlist {
; Token separator is . or 46
var %boonlist = Accuracy Up.Bar-Fire.Bar-Ice.Bar-Lightning.Bar-Water.Bar-Holy.Bar-Shadow.Bar-Element.Blink.Brave.Bravery.Bubble.Critical Up.Dread Spikes.En-Fire.En-Ice.En-Lightning.En-Holy.En-Shadow.En-Water.Fire Sword.Ice Sword.Lightning Sword.Water Sword.Holy Sword.Dark Sword.Element Sword.Lethargy Sword.Slow Sword.Zombie Sword.Sap Sword.Stun Sword.Sleep Sword.Flare Sword.Drain Sword.Osmoses Sword.Other Sword.Evasion Up.Faith.Float.Haste.Protect.Reflect.Refresh.Regen.Resist.Shell.Tranq.Vanish.Veil.Vigilance
var %boon = $sorttok(%boonlist,46)
echo $me Boon-supported statuses: $replace(%boon,.,$chr(32) $+ - $+ $chr(32))
}
; End of status tracker
on *:dialog:tree_tracker:sclick:77: {
; Limit Charge button
scharge $gettok(0.2.40.3.8.3.10.4.5.30.10.4.3.4.5.6.6.3.18,$did(tree_tracker,76).sel,46)
}
on *:dialog:tree_tracker:sclick:78:{
; Limit Execute button
if ($did(tree_tracker,80) > 5) { msg $me You idjit, Limits don't go past 5 }
elseif ($did(tree_tracker,80) < 1) || ($did(tree_tracker,80) = $null) { msg $me Slowpoke, Limits aren't smaller than 1 }
elseif ($did(tree_tracker,72) < $calc(50 + 50 * $did(tree_tracker,80))) {
msg $me Unable to perform limit. LP Required: $calc(50 + 50 * $did(tree_tracker,80))
}
else {
did -o tree_tracker 72 1 $calc( $did(tree_tracker,72) - $calc(50 + 50 * $did(tree_tracker,80)) )
}
if ($isalias(seedlimit)) { seedlimit }
}
on *:dialog:tree_tracker:menu:83: {
; Character Open
treeload
}
on *:dialog:tree_tracker:menu:84: {
; Character Save
treesave
}
on *:dialog:tree_tracker:menu:82: {
; Battle End (Clear Status, Save Character)
var %currstatus = 1
while (%currstatus <= 12) {
var %currtimer = $calc(%currstatus + 111)
var %currname = $calc(%currstatus + 99)
did -o tree_tracker %currtimer 1 $null
did -o tree_tracker %currname 1 $null
inc %currstatus
}
treesave
}
on *:dialog:tree_tracker:sclick:14: {
; Post button
if ($did(tree_tracker,1) <= $calc($maxhp / 10)) { var %color = 4 }
elseif ($did(tree_tracker,1) <= $calc($maxhp / 4)) { var %color = 7 }
else { var %color = $null }
if ($did(tree_tracker,31) > 0) { var %ssline = SS: $chr(91) $+ $did(tree_tracker,31) $+ $chr(93) }
var %hpline = HP: $+ %color $did(tree_tracker,1) $+ / $+ $maxhp
var %mpline = MP: $+ $chr(32) $+ $did(tree_tracker,3) $+ / $+ $did(tree_tracker,4)
var %sos = SoS: $int($calc($maxhp / 4))
if ($did(tree_tracker,73) > 0 ) { var %lpline = , LP: $did(tree_tracker,72) $+ / $+ $did(tree_tracker,73) }
else { var %lpline = $null }
var %currstatus = 1
while (%currstatus <= 12) {
; Status line generator
var %currtimer = $calc(%currstatus + 111)
var %currname = $calc(%currstatus + 99)
if ($did(tree_tracker, $+ %currname $+ ) != 0) && ($did(tree_tracker, $+ %currname $+ ) != $null) {
var %statusline = $addtok(%statusline,$did(tree_tracker, $+ %currname $+ ) ( $+ $did(tree_tracker, $+ %currtimer $+ ) $+ ),44)
}
inc %currstatus
}
if (%statusline == $null) { var %spacer = $null }
else { var %spacer = $chr(32) - $chr(32) }
if ($did(tree_tracker,31) > 0) { var %spacer2 = $chr(32) }
else { var %spacer2 = $null }
msg $did(tree_tracker,6) (( $+ %ssline $+ %spacer2 $+ %hpline $+ , %mpline $+ %lpline $+ , %sos $+ %spacer $+ %statusline $+ ))
}