Delete spider.lua

master
AiTechEye 2018-09-15 16:17:26 +02:00 committed by GitHub
parent 0e09894e9b
commit e797a22d19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 220 deletions

View File

@ -1,220 +0,0 @@
aliveai.register_rndcheck_on_generated({
group="spreading_dirt_type",
miny=0,
maxy=100,
run=function(y)
if math.random(1,3)==1 then
y.y=y.y-4
local p=aliveai.get_nodes(y,4,1,{})
if not p then return end
local m={"aliveai_threats:trapstone","aliveai_threats:trapdirt"}
local mm={"default:stone","default:dirt"}
for _, pos in ipairs(p) do
if pos.y>=y.y and minetest.find_node_near(pos, 1,{"air","group:snappy"}) then
if pos.y>=y.y+4 then
minetest.set_node(pos,{name=m[math.random(1,2)]})
else
minetest.set_node(pos,{name=mm[math.random(1,2)]})
end
else
minetest.set_node(pos,{name="aliveai_threats:steelnet"})
end
end
minetest.get_node_timer(y):start(5)
end
end
})
minetest.register_node("aliveai_threats:steelnet", {
description = "Steel net",
tiles = {"aliveai_threats_steelnet.png"},
paramtype = "light",
drawtype = "firelike",
sunlight_propagates=true,
walkable = false,
is_ground_content = false,
liquidtype = "source",
liquid_range = 0,
liquid_alternative_flowing = "aliveai_threats:steelnet",
liquid_alternative_source = "aliveai_threats:steelnet",
liquid_viscosity = 15,
groups = {cracky=1,level=1},
sounds=default.node_sound_metal_defaults(),
on_timer = function (pos, elapsed)
local t
for _, ob in ipairs(minetest.get_objects_inside_radius(pos, 15)) do
if aliveai.is_bot(ob) and ob:get_luaentity().name=="aliveai_threats:spider_terminator" then
return true
elseif aliveai.team(ob)~="nuke" then
t=ob
end
end
if t then
local e=minetest.add_entity(pos, "aliveai_threats:spider_terminator")
e:get_luaentity().fight=t
e:get_luaentity().temper=3
aliveai.lookat(e:get_luaentity(),t:get_pos())
end
return true
end,
})
minetest.register_node("aliveai_threats:trapstone", {
description = "Trapstone",
tiles={"default_stone.png"},
groups={cracky=2},
sounds=default.node_sound_stone_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(5)
end,
on_timer = function (pos, elapsed)
for _, ob in ipairs(minetest.get_objects_inside_radius(pos, 2)) do
if aliveai.team(ob)~="nuke" then
minetest.add_entity(pos, "aliveai_threats:fallingtrap")
minetest.remove_node(pos)
return
end
end
return true
end,
})
minetest.register_node("aliveai_threats:trapdirt", {
description = "Trapdirt",
tiles={"default_dirt.png"},
groups={crumbly=2},
sounds=default.node_sound_dirt_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(5)
end,
on_timer = function (pos, elapsed)
for _, ob in ipairs(minetest.get_objects_inside_radius(pos, 2)) do
if aliveai.team(ob)~="nuke" then
minetest.add_entity(pos, "aliveai_threats:fallingtrap")
minetest.remove_node(pos)
return
end
end
return true
end,
})
minetest.register_entity("aliveai_threats:fallingtrap",{
visual = "wielditem",
physical =true,
visual_size = {x=0.667,y=0.667},
textures ={"default:dirt"},
makes_footstep_sound = true,
on_activate=function(self, staticdata)
if staticdata and staticdata~="" then
local a=minetest.deserialize(staticdata)
minetest.set_node(a.re,{name=a.tex})
self.object:remove()
return self
end
self.re=self.object:get_pos()
self.tex=minetest.get_node(self.re).name
self.object:set_properties({textures=self.tex})
self.object:set_acceleration({x=0,y=-20,z=0})
self.object:set_velocity({x=0, y=-1, z=0})
return self
end,
get_staticdata = function(self)
return minetest.serialize({re=self.re,tex=self.tex})
end,
on_step=function(self, dtime)
self.time=self.time+dtime
if self.time<1 then return self end
self.time=0
if aliveai.def(aliveai.newpos(self,{y=-1}),"walkable") then
self.timer=self.timer-1
if self.timer<1 then
minetest.set_node(self.re,{name=self.tex})
self.object:remove()
end
end
return self
end,
time=0,
timer=30,
team="nuke",
})
aliveai.create_bot({
attack_players=1,
name="spider_terminator",
team="nuke",
texture="aliveai_threats_c4_controller.png",
drawtype="mesh",
mesh="aliveai_threats_spider_terminator.b3d",
visual_size={x=3,y=3},
collisionbox={-0.5,-0.35,-0.5,0.5,0.5,0.5},
basey=0.30,
animation={
stand={x=20,y=25,speed=0},
walk={x=0,y=20,speed=60},
mine={x=0,y=20,speed=120},
},
drop_dead_body=0,
attacking=1,
talking=0,
building=0,
escape=0,
start_with_items={["default:steelblock"]=1},
type="monster",
dmg=10,
hp=200,
arm=3,
name_color="",
spawn_on={"group:spreading_dirt_type","default:gravel","group:stone"},
spawn_chance=1000,
attack_chance=1,
mindamage=5,
drowning=0,
floating=0,
smartfight=0,
on_step=function(self,dtime)
local n=minetest.get_node(self.object:get_pos()).name=="aliveai_threats:steelnet"
if n and self.floating==0 then
aliveai.floating(self,1)
elseif not n and self.floating==1 then
aliveai.floating(self)
end
end,
on_punched=function(self,puncher)
local pos=self.object:get_pos()
minetest.add_particlespawner({
amount = 5,
time =0.05,
minpos = pos,
maxpos = pos,
minvel = {x=-2, y=-2, z=-2},
maxvel = {x=1, y=0.5, z=1},
minacc = {x=0, y=-8, z=0},
maxacc = {x=0, y=-10, z=0},
minexptime = 2,
maxexptime = 1,
minsize = 0.1,
maxsize = 2,
texture = "default_steel_block.png",
collisiondetection = true,
spawn_chance=100,
})
end,
on_blow=function(self)
aliveai.kill(self)
self.death(self,self.object,self.object:get_pos())
end,
death=function(self,puncher,pos)
if aliveai_nitroglycerine and not self.ex then
self.ex=true
aliveai_nitroglycerine.explode(pos,{
radius=2,
set="air",
})
end
return self
end,
})