Created
September 14, 2022 13:14
-
-
Save corarona/925c1922b0ee04dadf9c9ae1192483dd to your computer and use it in GitHub Desktop.
z-siege
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mcl_events = {} | |
local siegenight = false | |
local siege_active = false | |
local function is_in_village(pl) | |
local pos = pl:get_pos() | |
local bell = minetest.find_node_near(pos,64,{"mcl_bells:bell"}) | |
if bell then return true end | |
--local m = minetest.get_meta(bell) | |
end | |
minetest.register_globalstep(function(dtime) | |
if minetest.get_timeofday() > 0.2 then | |
siegenight = false | |
elseif not siegenight then | |
if minetest.get_timeofday() - 0.1 <= 0 then | |
--if math.random(10) == 1 then | |
siegenight = true | |
minetest.log("it's siege night") | |
--end | |
end | |
elseif not siege_active then | |
for _,pl in pairs(minetest.get_connected_players()) do | |
if is_in_village(pl) then | |
local pos = pl:get_pos() | |
minetest.log("siege is happening") | |
siege_active = true | |
local p1 = vector.offset(pos,-32,-10,-32) | |
local p2 = vector.offset(pos,32,10,32) | |
local nn = minetest.find_nodes_in_area_under_air(p1,p2,{"group:solid"}) | |
for k,v in pairs(nn) do | |
if vector.distance(pos,v) < 24 then | |
table.remove(nn,k) | |
end | |
end | |
table.shuffle(nn) | |
for i=math.min(15,#nn),math.min(#nn,math.random(20,40)) do | |
local p = vector.offset(nn[i],0,1,0) | |
minetest.add_entity(p,"mobs_mc:zombie") | |
end | |
end | |
end | |
end | |
end) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment