mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-28 07:38:05 +01:00
[MIRROR] Fixes various immovable rod bugs, adds logging (#1568)
* Fixes various immovable rod bugs (#54770) * Fixes various immovable rod bugs, adds logging Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
#define DEFAULT_METEOR_LIFETIME 1800
|
||||
#define MAP_EDGE_PAD 5
|
||||
|
||||
GLOBAL_VAR_INIT(meteor_wave_delay, 625) //minimum wait between waves in tenths of seconds
|
||||
//set to at least 100 unless you want evarr ruining every round
|
||||
|
||||
@@ -46,17 +48,17 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
|
||||
var/startx
|
||||
switch(startSide)
|
||||
if(NORTH)
|
||||
starty = world.maxy-(TRANSITIONEDGE+1)
|
||||
startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1))
|
||||
starty = world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
if(EAST)
|
||||
starty = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1))
|
||||
startx = world.maxx-(TRANSITIONEDGE+1)
|
||||
starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD),world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
startx = world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
if(SOUTH)
|
||||
starty = (TRANSITIONEDGE+1)
|
||||
startx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1))
|
||||
starty = (TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
startx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
if(WEST)
|
||||
starty = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1))
|
||||
startx = (TRANSITIONEDGE+1)
|
||||
starty = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
startx = (TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
. = locate(startx, starty, Z)
|
||||
|
||||
/proc/spaceDebrisFinishLoc(startSide, Z)
|
||||
@@ -64,17 +66,17 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
|
||||
var/endx
|
||||
switch(startSide)
|
||||
if(NORTH)
|
||||
endy = (TRANSITIONEDGE+1)
|
||||
endx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1))
|
||||
endy = (TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
endx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
if(EAST)
|
||||
endy = rand((TRANSITIONEDGE+1), world.maxy-(TRANSITIONEDGE+1))
|
||||
endx = (TRANSITIONEDGE+1)
|
||||
endy = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
endx = (TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
if(SOUTH)
|
||||
endy = world.maxy-(TRANSITIONEDGE+1)
|
||||
endx = rand((TRANSITIONEDGE+1), world.maxx-(TRANSITIONEDGE+1))
|
||||
endy = world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
endx = rand((TRANSITIONEDGE + MAP_EDGE_PAD), world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
if(WEST)
|
||||
endy = rand((TRANSITIONEDGE+1),world.maxy-(TRANSITIONEDGE+1))
|
||||
endx = world.maxx-(TRANSITIONEDGE+1)
|
||||
endy = rand((TRANSITIONEDGE + MAP_EDGE_PAD),world.maxy-(TRANSITIONEDGE + MAP_EDGE_PAD))
|
||||
endx = world.maxx-(TRANSITIONEDGE + MAP_EDGE_PAD)
|
||||
. = locate(endx, endy, Z)
|
||||
|
||||
///////////////////////
|
||||
@@ -381,3 +383,4 @@ GLOBAL_LIST_INIT(meteorsSPOOKY, list(/obj/effect/meteor/pumpkin))
|
||||
meteorsound = pick('sound/hallucinations/im_here1.ogg','sound/hallucinations/im_here2.ogg')
|
||||
//////////////////////////
|
||||
#undef DEFAULT_METEOR_LIFETIME
|
||||
#undef MAP_EDGE_PAD
|
||||
|
||||
@@ -22,6 +22,8 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
|
||||
var/aimed = alert("Aimed at current location?","Sniperod", "Yes", "No")
|
||||
if(aimed == "Yes")
|
||||
special_target = get_turf(usr)
|
||||
message_admins("[key_name_admin(usr)] has aimed an immovable rod at [AREACOORD(special_target)].")
|
||||
log_admin("[key_name_admin(usr)] has aimed an immovable rod at [AREACOORD(special_target)].")
|
||||
|
||||
/datum/round_event/immovable_rod
|
||||
announceWhen = 5
|
||||
@@ -34,8 +36,9 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
|
||||
var/startside = pick(GLOB.cardinals)
|
||||
var/z = pick(SSmapping.levels_by_trait(ZTRAIT_STATION))
|
||||
var/turf/startT = spaceDebrisStartLoc(startside, z)
|
||||
var/turf/endT = spaceDebrisFinishLoc(startside, z)
|
||||
var/turf/endT = get_edge_target_turf(get_random_station_turf(), turn(startside, 180))
|
||||
var/atom/rod = new /obj/effect/immovablerod(startT, endT, C.special_target)
|
||||
C.special_target = null //Cleanup for future event rolls.
|
||||
announce_to_ghosts(rod)
|
||||
|
||||
/obj/effect/immovablerod
|
||||
@@ -106,7 +109,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
|
||||
. = ..()
|
||||
|
||||
/obj/effect/immovablerod/Moved()
|
||||
if((z != z_original) || (loc == destination))
|
||||
if((z != z_original))
|
||||
qdel(src)
|
||||
if(special_target && loc == get_turf(special_target))
|
||||
complete_trajectory()
|
||||
|
||||
Reference in New Issue
Block a user