Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Get TB's skill build mode - hybrid, fire, or ice
- function GetBuildAbilityMode(unit)
- if not unit.BuildAbilityMode then
- local build = string.lower(unit:GetAIBrain().SkillBuild or 'none')
- local fire = string.find(build, 'fire')
- local ice = string.find(build, 'ice')
- local hybrid = string.find(build, 'hybrid')
- if hybrid or (ice and fire) then
- unit.BuildAbilityMode = 'hybrid'
- elseif ice then
- unit.BuildAbilityMode = 'ice'
- elseif fire then
- unit.BuildAbilityMode = 'fire'
- end
- LOG("GetBuildAbilityMode: Setting mode: "..repr(unit.BuildAbilityMode))
- end
- return unit.BuildAbilityMode or 'unknown'
- end
- --Add a skill-build mode check to the mode-switch InstantStatusFunctions and ActionFunctions
- local prevFireAction = HeroAIActionTemplates['Burn Alive'].ActionFunction
- HeroAIActionTemplates['Burn Alive'].ActionFunction = function(unit, action)
- if GetBuildAbilityMode(unit) ~= 'ice' then
- return prevFireAction(unit, action)
- else
- return false
- end
- end
- local prevFireStatus = HeroAIActionTemplates['Burn Alive'].InstantStatusFunction
- HeroAIActionTemplates['Burn Alive'].InstantStatusFunction = function(unit, action)
- if GetBuildAbilityMode(unit) ~= 'ice' then
- return prevFireStatus(unit, action)
- else
- return false
- end
- end
- local prevIceAction = HeroAIActionTemplates['Frozen Heart'].ActionFunction
- HeroAIActionTemplates['Frozen Heart'].ActionFunction = function(unit, action)
- if GetBuildAbilityMode(unit) ~= 'fire' then
- return prevIceAction(unit, action)
- else
- return false
- end
- end
- local prevIceStatus = HeroAIActionTemplates['Frozen Heart'].InstantStatusFunction
- HeroAIActionTemplates['Frozen Heart'].InstantStatusFunction = function(unit, action)
- if GetBuildAbilityMode(unit) ~= 'fire' then
- return prevIceStatus(unit, action)
- else
- return false
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement