So I have a trigger.
and in order to avoid a logic error I need to call the setBioEvent from outside of the trigger.
As you can see i'm attempting to call the function if the BioKinetic is chosen, however no matter what i do.
1. Making public function and calling with Biokinetic_setBioEvent
2. Making function normal and calling with setBioEvent
It keeps throwing me an Undeclared function setBioEvent. Anyone have any ideas?
Code:
scope Biokinetic initializer Init
private function hasDefTarget takes nothing returns boolean
return GetUnitAbilityLevel(GetSpellAbilityUnit(), 'deft') > 0
endfunction
private function hasCellWall takes nothing returns boolean
call DisplayTextToForce(GetPlayersAll(), "hasCellWall")
return GetUnitAbilityLevel(GetSpellAbilityUnit(), 'cell') > 0
endfunction
private function ChangeDefensiveTarget takes nothing returns nothing
if (IsPlayerAlly(GetOwningPlayer(GetSpellAbilityUnit()),GetOwningPlayer(GetSpellTargetUnit()))) then
set udg_BioDefensiveTarget = GetSpellTargetUnit()
call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetSpellAbilityUnit())), "You have selected " + GetUnitName(GetSpellTargetUnit()) + " as your new defensive target" )
else
call DisplayTextToForce( GetForceOfPlayer(GetOwningPlayer(GetSpellAbilityUnit())), "You can't make enemies your defensive target." )
endif
endfunction
private function CellWall takes nothing returns nothing
call DisplayTextToForce(GetPlayersAll(), "CellWallCAll")
call SetUnitLifeBJ( udg_BioDefensiveTarget, ( GetUnitStateSwap(UNIT_STATE_LIFE, udg_BioDefensiveTarget) + ((5.0 * GetUnitAbilityLevel(GetSpellAbilityUnit(), 'deft')) * R2I(GetEventDamage())) ) )
endfunction
private function Init takes nothing returns nothing
endfunction
function setBioEvent takes nothing returns nothing
local trigger cellwall = CreateTrigger()
local trigger deftarget = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(deftarget, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(deftarget, Condition(function hasDefTarget))
call TriggerAddAction(deftarget, function ChangeDefensiveTarget)
call DisplayTextToForce(GetPlayersAll(), "Preparing to Register")
call TriggerRegisterUnitEvent(cellwall, udg_BioUnit, EVENT_UNIT_DAMAGED)
call DisplayTextToForce(GetPlayersAll(), "RegisterDestDeathInRegionEnum")
call TriggerAddCondition(cellwall, Condition(function hasCellWall))
call DisplayTextToForce(GetPlayersAll(), "Conditions")
call TriggerAddAction(cellwall, function CellWall)
call DisplayTextToForce(GetPlayersAll(), "ACtion")
endfunction
endscope
Code:
Tavern Sentinel
Events
Unit - A unit Sells a unit
Conditions
GameMode Equal to MODE_Normal
((Sold unit) is A Hero) Equal to True
((Owner of (Sold unit)) is in PlayersSentinel) Equal to True
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Unit-type of (Sold unit)) Equal to Biokentic
Then - Actions
Set BioDefensiveTarget = (Sold unit)
Set BioUnit = (Sold unit)
Custom script: call setBioEvent()
Else - Actions
Player Group - Pick every player in Players and do (Actions)
Loop - Actions
Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player)
Quest - Display to (All enemies of (Owner of (Sold unit))) the Hint message: (A player has chosen + (Name of (Sold unit)))
Set RandomData_Sentinel[(Load (String((Unit-type of (Sold unit)))) of Sentinel from (Last created game cache))] = RandomData_Sentinel[RandomTotal_Sentinel]
Set RandomTotal_Sentinel = (RandomTotal_Sentinel - 1)
Set Player_Already_Picked[(Player number of (Owner of (Sold unit)))] = (Player_Already_Picked[(Player number of (Owner of (Sold unit)))] + 1)
1. Making public function and calling with Biokinetic_setBioEvent
2. Making function normal and calling with setBioEvent
It keeps throwing me an Undeclared function setBioEvent. Anyone have any ideas?