[Add] Militia kinda scans now.
This commit is contained in:
parent
dfd60775e2
commit
53d5eb6172
@ -57,7 +57,7 @@ function runaway()
|
|||||||
target = ai.targetid()
|
target = ai.targetid()
|
||||||
|
|
||||||
if not ai.exists(target) then
|
if not ai.exists(target) then
|
||||||
ai.pustask()
|
ai.pushtask()
|
||||||
ai.pushtask(0, "hyperspace")
|
ai.pushtask(0, "hyperspace")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -9,7 +9,7 @@ function control()
|
|||||||
if task ~= "attack" and enemy ~= 0 then
|
if task ~= "attack" and enemy ~= 0 then
|
||||||
ai.pushtask(0, "attack", enemy)
|
ai.pushtask(0, "attack", enemy)
|
||||||
elseif ai.taskname() == "none" then
|
elseif ai.taskname() == "none" then
|
||||||
ai.pushtask(0, "fly")
|
ai.pushtask(0, "scan", ai.rndpilot())
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -88,12 +88,18 @@ function attack()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function fly()
|
function scan()
|
||||||
target = player
|
target = ai.targetid()
|
||||||
|
if not ai.exists(target) then
|
||||||
|
ai.poptask()
|
||||||
|
return
|
||||||
|
end
|
||||||
dir = ai.face(target)
|
dir = ai.face(target)
|
||||||
dist = ai.dist(ai.pos(target))
|
dist = ai.dist(ai.pos(target))
|
||||||
if dir < 10 and dist > 300 then
|
if dir < 10 and dist > 300 then
|
||||||
ai.accel()
|
ai.accel()
|
||||||
|
elseif dist < 300 then -- Scan the target.
|
||||||
|
ai.poptask()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
7
src/ai.c
7
src/ai.c
@ -100,6 +100,7 @@ static int ai_taskname(lua_State* L); // Number taskname.
|
|||||||
// Consult values.
|
// Consult values.
|
||||||
static int ai_gettarget(lua_State* L); // Pointer gettarget()
|
static int ai_gettarget(lua_State* L); // Pointer gettarget()
|
||||||
static int ai_gettargetid(lua_State* L); // Number gettargetis()
|
static int ai_gettargetid(lua_State* L); // Number gettargetis()
|
||||||
|
static int ai_getrndpilot(lua_State* L); // Number getrndpilot()
|
||||||
static int ai_armour(lua_State* L); // armour()
|
static int ai_armour(lua_State* L); // armour()
|
||||||
static int ai_shield(lua_State* L); // shield()
|
static int ai_shield(lua_State* L); // shield()
|
||||||
static int ai_parmour(lua_State* L); // parmour()
|
static int ai_parmour(lua_State* L); // parmour()
|
||||||
@ -160,6 +161,7 @@ static const luaL_Reg ai_methods[] = {
|
|||||||
{ "incombat", ai_incombat },
|
{ "incombat", ai_incombat },
|
||||||
{ "target", ai_gettarget },
|
{ "target", ai_gettarget },
|
||||||
{ "targetid", ai_gettargetid },
|
{ "targetid", ai_gettargetid },
|
||||||
|
{ "rndpilot", ai_getrndpilot },
|
||||||
{ "armour", ai_armour },
|
{ "armour", ai_armour },
|
||||||
{ "shield", ai_shield },
|
{ "shield", ai_shield },
|
||||||
{ "parmour", ai_parmour },
|
{ "parmour", ai_parmour },
|
||||||
@ -473,6 +475,11 @@ static int ai_gettargetid(lua_State* L) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ai_getrndpilot(lua_State* L) {
|
||||||
|
lua_pushnumber(L, pilot_stack[RNG(0, pilots-1)]->id);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Get the pilots armour.
|
// Get the pilots armour.
|
||||||
static int ai_armour(lua_State* L) {
|
static int ai_armour(lua_State* L) {
|
||||||
double d;
|
double d;
|
||||||
|
Loading…
Reference in New Issue
Block a user