Merge pull request #10862 from VOREStation/Icons/moredeco

More decorations, fancy suit dispenser, angry generator
This commit is contained in:
Aronai Sieyes
2021-07-04 00:29:18 -04:00
committed by Chompstation Bot
parent 23e39aa550
commit fdf4e56451
7 changed files with 354 additions and 65 deletions

View File

@@ -258,13 +258,7 @@ var/list/dispenser_presets = list()
if((dispenser_flags & GD_UNIQUE) && !emagged)
unique_dispense_list |= user.ckey
flick("[icon_state]-scan",src)
visible_message("\The [src] scans its user.", runemessage = "hums")
sleep(30)
flick("[icon_state]-dispense",src)
dispenser_flags |= GD_BUSY
sleep(15)
dispenser_flags &= ~GD_BUSY
animate_dispensing() // Blocks here until animation is done
var/turf/T = get_turf(src)
if(!(S && T)) // in case we got destroyed while we slept
@@ -277,6 +271,15 @@ var/list/dispenser_presets = list()
if(greet && user && !user.stat) // in case we got destroyed while we slept
to_chat(user,"<span class='notice'>[S.name] dispensing processed. Have a good day.</span>")
/obj/machinery/gear_dispenser/proc/animate_dispensing()
flick("[icon_state]-scan",src)
visible_message("\The [src] scans its user.", runemessage = "hums")
sleep(30)
flick("[icon_state]-dispense",src)
dispenser_flags |= GD_BUSY
sleep(15)
dispenser_flags &= ~GD_BUSY
/obj/machinery/gear_dispenser/emag_act(remaining_charges, mob/user, emag_source)
. = ..()
if(!emagged)
@@ -292,10 +295,100 @@ var/list/dispenser_presets = list()
icon_state = "suitdispenser2"
/obj/machinery/gear_dispenser/suit_old
name = "duit dispenser"
name = "suit dispenser"
desc = "An industrial U-Tak-It Dispenser unit designed to fetch all kinds of space suits. An older model."
icon_state = "suitdispenser"
/obj/machinery/gear_dispenser/suit_fancy
name = "suit dispenser"
desc = "An industrial U-Tak-It Dispenser unit designed to fetch all kinds of space suits. A newer model."
icon_state = "suit_storage_map"
var/obj/effect/overlay/vis/door
var/datum/gear_disp/held_gear_disp
var/special_frame
/obj/machinery/gear_dispenser/suit_fancy/Initialize(mapload)
. = ..()
door = add_vis_overlay("closed", layer = 4, unique = TRUE)
icon_state = "suit_storage"
if(special_frame)
add_overlay(special_frame)
/obj/machinery/gear_dispenser/suit_fancy/Destroy()
qdel_null(door)
held_gear_disp = null
return ..()
/obj/machinery/gear_dispenser/suit_fancy/power_change()
. = ..()
update_icon()
/obj/machinery/gear_dispenser/suit_fancy/update_icon()
cut_overlays()
if(special_frame)
add_overlay(special_frame)
if(needs_power && inoperable())
add_overlay("nopower")
else
add_overlay("light1")
if(held_gear_disp)
add_overlay("fullsuit")
if(operable())
add_overlay("light2")
/obj/machinery/gear_dispenser/suit_fancy/attack_hand(var/mob/living/carbon/human/user)
if(held_gear_disp)
var/turf/T = get_turf(user)
var/list/spawned = held_gear_disp.spawn_gear(T, user)
for(var/obj/item/I in spawned)
user.put_in_hands(I)
to_chat(user, "<span class='notice'>You remove the equipment from [src].</span>")
held_gear_disp = null
animate_close()
return
return ..()
/obj/machinery/gear_dispenser/suit_fancy/dispense(var/datum/gear_disp/S,var/mob/living/carbon/human/user,var/greet=TRUE)
if(!S.amount && !(dispenser_flags & GD_UNLIMITED))
to_chat(user,"<span class='warning'>There are no more [S.name]s left!</span>")
dispenser_flags &= ~GD_BUSY
return 1
else if(!(dispenser_flags & GD_UNLIMITED))
S.amount--
if((dispenser_flags & GD_NOGREED) && !emagged)
gear_distributed_to["[type]"] |= user.ckey
if((dispenser_flags & GD_UNIQUE) && !emagged)
unique_dispense_list |= user.ckey
held_gear_disp = S
animate_dispensing()
dispenser_flags &= ~GD_BUSY
if(emagged)
emagged = FALSE
if(greet && user && !user.stat) // in case we got destroyed while we slept
to_chat(user,"<span class='notice'>[S.name] dispensing processed. Have a good day.</span>")
/obj/machinery/gear_dispenser/suit_fancy/animate_dispensing()
add_overlay("working")
sleep(5 SECONDS)
add_overlay("fullsuit")
door.icon_state = "open"
flick("anim_open", door)
sleep(10.5)
add_overlay("light2")
cut_overlay("working")
/obj/machinery/gear_dispenser/suit_fancy/proc/animate_close()
cut_overlay("fullsuit")
cut_overlay("light2")
door.icon_state = "closed"
flick("anim_close", door)
// For fluff/custom items
/obj/machinery/gear_dispenser/custom
name = "personal gear dispenser"
@@ -467,6 +560,13 @@ var/list/dispenser_presets = list()
dispenser_flags = GD_ONEITEM|GD_NOGREED|GD_UNLIMITED
one_setting = /datum/gear_disp/voidsuit/autolok
/obj/machinery/gear_dispenser/suit_fancy/autolok
name = "AutoLok Suit Dispenser"
desc = "An industrial U-Tak-It Dispenser unit designed to fetch a specific AutoLok mass produced suit."
dispenser_flags = GD_ONEITEM|GD_NOGREED|GD_UNLIMITED
one_setting = /datum/gear_disp/voidsuit/autolok
special_frame = "frame_grey"
// Adminbuse
/obj/machinery/gear_dispenser/vv_get_dropdown()
. = ..()

View File

@@ -115,6 +115,13 @@
icon = 'icons/obj/structures/decor32x64.dmi'
icon_state = "eotp"
// gravity generator from Eris
/obj/structure/prop/gravygen
icon = 'icons/obj/structures/decor64x64.dmi'
icon_state = "bigdice"
bound_width = 64
bound_height = 64
// dna vault from /tg/
/obj/structure/prop/dna_vault
icon = 'icons/obj/structures/decor96x96.dmi'
@@ -271,6 +278,58 @@
/obj/structure/prop/nt_solifier/starts_on
icon_state = "nt_solidifier_on"
/**
* Possible 'state' options for change_state(state) are:
* off: Boring, round
* on: Spinny glowy
*/
// conduit of soul from Eris
/obj/structure/prop/conduit
icon = 'icons/obj/structures/decor.dmi'
icon_state = "conduit_off"
/obj/structure/prop/conduit/change_state(state)
. = ..()
switch(state)
if("on")
icon_state = "conduit_spin"
flick("conduit_starting", src)
if("off")
icon_state = "conduit_off"
flick("conduit_stopping", src)
/obj/structure/prop/conduit/starts_on
icon_state = "conduit_spin"
/**
* Possible 'state' options for change_state(state) are:
* on: Doing some kinda worky thing
* off: Not doing much of anything
* empty: No blue crystal thingy
* loaded: off but without the animation
*/
// some kinda NT thing from Eris
/obj/structure/prop/core
icon = 'icons/obj/structures/decor.dmi'
icon_state = "core_inactive"
/obj/structure/prop/core/change_state(state)
. = ..()
switch(state)
if("on")
icon_state = "core_active"
flick("core_warmup", src)
if("off")
icon_state = "core_inactive"
flick("core_shutdown", src)
if("empty")
icon_state = "core_empty"
if("loaded")
icon_state = "core_inactive"
/obj/structure/prop/core/starts_on
icon_state = "core_active"
/**
* Possible 'state' options for change_state(state) are:
* down: In the ground, glowing
@@ -278,7 +337,6 @@
*/
// experimental science destructor from /tg/
/obj/structure/prop/tube
icon = 'icons/obj/structures/decor.dmi'
icon = 'icons/obj/structures/decor32x64.dmi'
icon_state = "tube_open"
@@ -393,6 +451,62 @@
/obj/structure/prop/nt_optable/starts_active
icon_state = "nt_optable-active"
/**
* Possible 'state' options for change_state(state) are:
* idle: The default look
* active: Glowy lights in the center
* panel_open: Opened panel (wiring)
* panel_closed: Closed panel
*/
// trade beacon from Eris
/obj/structure/prop/tradebeacon
icon = 'icons/obj/structures/decor.dmi'
icon_state = "tradebeacon"
/obj/structure/prop/tradebeacon/change_state(state)
. = ..()
switch(state)
if("idle")
icon_state = "tradebeacon"
if("active")
icon_state = "tradebeacon_active"
if("panel_open")
cut_overlay("tradebeacon_panel")
add_overlay("tradebeacon_panel")
if("panel_closed")
cut_overlay("tradebeacon_panel")
/obj/structure/prop/tradebeacon/starts_active
icon_state = "tradebeacon_active"
/**
* Possible 'state' options for change_state(state) are:
* idle: The default look
* active: Glowy lights in the center
* panel_open: Opened panel (wiring)
* panel_closed: Closed panel
*/
// another trade beacon from Eris
/obj/structure/prop/tradebeacon2
icon = 'icons/obj/structures/decor.dmi'
icon_state = "tradebeacon"
/obj/structure/prop/tradebeacon2/change_state(state)
. = ..()
switch(state)
if("idle")
icon_state = "tradebeacon_sending"
if("active")
icon_state = "tradebeacon_sending_active"
if("panel_open")
cut_overlay("tradebeacon_sending_panel")
add_overlay("tradebeacon_sending_panel")
if("panel_closed")
cut_overlay("tradebeacon_sending_panel")
/obj/structure/prop/tradebeacon2/starts_active
icon_state = "tradebeacon_sending_active"
/**
* Possible 'state' options for change_state(state) are:
* off: Non-spinny
@@ -414,6 +528,48 @@
/obj/structure/prop/nt_obelisk/starts_on
icon_state = "nt_obelisk_on"
/**
* Possible 'state' options for change_state(state) are:
* off: Inert
* on: Hand destroying machinery
*/
// 'sorter' from Eris
/obj/structure/prop/sorter
icon = 'icons/obj/structures/decor.dmi'
icon_state = "sorter"
/obj/structure/prop/sorter/change_state(state)
. = ..()
switch(state)
if("off")
icon_state = "sorter"
if("on")
icon_state = "sorter-process"
/obj/structure/prop/sorter/starts_on
icon_state = "sorter-process"
/**
* Possible 'state' options for change_state(state) are:
* off: Inert
* on: Hand destroying machinery
*/
// 'smelter' from Eris
/obj/structure/prop/smelter
icon = 'icons/obj/structures/decor.dmi'
icon_state = "smelter"
/obj/structure/prop/smelter/change_state(state)
. = ..()
switch(state)
if("off")
icon_state = "smelter"
if("on")
icon_state = "smelter-process"
/obj/structure/prop/smelter/starts_on
icon_state = "smelter-process"
/**
* Possible 'state' options for change_state(state) are:
* idle: Not doing anything, with yellow template exposed

View File

@@ -240,3 +240,44 @@
. = ..()
cell = new /obj/item/weapon/cell/void/hybrid(src)
RefreshParts()
// Kugelblitz generator, confined black hole like a singulo but smoller and higher tech
// Presumably whoever made these has better tech than most
/obj/machinery/power/rtg/kugelblitz
name = "kugelblitz generator"
desc = "A power source harnessing a small black hole."
icon = 'icons/obj/structures/decor64x64.dmi'
icon_state = "bigdice"
bound_width = 64
bound_height = 64
power_gen = 30000
irradiate = FALSE // Green energy!
can_buckle = FALSE
/obj/machinery/power/rtg/kugelblitz/proc/asplod()
visible_message("<span class='danger'>\The [src] lets out an shower of sparks as it starts to lose stability!</span>",\
"<span class='italics'>You hear a loud electrical crack!</span>")
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
var/turf/T = get_turf(src)
qdel(src)
new /obj/singularity(T)
/obj/machinery/power/rtg/kugelblitz/blob_act(obj/structure/blob/B)
asplod()
/obj/machinery/power/rtg/kugelblitz/ex_act()
asplod()
/obj/machinery/power/rtg/kugelblitz/fire_act(exposed_temperature, exposed_volume)
asplod()
/obj/machinery/power/rtg/kugelblitz/tesla_act()
..() //extend the zap
asplod()
/obj/machinery/power/rtg/kugelblitz/bullet_act(obj/item/projectile/Proj)
. = ..()
if(istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) && Proj.damage >= 20)
log_and_message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered a kugelblitz core explosion at [x],[y],[z] via projectile.")
asplod()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -27066,15 +27066,13 @@ Ua
/turf/simulated/floor/tiled/eris/steel/panels,
/area/aro3/atmos)
"iZ" = (
/obj/machinery/power/terminal{
dir = 4
/obj/effect/floor_decal/industrial/warning{
dir = 5
},
/obj/structure/cable/cyan{
d2 = 8;
icon_state = "0-8"
icon_state = "2-4"
},
/obj/structure/cable/cyan,
/turf/simulated/floor/plating/eris/under,
/turf/simulated/floor/tiled/eris/white/gray_platform,
/area/aro3/power)
"jb" = (
/obj/machinery/power/apc/alarms_hidden{
@@ -27532,18 +27530,16 @@ Ua
/turf/simulated/floor/tiled/eris/cafe,
/area/aro3/kitchen)
"mW" = (
/obj/machinery/power/terminal{
dir = 4
/obj/effect/floor_decal/industrial/warning{
dir = 6
},
/obj/structure/cable/cyan{
d2 = 8;
icon_state = "0-8"
icon_state = "4-8"
},
/obj/structure/cable/cyan{
d2 = 1;
icon_state = "0-2"
icon_state = "1-8"
},
/turf/simulated/floor/plating/eris/under,
/turf/simulated/floor/tiled/eris/white/gray_platform,
/area/aro3/power)
"mX" = (
/obj/structure/flora/tree/jungle_small,
@@ -27929,19 +27925,6 @@ Ua
"qC" = (
/turf/space/internal_edge/bottomleft,
/area/aro3/bar)
"qG" = (
/obj/structure/cable/cyan{
d2 = 1;
icon_state = "0-4"
},
/obj/machinery/power/smes/buildable/hybrid{
input_attempt = 1;
input_level = 250000;
input_level_max = 250000;
output_level = 190000
},
/turf/simulated/floor/plating/eris/under,
/area/aro3/power)
"qH" = (
/obj/machinery/vending/loadout/clothing,
/turf/simulated/floor/tiled/eris/dark/gray_platform,
@@ -28110,11 +28093,10 @@ Ua
/turf/simulated/floor/tiled/eris/dark,
/area/aro3/function)
"rP" = (
/obj/machinery/power/rtg/abductor/hybrid/built,
/obj/structure/cable/cyan{
icon_state = "0-4"
/obj/effect/floor_decal/industrial/warning{
dir = 9
},
/turf/simulated/floor/plating/eris/under,
/turf/simulated/floor/tiled/eris/white/gray_platform,
/area/aro3/power)
"rU" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -28595,15 +28577,11 @@ Ua
/turf/simulated/floor/tiled/eris/dark/techfloor_grid,
/area/aro3/hallway_port)
"wx" = (
/obj/machinery/power/smes/buildable/hybrid{
input_attempt = 1;
input_level = 250000;
input_level_max = 250000;
output_level = 190000
/obj/machinery/power/terminal{
dir = 4
},
/obj/structure/cable/cyan{
d2 = 1;
icon_state = "0-4"
icon_state = "0-8"
},
/turf/simulated/floor/plating/eris/under,
/area/aro3/power)
@@ -28669,10 +28647,15 @@ Ua
/turf/simulated/wall/rpshull,
/area/space)
"wW" = (
/obj/machinery/power/smes/buildable/hybrid{
input_attempt = 1;
input_level = 250000;
input_level_max = 250000;
output_level = 190000
},
/obj/structure/cable/cyan{
d1 = 4;
d2 = 8;
icon_state = "4-8"
d2 = 1;
icon_state = "0-4"
},
/turf/simulated/floor/plating/eris/under,
/area/aro3/power)
@@ -29561,7 +29544,7 @@ Ua
/turf/simulated/floor/tiled/eris/dark/gray_perforated,
/area/aro3/repair_bay)
"DM" = (
/obj/machinery/gear_dispenser/suit/autolok,
/obj/machinery/gear_dispenser/suit_fancy/autolok,
/turf/simulated/floor/tiled/eris/steel/panels,
/area/aro3/eva_hall)
"DQ" = (
@@ -29849,12 +29832,16 @@ Ua
/turf/simulated/floor/tiled/white,
/area/aro3/suite_starboard_wc)
"Gs" = (
/obj/structure/cable/cyan{
d1 = 2;
d2 = 8;
icon_state = "2-8"
/obj/machinery/power/rtg/kugelblitz{
pixel_y = 10
},
/turf/simulated/floor/plating/eris/under,
/obj/effect/floor_decal/industrial/warning{
dir = 10
},
/obj/structure/cable/cyan{
icon_state = "0-4"
},
/turf/simulated/floor/tiled/eris/white/gray_platform,
/area/aro3/power)
"Gt" = (
/obj/structure/table/steel,
@@ -31060,9 +31047,14 @@ Ua
/area/aro3/surfluid)
"RK" = (
/obj/structure/cable/cyan{
d1 = 1;
d2 = 8;
icon_state = "1-8"
d2 = 1;
icon_state = "0-4"
},
/obj/machinery/power/smes/buildable/hybrid{
input_attempt = 1;
input_level = 250000;
input_level_max = 250000;
output_level = 190000
},
/turf/simulated/floor/plating/eris/under,
/area/aro3/power)
@@ -39831,10 +39823,10 @@ xj
uE
kH
aq
TW
rP
rP
rP
rP
Gs
TW
aq
Fn
yn
@@ -39973,10 +39965,10 @@ xj
uE
Lq
aq
Gs
TW
iZ
mW
RK
TW
aq
Fn
Fn
@@ -40117,7 +40109,7 @@ XQ
aq
TW
wx
qG
wx
TW
aq
aq
@@ -40259,7 +40251,7 @@ NV
aq
qV
wW
wW
RK
TW
TW
aq