Files
temp/scripts_decompiled/323000_battle.lua
T

307 lines
11 KiB
Lua

REGISTER_GOAL(GOAL_Kagerou323000_Battle, "Kagerou323000Battle")
REGISTER_GOAL_NO_UPDATE(GOAL_Kagerou323000_Battle, 1)
function OnIf_323000(ai, goal, codeNo)
local targetDist = ai:GetDist(TARGET_ENE_0)
local fate = ai:GetRandam_Int(1, 100)
local fate2 = ai:GetRandam_Int(1, 100)
if codeNo == 0 then
ai:SetTimer(0, 60)
ai:SetTimer(1, 30)
local stdHPrate = ai:GetHpRate(TARGET_SELF)
ai:SetNumber(1, stdHPrate)
ai:SetNumber(0, 1)
end
return
end
function Kagerou323000Battle_Activate(ai, goal)
local targetDist = ai:GetDist(TARGET_ENE_0)
local hprate = ai:GetHpRate(TARGET_SELF)
local fate = ai:GetRandam_Int(1, 100)
local fate2 = ai:GetRandam_Int(1, 100)
local fate3 = ai:GetRandam_Int(1, 100)
local Act01Per = 0
local Act02Per = 0
local Act03Per = 0
local Act04Per = 0
local Act05Per = 0
local Act06Per = 0
local Act07Per = 0
local Shoot01Per = 0
local Shoot02Per = 0
local Shoot03Per = 0
local Shoot04Per = 0
local FirstImpression = ai:GetNumber(0)
local Timer0 = ai:GetTimer(0)
local Timer1 = ai:GetTimer(1)
local Number0 = ai:GetNumber(0)
local Number1 = ai:GetNumber(1)
local Damaged = ai:GetNumber(1) - hprate
if FirstImpression == 0 then
goal:AddSubGoal(GOAL_COMMON_If, 10, 0)
goal:AddSubGoal(GOAL_COMMON_Wait, 0.1, TARGET_NONE, 0, 0, 0)
end
if ai:IsInsideTargetRegion(TARGET_SELF, 1202210) then
Act04Per = 100
elseif not (not ai:IsFinishTimer(0) or FirstImpression ~= 1 or ai:IsInsideTargetRegion(TARGET_SELF, 1202226)) or hprate <= ai:GetNumber(1) - 0.2 and ai:IsFinishTimer(1) and FirstImpression == 1 and not ai:IsInsideTargetRegion(TARGET_SELF, 1202226) then
Act03Per = 100
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202245) and (not not ai:IsInsideTargetRegion(TARGET_SELF, 1202225) or ai:IsInsideTargetRegion(TARGET_SELF, 1202226)) then
Act05Per = 100
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202245) and (not not ai:IsInsideTargetRegion(TARGET_SELF, 1202227) or not not ai:IsInsideTargetRegion(TARGET_SELF, 1202228) or ai:IsInsideTargetRegion(TARGET_SELF, 1202228)) then
Act06Per = 100
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202220) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202240) then
Act02Per = 5
Act06Per = 35
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202241) then
Act02Per = 60
Act06Per = 35
Act07Per = 5
else
Act02Per = 95
Act06Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202221) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202240) then
Act01Per = 60
Act05Per = 15
Act07Per = 25
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202241) then
Act01Per = 20
Act02Per = 20
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202242) then
Act02Per = 60
Act06Per = 15
Act07Per = 25
else
Act02Per = 95
Act06Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202222) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202240) then
Act01Per = 85
Act05Per = 15
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202241) then
Act01Per = 60
Act05Per = 15
Act07Per = 25
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202242) then
Act01Per = 20
Act02Per = 20
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202243) then
Act02Per = 60
Act06Per = 15
Act07Per = 25
else
Act02Per = 85
Act06Per = 15
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202223) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202244) then
Act02Per = 60
Act06Per = 15
Act07Per = 25
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202243) then
Act01Per = 20
Act02Per = 20
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202242) then
Act01Per = 60
Act05Per = 15
Act07Per = 25
else
Act01Per = 95
Act05Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202224) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202244) then
Act01Per = 5
Act05Per = 35
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202243) then
Act01Per = 60
Act05Per = 35
Act07Per = 5
else
Act01Per = 95
Act05Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202225) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202240) then
Act01Per = 5
Act05Per = 35
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202241) then
Act01Per = 60
Act05Per = 35
Act07Per = 5
else
Act01Per = 95
Act05Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202226) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202240) then
Act02Per = 60
Act06Per = 15
Act07Per = 25
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202241) then
Act01Per = 20
Act02Per = 20
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202242) then
Act01Per = 60
Act05Per = 15
Act07Per = 25
else
Act01Per = 95
Act05Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202227) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202240) then
Act02Per = 85
Act06Per = 15
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202241) then
Act02Per = 60
Act06Per = 15
Act07Per = 25
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202242) then
Act01Per = 20
Act02Per = 20
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202243) then
Act01Per = 60
Act05Per = 15
Act07Per = 25
else
Act01Per = 85
Act05Per = 15
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202228) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202244) then
Act01Per = 60
Act05Per = 15
Act07Per = 25
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202243) then
Act01Per = 20
Act02Per = 20
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202242) then
Act02Per = 60
Act06Per = 15
Act07Per = 25
else
Act02Per = 95
Act06Per = 5
end
elseif ai:IsInsideTargetRegion(TARGET_SELF, 1202229) then
if ai:IsInsideTargetRegion(TARGET_ENE_0, 1202244) then
Act02Per = 5
Act06Per = 35
Act07Per = 60
elseif ai:IsInsideTargetRegion(TARGET_ENE_0, 1202243) then
Act02Per = 60
Act06Per = 35
Act07Per = 5
else
Act02Per = 95
Act06Per = 5
end
else
ai:PrintText("ERROR Area Over")
Act07Per = 100
end
local fateAct = ai:GetRandam_Int(1, Act01Per + Act02Per + Act03Per + Act04Per + Act05Per + Act06Per + Act07Per)
local fateShoot = ai:GetRandam_Int(1, Shoot01Per + Shoot02Per + Shoot03Per + Shoot04Per)
if fateAct <= Act01Per then
local RightMove = 3010
if fate <= 50 then
RightMove = 3010
elseif fate <= 80 then
RightMove = 3001
else
RightMove = 3002
end
ai:PrintText("Do RightMove")
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, RightMove, TARGET_ENE_0, DIST_None, 0)
elseif fateAct <= Act01Per + Act02Per then
local LeftMove = 3011
if fate <= 50 then
LeftMove = 3011
elseif fate <= 80 then
LeftMove = 3004
else
LeftMove = 3005
end
ai:PrintText("Do LeftMove")
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, LeftMove, TARGET_ENE_0, DIST_None, 0)
elseif fateAct <= Act01Per + Act02Per + Act03Per then
ai:PrintText("Do Landing")
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, 3020, TARGET_ENE_0, DIST_None, 0)
elseif fateAct <= Act01Per + Act02Per + Act03Per + Act04Per then
ai:PrintText("Do TakeOff")
goal:AddSubGoal(GOAL_COMMON_Wait, ai:GetRandam_Float(4, 8), TARGET_NONE, 0, 0, 0)
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, 3001, TARGET_ENE_0, DIST_None, 0)
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, 3000, TARGET_ENE_0, DIST_None, 0)
goal:AddSubGoal(GOAL_COMMON_If, 10, 0)
elseif fateAct <= Act01Per + Act02Per + Act03Per + Act04Per + Act05Per then
local RightTurn = 3013
if fate <= 80 and hprate <= 0.5 then
RightTurn = 3013
else
RightTurn = 3024
end
ai:PrintText("Do Turnaround Right")
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, RightTurn, TARGET_ENE_0, DIST_None, 0)
elseif fateAct <= Act01Per + Act02Per + Act03Per + Act04Per + Act05Per + Act06Per then
local LeftTurn = 3012
if fate <= 80 and hprate <= 0.5 then
LeftTurn = 3012
else
LeftTurn = 3022
end
ai:PrintText("Do Turnaround Left")
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, LeftTurn, TARGET_ENE_0, DIST_None, 0)
else
local Hover = 3014
if hprate <= 0.5 then
if fate <= 15 then
Hover = 3014
elseif fate <= 30 then
Hover = 3007
elseif fate <= 100 then
Hover = 3015
else
Hover = 3008
end
elseif fate <= 35 then
Hover = 3014
elseif fate <= 75 then
Hover = 3007
elseif fate <= 90 then
Hover = 3015
else
Hover = 3008
end
ai:PrintText("Do Hover")
goal:AddSubGoal(GOAL_COMMON_NonspinningAttack, 20, Hover, TARGET_ENE_0, DIST_None, 0)
end
return
end
function Kagerou323000Battle_Update(ai, goal)
return GOAL_RESULT_Continue
end
function Kagerou323000Battle_Terminate(ai, goal)
return
end
function Kagerou323000Battle_Interupt(ai, goal)
return false
end
return