mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-03-21 11:13:35 +00:00
* Unit Test rework & Master/Ticker update * Fixes and working unit testing * Fixes * Test fixes and FA update * Fixed runtimes * Radio subsystem * move that glob wherever later * ident * CIBUILDING compile option * Fixed runtimes * Some changes to the workflow * CI Split * More split * Pathing * Linters and Annotators * ci dir fix * Missing undef fixed * Enable grep checks * More test conversions * More split * Correct file * Removes unneeded inputs * oop * More dependency changes * More conversions * Conversion fixes * Fixes * Some assert fixes * Corrects start gate * Converted some README.dms to README.mds * Removes duplicate proc * Removes unused defines * Example configs * fix dll access viol by double calling * Post-rebase fixes * Cleans up names global list * Undef restart counter * More code/game/ cleanup * Statpanel update * Skybox * add * Fix ticker * Roundend fix * Persistence dependency update * Reordering * Reordering * Reordering * Initstage fix * . * . * Reorder * Reorder * Circle * Mobs * Air * Test fix * CI Script Fix * Configs * More ticker stuff * This is now in 'reboot world' * Restart world announcements * no glob in PreInit * to define * Update * Removed old include * Make this file normal again * moved * test * shared unit testing objects * Updates batched_spritesheets and universal_icon * . * job data debug * rm that * init order * show us * . * i wonder * . * . * urg * do we not have a job ID? * . * rm sleep for now * updated rust-g linux binaries * binaries update 2 * binaries update 3 * testing something * change that * test something * . * . * . * locavar * test * move that * . * debug * don't run this test * strack trace it * cleaner * . * . * cras again * also comment this out * return to official rust g * Update robot_icons.dm * monitor the generation * . --------- Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
103 lines
3.2 KiB
Plaintext
103 lines
3.2 KiB
Plaintext
// Ported from Haine and WrongEnd with much gratitude!
|
|
/* ._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._. */
|
|
/*-=-=-=-=-=-=-=-=-=-=-=-=-=WHAT-EVER=-=-=-=-=-=-=-=-=-=-=-=-=-*/
|
|
/* '~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~'-._.-'~' */
|
|
|
|
/obj/effect/wingrille_spawn
|
|
name = "window grille spawner"
|
|
icon = 'icons/obj/structures.dmi'
|
|
icon_state = "wingrille"
|
|
density = TRUE
|
|
anchored = TRUE
|
|
pressure_resistance = 4*ONE_ATMOSPHERE
|
|
can_atmos_pass = ATMOS_PASS_NO
|
|
var/win_path = /obj/structure/window/basic
|
|
var/activated
|
|
|
|
/obj/effect/wingrille_spawn/attack_hand()
|
|
attack_generic()
|
|
|
|
/obj/effect/wingrille_spawn/attack_ghost()
|
|
attack_generic()
|
|
|
|
/obj/effect/wingrille_spawn/attack_generic()
|
|
activate()
|
|
|
|
/obj/effect/wingrille_spawn/CanPass(atom/movable/mover, turf/target)
|
|
return FALSE
|
|
|
|
/obj/effect/wingrille_spawn/Initialize(mapload)
|
|
if(win_path && SSticker && SSticker.current_state < GAME_STATE_PLAYING)
|
|
activate()
|
|
..()
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/wingrille_spawn/proc/activate()
|
|
if(activated) return
|
|
if (!locate(/obj/structure/grille) in get_turf(src))
|
|
var/obj/structure/grille/G = new /obj/structure/grille(src.loc)
|
|
handle_grille_spawn(G)
|
|
var/list/neighbours = list()
|
|
for (var/dir in GLOB.cardinal)
|
|
var/turf/T = get_step(src, dir)
|
|
var/obj/effect/wingrille_spawn/other = locate(/obj/effect/wingrille_spawn) in T
|
|
if(!other)
|
|
var/found_connection
|
|
if(locate(/obj/structure/grille) in T)
|
|
for(var/obj/structure/window/W in T)
|
|
if(W.type == win_path && W.dir == get_dir(T,src))
|
|
found_connection = 1
|
|
qdel(W)
|
|
if(!found_connection)
|
|
var/obj/structure/window/new_win = new win_path(src.loc)
|
|
new_win.set_dir(dir)
|
|
handle_window_spawn(new_win)
|
|
else
|
|
neighbours |= other
|
|
activated = 1
|
|
for(var/obj/effect/wingrille_spawn/other in neighbours)
|
|
if(!other.activated) other.activate()
|
|
if((flags & ATOM_INITIALIZED) && !QDELETED(src))
|
|
qdel(src)
|
|
|
|
/obj/effect/wingrille_spawn/proc/handle_window_spawn(var/obj/structure/window/W)
|
|
return
|
|
|
|
// Currently unused, could be useful for pre-wired electrified windows.
|
|
/obj/effect/wingrille_spawn/proc/handle_grille_spawn(var/obj/structure/grille/G)
|
|
return
|
|
|
|
/obj/effect/wingrille_spawn/reinforced
|
|
name = "reinforced window grille spawner"
|
|
icon_state = "r-wingrille"
|
|
win_path = /obj/structure/window/reinforced
|
|
|
|
/obj/effect/wingrille_spawn/reinforced/crescent
|
|
name = "Crescent window grille spawner"
|
|
icon_state = "r-wingrille"
|
|
win_path = /obj/structure/window/reinforced
|
|
|
|
/obj/effect/wingrille_spawn/reinforced/crescent/handle_window_spawn(var/obj/structure/window/W)
|
|
W.maxhealth = 1000000
|
|
W.health = 1000000
|
|
|
|
/obj/effect/wingrille_spawn/phoron
|
|
name = "phoron window grille spawner"
|
|
icon_state = "p-wingrille"
|
|
win_path = /obj/structure/window/phoronbasic
|
|
|
|
/obj/effect/wingrille_spawn/reinforced_phoron
|
|
name = "reinforced phoron window grille spawner"
|
|
icon_state = "pr-wingrille"
|
|
win_path = /obj/structure/window/phoronreinforced
|
|
|
|
/obj/effect/wingrille_spawn/reinforced/polarized
|
|
name = "polarized window grille spawner"
|
|
color = "#444444"
|
|
win_path = /obj/structure/window/reinforced/polarized
|
|
var/id
|
|
|
|
/obj/effect/wingrille_spawn/reinforced/polarized/handle_window_spawn(var/obj/structure/window/reinforced/polarized/P)
|
|
if(id)
|
|
P.id = id
|