Add decompiled Lua AI scripts + full datasheet findings report
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
REGISTER_GOAL(GOAL_COMMON_Normal, "Normal")
|
||||
REGISTER_GOAL_NO_UPDATE(GOAL_COMMON_Normal, 1)
|
||||
function Normal_Activate(ai, goal)
|
||||
local targetDist = ai:GetDist(TARGET_ENE_0)
|
||||
local fate = ai:GetRandam_Int(1, 100)
|
||||
local fate2 = ai:GetRandam_Int(1, 100)
|
||||
local trigDistNear = 2
|
||||
local trigDistMid = 4
|
||||
local trigDistFar = 0
|
||||
local ezsNoNear = 3000
|
||||
local ezsNoMid = 3000
|
||||
local ezsNoFar = 3000
|
||||
local moveDistNear = 3
|
||||
local moveDistMid = 1
|
||||
local moveDistFar = 3
|
||||
local movePerNear = 20
|
||||
local movePerMid = 30
|
||||
local movePerFar = 40
|
||||
local maaiDistNear = 1.5
|
||||
local maaiDistMid = 3.5
|
||||
local maaiDistFar = 5.5
|
||||
local maaiPerNear = 40
|
||||
local maaiPerMid = 30
|
||||
local maaiPerFar = 20
|
||||
local attActDist = 6
|
||||
local trigDistDash = 0
|
||||
local trigDistWalk = 9
|
||||
local moveDistDash = 7
|
||||
local moveDistWalk = 3
|
||||
if targetDist <= attActDist then
|
||||
if targetDist < trigDistNear then
|
||||
if fate <= movePerNear then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 5, TARGET_ENE_0, AI_DIR_TYPE_CENTER, moveDistNear, TARGET_ENE_0, true)
|
||||
else
|
||||
goal:AddSubGoal(GOAL_COMMON_Attack, 10, ezsNoNear, TARGET_ENE_0, DIST_Near, 0)
|
||||
if fate2 <= maaiPerNear then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 5, TARGET_ENE_0, AI_DIR_TYPE_CENTER, maaiDistNear, TARGET_ENE_0, true)
|
||||
end
|
||||
end
|
||||
elseif targetDist < trigDistMid then
|
||||
if fate <= movePerMid then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 5, TARGET_ENE_0, AI_DIR_TYPE_CENTER, moveDistMid, TARGET_ENE_0, true)
|
||||
else
|
||||
goal:AddSubGoal(GOAL_COMMON_Attack, 10, ezsNoMid, TARGET_ENE_0, DIST_Near, 0)
|
||||
if fate2 <= maaiPerMid then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 5, TARGET_ENE_0, AI_DIR_TYPE_CENTER, maaiDistMid, TARGET_ENE_0, true)
|
||||
end
|
||||
end
|
||||
elseif fate <= movePerFar then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 5, TARGET_ENE_0, AI_DIR_TYPE_CENTER, moveDistFar, TARGET_ENE_0, true)
|
||||
else
|
||||
goal:AddSubGoal(GOAL_COMMON_Attack, 10, ezsNoFar, TARGET_ENE_0, DIST_Near, 0)
|
||||
if fate2 <= maaiPerFar then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 5, TARGET_ENE_0, AI_DIR_TYPE_CENTER, maaiDistFar, TARGET_ENE_0, true)
|
||||
end
|
||||
end
|
||||
elseif targetDist <= trigDistWalk then
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 10, TARGET_ENE_0, AI_DIR_TYPE_CENTER, moveDistWalk, TARGET_ENE_0, true)
|
||||
else
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 10, TARGET_ENE_0, AI_DIR_TYPE_CENTER, moveDistDash, TARGET_ENE_0, false)
|
||||
goal:AddSubGoal(GOAL_COMMON_MoveToSomewhere, 10, TARGET_ENE_0, AI_DIR_TYPE_CENTER, moveDistWalk, TARGET_ENE_0, true)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
function Normal_Update(ai, goal)
|
||||
return GOAL_RESULT_Continue
|
||||
end
|
||||
|
||||
function Normal_Terminate(ai, goal)
|
||||
return
|
||||
end
|
||||
|
||||
function Normal_Interupt(ai, goal)
|
||||
local targetDist = ai:GetDist(TARGET_ENE_0)
|
||||
local fate = ai:GetRandam_Int(1, 100)
|
||||
local fate2 = ai:GetRandam_Int(1, 100)
|
||||
local guardDist = 3
|
||||
local guardPer = 50
|
||||
local ezsNoguard = 9910
|
||||
local missContDist = 3
|
||||
local missContPer = 50
|
||||
local ezsNoMissCont = 3300
|
||||
local guardBreakAttDist = 3
|
||||
local guardBreakAttPer = 75
|
||||
local ezsNoguardBreakAtt = 3300
|
||||
local guardDownAttDist = 3
|
||||
local guardDownAttPer = 40
|
||||
local ezsNoguardDownAtt = 3000
|
||||
if ai:IsInterupt(INTERUPT_FindAttack) and targetDist <= guardDist and fate <= guardPer then
|
||||
goal:ClearSubGoal()
|
||||
goal:AddSubGoal(GOAL_COMMON_Guard, 5, ezsNoguard, TARGET_ENE_0, 0, 0)
|
||||
return true
|
||||
elseif ai:IsInterupt(INTERUPT_MissSwing) and targetDist < missContDist and fate <= missContPer then
|
||||
goal:ClearSubGoal()
|
||||
goal:AddSubGoal(GOAL_COMMON_Attack, 5, ezsNoMissCont, TARGET_ENE_0, DIST_Near, 0)
|
||||
return true
|
||||
elseif ai:IsInterupt(INTERUPT_GuardBreak) and targetDist < guardBreakAttDist and fate <= guardBreakAttPer then
|
||||
goal:ClearSubGoal()
|
||||
goal:AddSubGoal(GOAL_COMMON_Attack, 5, ezsNoguardBreakAtt, TARGET_ENE_0, DIST_Near, 0)
|
||||
return true
|
||||
elseif ai:IsInterupt(INTERUPT_GuardFinish) and targetDist < guardDownAttDist and fate <= guardDownAttPer then
|
||||
goal:ClearSubGoal()
|
||||
goal:AddSubGoal(GOAL_COMMON_Attack, 5, ezsNoguardDownAtt, TARGET_ENE_0, DIST_Near, 0)
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return
|
||||
Reference in New Issue
Block a user