diff --git a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm index 4a610709b3b..a8bf4651385 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/oldstation.dmm @@ -521,7 +521,7 @@ "ka" = (/obj/structure/window/reinforced,/turf/simulated/floor/engine/vacuum,/area/ruin/space/ancientstation/atmo) "kb" = (/obj/machinery/atmospherics/unary/tank/air{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation) "kc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation) -"kd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/flare,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation) +"kd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation) "ke" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/deadcockroach,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation) "kf" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered) "kg" = (/obj/structure/closet/crate,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/spray/weedspray,/obj/item/reagent_containers/spray/pestspray,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/ruin/space/ancientstation) @@ -531,7 +531,7 @@ "kk" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo) "kl" = (/turf/simulated/floor/plating/airless,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop) "km" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation) -"kn" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/flare,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation) +"kn" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation) "ko" = (/obj/structure/table,/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/decal/cleanable/dirt,/obj/item/paper/fluff/ruins/oldstation,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation) "kp" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation) "kq" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 8},/obj/item/paper/fluff/ruins/oldstation/protohealth,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 1f0768ba9b0..f05ada14f99 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -128,6 +128,7 @@ #define LIGHT_COLOR_DARKGREEN "#50AB00" #define LIGHT_COLOR_PURE_GREEN "#00FF00" +#define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250) #define LIGHT_COLOR_LIGHTBLUE "#0099FF" #define LIGHT_COLOR_DARKBLUE "#315AB4" #define LIGHT_COLOR_PURE_BLUE "#0000FF" @@ -136,6 +137,8 @@ #define LIGHT_COLOR_PURPLE "#CD00CD" #define LIGHT_COLOR_PINK "#FF33CC" +#define LIGHT_COLOR_YELLOW "#E1E17D" //Dimmed yellow, leaning kaki. rgb(225, 225, 125) + #define LIGHT_COLOR_WHITE "#FFFFFF" #define RESIZE_DEFAULT_SIZE 1 diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index 01d65eb5f93..b9d7d68f14e 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -38,7 +38,7 @@ to_chat(src,"FUCKKK") if(..()) return - to_chat(src,"FUCKKKssss") + to_chat(src, GLOB.mob_spawners.len) var/spawner_ref = pick(GLOB.mob_spawners[href_list["name"]]) var/obj/effect/mob_spawn/MS = locate(spawner_ref) in GLOB.poi_list if(!MS) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index fb1956a56e9..967354605eb 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -9,11 +9,11 @@ slot_flags = SLOT_BELT materials = list(MAT_METAL=50, MAT_GLASS=20) actions_types = list(/datum/action/item_action/toggle_light) - var/on = 0 + var/on = FALSE var/brightness_on = 4 //luminosity when on /obj/item/flashlight/Initialize() - ..() + . = ..() if(on) icon_state = "[initial(icon_state)]-on" set_light(brightness_on) @@ -198,9 +198,10 @@ obj/item/flashlight/lamp/bananalamp // Usual checks if(!fuel) - to_chat(user, "It's out of fuel.") + to_chat(user, "[src] is out of fuel.") return if(on) + to_chat(user, "[src] is already on.") return . = ..() @@ -260,10 +261,11 @@ obj/item/flashlight/lamp/bananalamp /obj/item/flashlight/emp/process() charge_tick++ - if(charge_tick < 10) return 0 + if(charge_tick < 10) + return FALSE charge_tick = 0 emp_cur_charges = min(emp_cur_charges+1, emp_max_charges) - return 1 + return TRUE /obj/item/flashlight/emp/attack(mob/living/M as mob, mob/living/user as mob) if(on && user.zone_sel.selecting == "eyes") // call original attack proc only if aiming at the eyes @@ -299,4 +301,100 @@ obj/item/flashlight/lamp/bananalamp anchored = TRUE var/range = null unacidable = TRUE - burn_state = LAVA_PROOF \ No newline at end of file + burn_state = LAVA_PROOF + +/obj/item/flashlight/glowstick + name = "green glowstick" + desc = "A military-grade glowstick." + w_class = WEIGHT_CLASS_SMALL + brightness_on = 4 + color = LIGHT_COLOR_GREEN + icon_state = "glowstick" + item_state = "glowstick" + var/fuel = 0 + +/obj/item/flashlight/glowstick/Initialize() + fuel = rand(1600, 2000) + light_color = color + . = ..() + +/obj/item/flashlight/glowstick/Destroy() + processing_objects.Remove(src) + . = ..() + +/obj/item/flashlight/glowstick/process() + fuel = max(fuel - 1, 0) + if(!fuel) + turn_off() + processing_objects.Remove(src) + update_icon() + +/obj/item/flashlight/glowstick/proc/turn_off() + on = FALSE + update_icon() + +/obj/item/flashlight/glowstick/update_icon() + item_state = "glowstick" + cut_overlays() + if(!fuel) + icon_state = "glowstick-empty" + cut_overlays() + update_brightness(0) + else if(on) + var/mutable_appearance/glowstick_overlay = mutable_appearance(icon, "glowstick-glow") + glowstick_overlay.color = color + add_overlay(glowstick_overlay) + item_state = "glowstick-on" + update_brightness(brightness_on) + else + icon_state = "glowstick" + cut_overlays() + +/obj/item/flashlight/glowstick/attack_self(mob/user) + if(!fuel) + to_chat(user, "[src] is spent.") + return + if(on) + to_chat(user, "[src] is already lit.") + return + + . = ..() + user.visible_message("[user] cracks and shakes [src].", "You crack and shake [src], turning it on!") + activate() + +/obj/item/flashlight/glowstick/proc/activate() + if(!on) + on = TRUE + processing_objects.Add(src) + update_icon() + +/obj/item/flashlight/glowstick/red + name = "red glowstick" + color = LIGHT_COLOR_RED + +/obj/item/flashlight/glowstick/blue + name = "blue glowstick" + color = LIGHT_COLOR_BLUE + +/obj/item/flashlight/glowstick/orange + name = "orange glowstick" + color = LIGHT_COLOR_ORANGE + +/obj/item/flashlight/glowstick/yellow + name = "yellow glowstick" + color = LIGHT_COLOR_YELLOW + +/obj/item/flashlight/glowstick/pink + name = "pink glowstick" + color = LIGHT_COLOR_PINK + +/obj/item/flashlight/glowstick/random + name = "random colored glowstick" + icon_state = "random_glowstick" + color = null + +/obj/item/flashlight/glowstick/random/Initialize() + ..() + var/T = pick(typesof(/obj/item/flashlight/glowstick) - /obj/item/flashlight/glowstick/random) + new T(loc) + return INITIALIZE_HINT_QDEL diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index bf788f62bc5..8934666fddb 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ