diff --git a/baystation12.dme b/baystation12.dme index b82ce97a578..71891280e30 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -401,6 +401,7 @@ #include "code\game\machinery\kitchen\gibber.dm" #include "code\game\machinery\kitchen\juicer.dm" #include "code\game\machinery\kitchen\microwave.dm" +#include "code\game\machinery\kitchen\monkeyrecycler.dm" #include "code\game\machinery\kitchen\processor.dm" #include "code\game\machinery\kitchen\smartfridge.dm" #include "code\game\machinery\pipe\construction.dm" @@ -592,6 +593,7 @@ #include "code\game\objects\structures\barsign.dm" #include "code\game\objects\structures\bedsheet_bin.dm" #include "code\game\objects\structures\displaycase.dm" +#include "code\game\objects\structures\doccart.dm" #include "code\game\objects\structures\door_assembly.dm" #include "code\game\objects\structures\electricchair.dm" #include "code\game\objects\structures\extinguisher.dm" @@ -760,6 +762,7 @@ #include "code\modules\clothing\shoes\miscellaneous.dm" #include "code\modules\clothing\spacesuits\alien.dm" #include "code\modules\clothing\spacesuits\captain.dm" +#include "code\modules\clothing\spacesuits\civilian.dm" #include "code\modules\clothing\spacesuits\ert.dm" #include "code\modules\clothing\spacesuits\miscellaneous.dm" #include "code\modules\clothing\spacesuits\ninja.dm" @@ -1333,6 +1336,7 @@ #include "code\WorkInProgress\SkyMarshal\officer_stuff.dm" #include "code\WorkInProgress\SkyMarshal\Ultralight_procs.dm" #include "code\WorkInProgress\Susan\susan_desert_turfs.dm" +#include "code\WorkInProgress\ZomgPonies\karma.dm" #include "code\ZAS\Airflow.dm" #include "code\ZAS\Connection.dm" #include "code\ZAS\Debug.dm" @@ -1346,7 +1350,7 @@ #include "code\ZAS\ZAS_Zones.dm" #include "interface\interface.dm" #include "interface\skin.dmf" -#include "maps\tgstation.2.1.0.0.1.dmm" +#include "maps\ponystation.dmm" #include "maps\RandomZLevels\Academy.dm" #include "maps\RandomZLevels\challenge.dm" #include "maps\RandomZLevels\stationCollision.dm" diff --git a/code/game/machinery/kitchen/monkeyrecycler.dm b/code/game/machinery/kitchen/monkeyrecycler.dm new file mode 100644 index 00000000000..f4b373e8eab --- /dev/null +++ b/code/game/machinery/kitchen/monkeyrecycler.dm @@ -0,0 +1,49 @@ +/obj/machinery/monkey_recycler + name = "Monkey Recycler" + desc = "A machine used for recycling dead monkeys into monkey cubes." + icon = 'icons/obj/kitchen.dmi' + icon_state = "grinder" + layer = 2.9 + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 50 + var/grinded = 0 + + +/obj/machinery/monkey_recycler/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (src.stat != 0) //NOPOWER etc + return + if (istype(O, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = O + var/grabbed = G.affecting + if(istype(grabbed, /mob/living/carbon/monkey)) + var/mob/living/carbon/monkey/target = grabbed + if(target.stat == 0) + user << "\red The monkey is struggling far too much to put it in the recycler." + else + user.drop_item() + del(target) + user << "\blue You stuff the monkey in the machine." + playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1) + use_power(500) + src.grinded++ + user << "\blue The machine now has [grinded] monkeys worth of material stored." + + else + user << "\red The machine only accepts monkeys!" + return + +/obj/machinery/monkey_recycler/attack_hand(var/mob/user as mob) + if (src.stat != 0) //NOPOWER etc + return + if(grinded >=5) + user << "\blue The machine hisses loudly as it condenses the grinded monkey meat. After a moment, it dispenses a brand new monkey cube." + playsound(src.loc, 'sound/machines/hiss.ogg', 50, 1) + grinded -= 5 + new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src.loc) + user << "\blue The machine's display flashes that it has [grinded] monkeys worth of material left." + else + user << "\red The machine needs at least 5 monkeys worth of material to produce a monkey cube. It only has [grinded]." + return diff --git a/code/game/objects/structures/doccart.dm b/code/game/objects/structures/doccart.dm new file mode 100644 index 00000000000..9408569a423 --- /dev/null +++ b/code/game/objects/structures/doccart.dm @@ -0,0 +1,120 @@ +/obj/structure/stool/bed/chair/ambulance + name = "ambulance" + icon = 'icons/obj/vehicles.dmi' + icon_state = "docwagon" + anchored = 1 + density = 1 +/var/brightness = 4 +/var/strobe = 0 + + +/obj/structure/stool/bed/chair/ambulance/New() + handle_rotation() + + +/obj/structure/stool/bed/chair/ambulance/examine() + set src in usr + usr << "\icon[src] This is a specially designed ambulance unit for Emergency Medical Personel" + +/obj/structure/stool/bed/chair/janicart/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/key/ambulance)) + user << "Hold [W] in one of your hands while you drive this ambulance so noone steals it from you!." + + +/obj/structure/stool/bed/chair/ambulance/relaymove(mob/user, direction) + if(user.stat || user.stunned || user.weakened || user.paralysis) + unbuckle() + if(istype(user.l_hand, /obj/item/key/ambulance) || istype(user.r_hand, /obj/item/key/ambulance)) + step(src, direction) + update_mob() + handle_rotation() + else + user << "You'll need the keys in one of your hands to drive this ambulance." + +/obj/structure/stool/bed/chair/ambulance/Move() + ..() + if(buckled_mob) + if(buckled_mob.buckled == src) + buckled_mob.loc = loc + +/obj/structure/stool/bed/chair/ambulance/buckle_mob(mob/M, mob/user) + if(M != user || !ismob(M) || get_dist(src, user) > 1 || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon)) + return + + + unbuckle() + M.visible_message(\ + "[M] climbs onto the ambulance!",\ + "You climb onto the ambulance!") + M.buckled = src + M.loc = loc + M.dir = dir + M.update_canmove() + buckled_mob = M + update_mob() + add_fingerprint(user) + strobe = 1 + icon_state = "docwagon2" + return +//Add red strobe effect call to this section + + +/obj/structure/stool/bed/chair/ambulance/unbuckle() + if(buckled_mob) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 0 + strobe = 0 + icon_state = "docwagon" + ..() + +/obj/structure/stool/bed/chair/ambulance/handle_rotation() + if(dir == SOUTH) + layer = FLY_LAYER + else + layer = OBJ_LAYER + + if(buckled_mob) + if(buckled_mob.loc != loc) + buckled_mob.buckled = null //Temporary, so Move() succeeds. + buckled_mob.buckled = src //Restoring + + update_mob() + +/obj/structure/stool/bed/chair/ambulance/proc/update_mob() + if(buckled_mob) + buckled_mob.dir = dir + switch(dir) + if(SOUTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 7 + if(WEST) + buckled_mob.pixel_x = 13 + buckled_mob.pixel_y = 7 + if(NORTH) + buckled_mob.pixel_x = 0 + buckled_mob.pixel_y = 4 + if(EAST) + buckled_mob.pixel_x = -13 + buckled_mob.pixel_y = 7 + +/obj/structure/stool/bed/chair/ambulance/bullet_act(var/obj/item/projectile/Proj) + if(buckled_mob) + if(prob(65)) + return buckled_mob.bullet_act(Proj) + visible_message("[Proj] ricochets off the ambulance!") + +/obj/item/key/ambulance + name = "ambulance key" + desc = "A keyring with a small steel key, and tag with a red cross on it." + icon = 'icons/obj/vehicles.dmi' + icon_state = "keydoc" + w_class = 1 + + + /* +/proc/ambulance/strobelight() +if (strobe) + for ALLTURF(range(1,mob)) + icon = 'icons/turf/areas.dmi' + icon_state = "red" +*/ \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/civilian.dm b/code/modules/clothing/spacesuits/civilian.dm new file mode 100644 index 00000000000..ea89908ba9d --- /dev/null +++ b/code/modules/clothing/spacesuits/civilian.dm @@ -0,0 +1,30 @@ +//Mime's Hardsuit +/obj/item/clothing/head/helmet/space/mime + name = "mime hardsuit helmet" +// icon = 'spaceciv.dmi' + desc = "A hardsuit helmet specifically designed for the mime." + icon_state = "spacemimehelmet" + item_state = "spacemimehelmet" + +obj/item/clothing/suit/space/mime + name = "mime hardsuit" +// icon = 'spaceciv.dmi' + desc = "A hardsuit specifically designed for the mime." + icon_state = "spacemime_suit" + item_state = "spacemime_items" + allowed = list(/obj/item/weapon/tank) + +/obj/item/clothing/head/helmet/space/clown + name = "clown hardsuit helmet" +// icon = 'spaceciv.dmi' + desc = "A hardsuit helmet specifically designed for the clown. SPESSHONK!" + icon_state = "clownhelmet" + item_state = "clownhelmet" + +obj/item/clothing/suit/space/clown + name = "clown hardsuit" +// icon = 'spaceciv.dmi' + desc = "A hardsuit specifically designed for the clown. SPESSHONK!" + icon_state = "spaceclown_suit" + item_state = "spaceclown_items" + allowed = list(/obj/item/weapon/tank) diff --git a/maps/ponystation.dmm b/maps/ponystation.dmm index 428c70a56ba..d222e5a4be5 100644 --- a/maps/ponystation.dmm +++ b/maps/ponystation.dmm @@ -1695,8 +1695,8 @@ "aGE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/turf/simulated/floor,/area/security/checkpoint2) "aGF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/checkpoint2) "aGG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/entry) -"aGH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/map/left,/turf/simulated/wall,/area/maintenance/fpmaint2) -"aGI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/map/right,/turf/simulated/wall,/area/maintenance/fpmaint2) +"aGH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fpmaint2) +"aGI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/fpmaint2) "aGJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/fpmaint2) "aGK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aGL" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -2818,7 +2818,7 @@ "bcj" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "bck" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central) "bcl" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor,/area/crew_quarters/bar) -"bcm" = (/obj/structure/sign/barsign,/turf/simulated/wall,/area/crew_quarters/bar) +"bcm" = (/obj/structure/sign/double/barsign,/turf/simulated/wall,/area/crew_quarters/bar) "bcn" = (/turf/simulated/wall,/area/hallway/primary/starboard) "bco" = (/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) "bcp" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) @@ -7265,8 +7265,8 @@ "cJK" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cJL" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (NORTH)"; icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) "cJM" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cJN" = (/obj/structure/sign/map/left{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"cJO" = (/obj/structure/sign/map/right{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"cJN" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"cJO" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "cJP" = (/obj/structure/table,/obj/machinery/microwave,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cJQ" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/syndicate_mothership) "cJR" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -30; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/centcom/evac)