Array
(
[scriptVersion] => 7
[oeValues] => Array
(
[auto] => Array
(
)
[Art] => ReplaceableTextures\CommandButtons\BTNVillagerWoman.blp
[turnRate] => 3
[dmgplus1] => 85
[bldtm] => 1
[goldcost] => 70
[sides1] => 5
[acquire] => 800
[upgrades] => Array
(
)
[Upgrade] => Array
(
)
[Name] => Teacher
[weapTp1] => missile
[MissileHoming] => 1
[file] => units\critters\VillagerWoman\VillagerWoman.mdl
[uberSplat] => OSMA
[Missileart] => Abilities\Spells\Undead\OrbOfDeath\OrbOfDeathMissile.mdl
[Missilespeed] => 1500
[dice1] => 1
[RngBuff1] => 250
[modelScale] => 0.8
[rangeN1] => 900
[atkType1] => pierce
[cool1] => 1.5
[Ubertip] => Teacher teaches you to attack!
[abilList] => Array
(
)
[buildingShadow] => Array
(
)
[targs1] => Array
(
)
[weapsOn] => 1
[castpt] => 0.3
)
[settings] => Array
(
[balanceTip] => |cffFFFF00+20% |rexp gain
[abil_factor] => 0.8
[author] => Deikorim / Limfa
[alpha] => 255
[authorDisplay] => |c007EBFF1Limfa|r
[version] => 1.0
[element] => astral
[rarity] => uncommon
)
[effects] => Array
(
)
[dmgTable] => Array
(
[0] => Array
(
[id] => MOD_EXP_RECEIVED
[base] => 0.2
[add] => 0
)
)
[triggers] => Array
(
[0] => Array
(
[name] => On Attack
[code] => call teacher_attack(tower,1)
call SetUnitAnimationByIndex(tower.getUnit(), 3)
[values] => Array
(
[visible] => true
[icon] => ReplaceableTextures\CommandButtons\BTNTomeRed.blp
[name] => Knowledge
[short_explain] => Attacking a creep has a chance to grant |cffFFFF801|r experience to a random tower.
[ONATTACK_chance] => 1.0
[ONATTACK_chanceLevelAdd] => 0.0
[long_explain] => When the teacher attacks there's a |cffFFFF8010%|r chance a random tower in |cffFFFF80600|r range will learn from her, gaining |cffFFFF801|r experience. |n|n|cffFF8000Level Bonus:|r|n|cffFFFF80+0.6%|r chance
)
)
[1] => Array
(
[name] => Header
[code] => globals
//@export
ProjectileType knowledge_green
//@export
ProjectileType knowledge_blue
//@export
ProjectileType knowledge_red
//@export
MultiboardValues limfa_teacherboard
endglobals
function hit takes Projectile p, Unit result returns nothing
local Tower t = p.getCaster()
if result.getUID() == p.userInt then
call result.addExp(p.userReal)
if Tower(p.userInt2).getUID() == t.getUID() then
set t.userReal2 = t.userReal2 + p.userReal * result.getProp_ExpReceived()
endif
endif
endfunction
//@export
function teacher_attack takes Tower tower, real xp returns nothing
local Iterate inRange
local Unit result
local ProjectileType pt
local Projectile p
local integer i
if tower.calcChance(0.10+0.006*tower.getLevel()) then
set inRange = Iterate.overUnitsInRangeOfCaster(tower,TARGET_TOWERS,600)
set result = inRange.nextRandom()
if result == tower then
set result = inRange.nextRandom()
endif
if result != 0 then
set i = GetRandomInt(1,3)
if i == 1 then
set pt = knowledge_green
elseif i == 2 then
set pt = knowledge_red
elseif i == 3 then
set pt = knowledge_blue
endif
set p = Projectile.createFromUnitToUnit(pt, tower, 1.0, 1.0, tower, result, true, false, true)
call p.setScale(0.7)
set p.userReal = xp
set p.userInt = result.getUID()
set p.userInt2 = tower.getUID()
call inRange.destroy()
endif
endif
endfunction
//Do not remove or rename this function!
//Put your initialization tasks here, this function will be called on map init
private function init takes nothing returns nothing
set limfa_teacherboard = MultiboardValues.create(1)
call limfa_teacherboard.setKey(0,"Xp Granted")
set knowledge_green = ProjectileType.create( "Objects\\InventoryItems\\tomeGreen\\tomeGreen.mdl", 20.0, 450.00 )
call knowledge_green.enableFreeRotation()
call knowledge_green.disableExplodeOnHit()
call knowledge_green.enableHoming( ProjectileTargetEvent.hit, 0 )
set knowledge_blue = ProjectileType.create( "Objects\\InventoryItems\\tomeBlue\\tomeBlue.mdl", 20.0, 450.00 )
call knowledge_blue.enableFreeRotation()
call knowledge_blue.disableExplodeOnHit()
call knowledge_blue.enableHoming( ProjectileTargetEvent.hit, 0 )
set knowledge_red = ProjectileType.create( "Objects\\InventoryItems\\tomeRed\\tomeRed.mdl", 20.0, 450.00 )
call knowledge_red.enableFreeRotation()
call knowledge_red.disableExplodeOnHit()
call knowledge_red.enableHoming( ProjectileTargetEvent.hit, 0 )
endfunction
[values] => Array
(
[visible] => false
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
[2] => Array
(
[name] => On Tower Details
[code] => call limfa_teacherboard.setValue(0, formatFloat(tower.userReal2,1))
return limfa_teacherboard
[values] => Array
(
[0] => Array
(
[_value] => 0
[typ] => string
)
)
)
[3] => Array
(
[name] => On Tower Creation
[code] => local Tower preceding = Event.getPrecedingTower()
if (preceding.getFamily() == tower.getFamily()) then
set tower.userReal2 = preceding.userReal2
else
set tower.userReal2 = 0
endif
[values] => Array
(
[visible] => false
[icon] =>
[name] =>
[short_explain] =>
[long_explain] =>
)
)
)
[abilities] => Array
(
)
[buffs] => Array
(
)
[units] => Array
(
)
[references] => Array
(
[0] => Array
(
[export] => true
[category] => global
[typ] => ProjectileType
[name] => knowledge_green
)
[1] => Array
(
[export] => true
[category] => global
[typ] => ProjectileType
[name] => knowledge_blue
)
[2] => Array
(
[export] => true
[category] => global
[typ] => ProjectileType
[name] => knowledge_red
)
[3] => Array
(
[export] => true
[category] => global
[typ] => MultiboardValues
[name] => limfa_teacherboard
)
)
)