-- Required control rate control_rate = 2 -- Required "control" function. function control() task = ai.taskname() enemy = ai.getenemy() if task ~= "attack" and enemy ~= 0 then ai.pushtask(0, "attack", enemy) elseif task == "none" then planet = ai.rndplanet() -- Planet needs to exist.. if planet == nil then ai.pushtask(0, "hyperspace") else ai.pushtask(0, "go", planet) end end end function attacked(attacker) task = ai.taskname() if task ~= "attack" and task ~= "runaway" then taunt(attacker) ai.pushtask(0, "attack", attacker) elseif task == "attack" then if ai.targetid() ~= attacker then ai.pushtask(0, "attack", attacker) end end end function create() if ai.rnd(0,2)==0 then ai.broadcast("The Empire is watching") end end function taunt(target) num = ai.rnd(0,4) if num == 0 then msg = "How dare you attack me!?" elseif num == 1 then msg = "You can not defeat the Empire!" elseif num == 2 then msg = "You will hang for this!" elseif num == 3 then msg = "DIE!" end if msg then ai.comm(attacker, msg) end end function attack() target = ai.targetid() -- Make sure pilot exists. if not ai.exists(target) then ai.poptask() return end dir = ai.face(target) dist = ai.dist(ai.pos(target)) second = ai.secondary() if ai.secondary() == "Launcher" then ai.settarget(target) ai.shoot(2) end if dir < 10 and dist > 300 then ai.accel() elseif(dir < 10 or ai.hasturrets()) and dist < 300 then ai.shoot() end end function go() target = ai.target() dir = ai.face(target) dist = ai.dist(target) bdist = ai.minbrakedist() if dir < 10 and dist > bdist then ai.accel() elseif dir < 10 and dist < bdist then ai.poptask() ai.pushtask(0, "stop") end end function stop() if ai.isstopped() then ai.stop() ai.poptask() ai.settimer(0, ai.rnd(8000, 15000)) ai.pushtask(0, "land") else ai.brake() end end function land() if ai.timeup(0) then ai.pushtask(0, "hyperspace") end end function hyperspace() dir = ai.face(-1) -- Face away from (0,0) if(dir < 10) then ai.accel() end end