Initial commit
This commit is contained in:
100
DATA/SCRIPTS/AI/SPACEMODE/BUILDREFINERYSPACE.LUA
Normal file
100
DATA/SCRIPTS/AI/SPACEMODE/BUILDREFINERYSPACE.LUA
Normal file
@@ -0,0 +1,100 @@
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
-- (c) Galyana's Ultimate Empire at War Modifications
|
||||
--
|
||||
-- ****** *** *** ************ *** ***
|
||||
-- * * * * * * * *
|
||||
-- * * * * * * *
|
||||
-- * * * * * * *
|
||||
-- * * * * * **** * * *
|
||||
-- * * * ****** * * * *
|
||||
-- * **** * * * * * * * *** *
|
||||
-- * * * * * * * * * *
|
||||
-- * * * * * * * * * *
|
||||
-- * * * * * * * ** * * *
|
||||
-- ****** ****** ************ **** ** *******
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
-- C O N F I D E N T I A L S O U R C E C O D E -- D O N O T D I S T R I B U T E
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
--
|
||||
-- File: GUEaW/Data/Scripts/AI/SpaceMode/BuildRefinerySpace.LUA
|
||||
--
|
||||
-- Original Editor: Giovanni Galyana
|
||||
--
|
||||
-- Final Edit By: Giovanni Galyana
|
||||
--
|
||||
-- Date: 2 October, 2022
|
||||
--
|
||||
-- Revisions: 2
|
||||
--
|
||||
--/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
require("pgevents")
|
||||
|
||||
|
||||
function Definitions()
|
||||
|
||||
Category = "Build_Refinery_Space"
|
||||
IgnoreTarget = true
|
||||
TaskForce = {
|
||||
{
|
||||
"MainForce"
|
||||
,"UC_Empire_Mineral_Extractor | UC_Rebel_Mineral_Extractor_Armored | UC_Hutt_Mineral_Extractor | UC_Underworld_Mineral_Extractor | UC_Pirate_Mineral_Extractor = 1"
|
||||
}
|
||||
}
|
||||
-- RequiredCategories = {"Structure"}
|
||||
AllowFreeStoreUnits = false
|
||||
good_pad = nil
|
||||
pad = nil
|
||||
refinery = nil
|
||||
|
||||
end
|
||||
|
||||
function MainForce_Thread()
|
||||
|
||||
-- Make sure we use a build pad that's not too near to the enemy base
|
||||
nearby_pad_list = MainForce.Get_Reserved_Build_Pads()
|
||||
for i, pad in pairs(nearby_pad_list) do
|
||||
if EvaluatePerception("Distance_To_Nearest_Enemy_Starbase", PlayerObject, pad) > 2000 then
|
||||
good_pad = pad
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if good_pad then
|
||||
|
||||
faction_name = PlayerObject.Get_Faction_Name()
|
||||
if faction_name == "EMPIRE" then
|
||||
MainForce.Build("UC_Empire_Mineral_Extractor", good_pad)
|
||||
elseif faction_name == "REBEL" then
|
||||
MainForce.Build("UC_Rebel_Mineral_Extractor_Armored", good_pad)
|
||||
elseif faction_name == "PIRATES" then
|
||||
MainForce.Build("UC_Pirate_Mineral_Extractor", good_pad)
|
||||
elseif faction_name == "HUTTS" then
|
||||
MainForce.Build("UC_Hutt_Mineral_Extractor", good_pad)
|
||||
elseif faction_name == "UNDERWORLD" then
|
||||
MainForce.Build("UC_Underworld_Mineral_Extractor", good_pad)
|
||||
else
|
||||
MessageBox("unexpected faction name: %s", faction_name)
|
||||
end
|
||||
|
||||
-- Make sure we track the results
|
||||
MainForce.Set_As_Goal_System_Removable(false)
|
||||
|
||||
-- If it survives X seconds, consider it a successful plan
|
||||
Sleep(30)
|
||||
if TestValid(good_pad) then
|
||||
refinery = good_pad.Get_Build_Pad_Contents()
|
||||
if TestValid(refinery) then
|
||||
MainForce.Set_Plan_Result(true)
|
||||
end
|
||||
end
|
||||
else
|
||||
-- This plan/target sucks. Pause for a moment, then release the allocated cash.
|
||||
Sleep(5)
|
||||
end
|
||||
|
||||
ScriptExit()
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user