mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Meteor shielding improvements (#27996)
This commit is contained in:
@@ -32,40 +32,16 @@
|
||||
strength = 1
|
||||
life = 40
|
||||
|
||||
/obj/effect/space_dust/New()
|
||||
/obj/effect/space_dust/Initialize(mapload)
|
||||
. = ..()
|
||||
var/startx = 0
|
||||
var/starty = 0
|
||||
var/endy = 0
|
||||
var/endx = 0
|
||||
ADD_TRAIT(src, TRAIT_NO_EDGE_TRANSITIONS, ROUNDSTART_TRAIT)
|
||||
|
||||
var/startside = pick(GLOB.cardinal)
|
||||
GLOB.meteor_list += src
|
||||
|
||||
switch(startside)
|
||||
if(NORTH)
|
||||
starty = world.maxy-(TRANSITIONEDGE+1)
|
||||
startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1))
|
||||
endy = TRANSITIONEDGE
|
||||
endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE)
|
||||
if(EAST)
|
||||
starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1))
|
||||
startx = world.maxx-(TRANSITIONEDGE+1)
|
||||
endy = rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE)
|
||||
endx = TRANSITIONEDGE
|
||||
if(SOUTH)
|
||||
starty = (TRANSITIONEDGE+1)
|
||||
startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1))
|
||||
endy = world.maxy-TRANSITIONEDGE
|
||||
endx = rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE)
|
||||
if(WEST)
|
||||
starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1))
|
||||
startx = (TRANSITIONEDGE+1)
|
||||
endy = rand(TRANSITIONEDGE,world.maxy-TRANSITIONEDGE)
|
||||
endx = world.maxx-TRANSITIONEDGE
|
||||
goal = locate(endx, endy, 1)
|
||||
src.x = startx
|
||||
src.y = starty
|
||||
src.z = level_name_to_num(MAIN_STATION)
|
||||
var/turf/start = pick_edge_loc(startside, level_name_to_num(MAIN_STATION))
|
||||
forceMove(start)
|
||||
goal = pick_edge_loc(REVERSE_DIR(startside), level_name_to_num(MAIN_STATION))
|
||||
walk_towards(src, goal, 1)
|
||||
|
||||
/obj/effect/space_dust/Bump(atom/A)
|
||||
|
||||
@@ -15,8 +15,8 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
|
||||
|
||||
/datum/event/immovable_rod/start()
|
||||
var/startside = pick(GLOB.cardinal)
|
||||
var/turf/startT = spaceDebrisStartLoc(startside, level_name_to_num(MAIN_STATION))
|
||||
var/turf/endT = spaceDebrisFinishLoc(startside, level_name_to_num(MAIN_STATION))
|
||||
var/turf/startT = pick_edge_loc(startside, level_name_to_num(MAIN_STATION))
|
||||
var/turf/endT = pick_edge_loc(REVERSE_DIR(startside), level_name_to_num(MAIN_STATION))
|
||||
new /obj/effect/immovablerod/event(startT, endT)
|
||||
|
||||
/obj/effect/immovablerod
|
||||
|
||||
@@ -110,12 +110,13 @@
|
||||
|
||||
data["satellites"] = list()
|
||||
for(var/obj/machinery/satellite/S in GLOB.machines)
|
||||
var/turf/T = get_turf(S)
|
||||
data["satellites"] += list(list(
|
||||
"id" = S.id,
|
||||
"active" = S.active,
|
||||
"mode" = S.mode,
|
||||
"x" = S.x,
|
||||
"y" = S.y
|
||||
"x" = T.x,
|
||||
"y" = T.y
|
||||
))
|
||||
update_notice()
|
||||
data["notice"] = notice
|
||||
@@ -276,8 +277,9 @@
|
||||
continue
|
||||
if(get_dist(M, src) > kill_range)
|
||||
continue
|
||||
if(!emagged && space_los(M))
|
||||
if(!istype(M, /obj/effect/meteor/fake))
|
||||
var/is_fake = istype(M, /obj/effect/meteor/fake)
|
||||
if((!emagged || is_fake) && space_los(M))
|
||||
if(!is_fake)
|
||||
Beam(get_turf(M), icon_state = "sat_beam", time = 5, maxdistance = kill_range)
|
||||
if(istype(M, /obj/effect/space_dust/meaty))
|
||||
new /obj/item/food/meatsteak(get_turf(M))
|
||||
|
||||
Reference in New Issue
Block a user