diff --git a/_maps/map_files/cyberiad/z6.dmm b/_maps/map_files/cyberiad/z6.dmm index cf437b3baff..825ed6d3f0e 100644 --- a/_maps/map_files/cyberiad/z6.dmm +++ b/_maps/map_files/cyberiad/z6.dmm @@ -123,9 +123,11 @@ "cs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "ct" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) +"cv" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/turf/space,/area/space) "cw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/wall,/area/derelict/bridge/access) "cx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cy" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_starboard) +"cz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space) "cA" = (/turf/simulated/floor/plating,/area/derelict/bridge/access) "cB" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge/access) "cC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access) @@ -682,6 +684,18 @@ "nh" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/turf/space,/area/space) "ni" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/space) "nj" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/space) +"nk" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/space) +"nl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space) +"nm" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless,/area/space) +"nn" = (/obj/item/weapon/broken_bottle,/turf/simulated/floor/plasteel/airless,/area/space) +"no" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space) +"np" = (/obj/structure/closet/crate,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/turf/simulated/floor/plasteel/airless,/area/space) +"nq" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/space) +"nr" = (/turf/simulated/floor/plating/airless/asteroid,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) +"ns" = (/obj/structure/closet/crate,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/obj/item/weapon/ore/tranquillite,/turf/simulated/floor/plasteel/airless,/area/space) +"nt" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless/asteroid,/area/space) +"nu" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/space) +"nv" = (/obj/effect/landmark/corpse/mime{name = "Mime Pilot"},/turf/simulated/floor/plasteel/airless,/area/space) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -890,12 +904,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHaaaaaaaamImImImImImIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHaaaamHmHmHmHmHmImImHmHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvcvcvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacznknknknlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamLnnnmncmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamJnonpaznpnqmMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHaaaaaaaamInrnomTnsnsnqnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHaaaamHmHmHmHmHntnvnumHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmImImHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmImIaaaamJmKmKmLmLmKmKmKmKmMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 0dca37a8a35..bfe7c5fcd9d 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -152,14 +152,15 @@ #define MAX_SUPPLIED_LAW_NUMBER 50 //Material defines -#define MAT_METAL "$metal" -#define MAT_GLASS "$glass" -#define MAT_SILVER "$silver" -#define MAT_GOLD "$gold" -#define MAT_DIAMOND "$diamond" -#define MAT_URANIUM "$uranium" -#define MAT_PLASMA "$plasma" -#define MAT_BANANIUM "$bananium" +#define MAT_METAL "$metal" +#define MAT_GLASS "$glass" +#define MAT_SILVER "$silver" +#define MAT_GOLD "$gold" +#define MAT_DIAMOND "$diamond" +#define MAT_URANIUM "$uranium" +#define MAT_PLASMA "$plasma" +#define MAT_BANANIUM "$bananium" +#define MAT_TRANQUILLITE "$tranquillite" #define MAX_STACK_SIZE 50 diff --git a/code/datums/material_container.dm b/code/datums/material_container.dm index 8f84812e49e..499bb8e188e 100644 --- a/code/datums/material_container.dm +++ b/code/datums/material_container.dm @@ -38,6 +38,8 @@ materials[MAT_PLASMA] = new /datum/material/plasma() if(mat_list[MAT_BANANIUM]) materials[MAT_BANANIUM] = new /datum/material/bananium() + if(mat_list[MAT_TRANQUILLITE]) + materials[MAT_TRANQUILLITE] = new /datum/material/tranquillite() /datum/material_container/Destroy() owner = null @@ -262,4 +264,11 @@ /datum/material/bananium/New() ..() material_type = MAT_BANANIUM - sheet_type = /obj/item/stack/sheet/mineral/bananium \ No newline at end of file + sheet_type = /obj/item/stack/sheet/mineral/bananium + +/datum/material/tranquillite + +/datum/material/tranquillite/New() + ..() + material_type = MAT_TRANQUILLITE + sheet_type = /obj/item/stack/sheet/mineral/tranquillite \ No newline at end of file diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index ef39f66cc3e..5cdebbe681d 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -55,83 +55,93 @@ for reference: //Barricades, maybe there will be a metal one later... +/obj/structure/barricade + anchored = 1.0 + density = 1.0 + var/health = 100.0 + var/maxhealth = 100.0 + var/stacktype = /obj/item/stack/sheet/metal + +/obj/structure/barricade/attackby(obj/item/W as obj, mob/user as mob, params) + if (istype(W, stacktype)) + if (src.health < src.maxhealth) + visible_message("\red [user] begins to repair the [src]!") + if(do_after(user,20, target = src)) + src.health = src.maxhealth + W:use(1) + visible_message("\red [user] repairs the [src]!") + return + else + return + return + else if (istype(W, /obj/item/weapon/crowbar)) + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message("[user] is prying apart \the [src].", "You begin to pry apart \the [src].") + playsound(src, 'sound/items/Crowbar.ogg', 200, 1) + + if(do_after(user, 300, target = src) && src && !src.gcDestroyed) + user.visible_message("[user] pries apart \the [src].", "You pry apart \the [src].") + dismantle() + return + else + switch(W.damtype) + if("fire") + src.health -= W.force * 1 + if("brute") + src.health -= W.force * 0.75 + else + if (src.health <= 0) + visible_message("\The [src] is smashed apart!") + dismantle() + ..() + +/obj/structure/barricade/ex_act(severity) + switch(severity) + if(1.0) + visible_message("\The [src] is blown apart!") + qdel(src) + return + if(2.0) + src.health -= 25 + if (src.health <= 0) + visible_message("\The [src] is blown apart!") + dismantle() + return + +/obj/structure/barricade/blob_act() + src.health -= 25 + if (src.health <= 0) + visible_message("\red The blob eats through \the [src]!") + qdel(src) + return + +/obj/structure/barricade/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff. + if(air_group || (height==0)) + return 1 + if(istype(mover) && mover.checkpass(PASSTABLE)) + return 1 + else + return 0 + +/obj/structure/barricade/proc/dismantle() + new stacktype(get_turf(src)) + new stacktype(get_turf(src)) + new stacktype(get_turf(src)) + qdel(src) + /obj/structure/barricade/wooden name = "wooden barricade" desc = "This space is blocked off by a wooden barricade." icon = 'icons/obj/structures.dmi' icon_state = "woodenbarricade" - anchored = 1.0 - density = 1.0 - var/health = 100.0 - var/maxhealth = 100.0 - - attackby(obj/item/W as obj, mob/user as mob, params) - if (istype(W, /obj/item/stack/sheet/wood)) - if (src.health < src.maxhealth) - visible_message("\red [user] begins to repair the [src]!") - if(do_after(user,20, target = src)) - src.health = src.maxhealth - W:use(1) - visible_message("\red [user] repairs the [src]!") - return - else - return - return - else if (istype(W, /obj/item/weapon/crowbar)) - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] is prying apart \the [src].", "You begin to pry apart \the [src].") - playsound(src, 'sound/items/Crowbar.ogg', 200, 1) - - if(do_after(user, 300, target = src) && src && !src.gcDestroyed) - user.visible_message("[user] pries apart \the [src].", "You pry apart \the [src].") - dismantle() - return - else - switch(W.damtype) - if("fire") - src.health -= W.force * 1 - if("brute") - src.health -= W.force * 0.75 - else - if (src.health <= 0) - visible_message("\red The barricade is smashed apart!") - dismantle() - ..() - - ex_act(severity) - switch(severity) - if(1.0) - visible_message("\red The barricade is blown apart!") - qdel(src) - return - if(2.0) - src.health -= 25 - if (src.health <= 0) - visible_message("\red The barricade is blown apart!") - dismantle() - return - - blob_act() - src.health -= 25 - if (src.health <= 0) - visible_message("\red The blob eats through the barricade!") - qdel(src) - return - - CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff. - if(air_group || (height==0)) - return 1 - if(istype(mover) && mover.checkpass(PASSTABLE)) - return 1 - else - return 0 - - proc/dismantle() - new /obj/item/stack/sheet/wood(get_turf(src)) - new /obj/item/stack/sheet/wood(get_turf(src)) - new /obj/item/stack/sheet/wood(get_turf(src)) - qdel(src) + stacktype = /obj/item/stack/sheet/wood +/obj/structure/barricade/mime + name = "floor" + desc = "Is... this a floor?" + icon = 'icons/effects/water.dmi' + icon_state = "wet_floor_static" + stacktype = /obj/item/stack/sheet/mineral/tranquillite //Actual Deployable machinery stuff diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 65880ef5da6..960bc9c3b50 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -261,8 +261,9 @@ mineral = "clown" /obj/machinery/door/airlock/mime - name = "Airlock" + name = "Tranquillite Airlock" icon = 'icons/obj/doors/Doorfreezer.dmi' + mineral = "mime" /obj/machinery/door/airlock/sandstone name = "Sandstone Airlock" diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 9223d7c4428..67a77458916 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -23,7 +23,7 @@ var/const/SAFETY_COOLDOWN = 100 component_parts += new /obj/item/weapon/circuitboard/recycler(null) component_parts += new /obj/item/weapon/stock_parts/matter_bin(null) component_parts += new /obj/item/weapon/stock_parts/manipulator(null) - materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1)) + materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1, MAT_TRANQUILLITE=1)) RefreshParts() update_icon() diff --git a/code/game/mecha/combat/recitence.dm b/code/game/mecha/combat/recitence.dm index d24fb92bb7a..eb197edb1fb 100644 --- a/code/game/mecha/combat/recitence.dm +++ b/code/game/mecha/combat/recitence.dm @@ -5,21 +5,21 @@ initial_icon = "mime" step_in = 2 dir_in = 1 //Facing North. - health = 100 - deflect_chance = 3 + health = 150 + deflect_chance = 30 damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1) max_temperature = 15000 - wreckage = /obj/effect/decal/mecha_wreckage/mime - internal_damage_threshold = 25 - max_equip = 2 + wreckage = /obj/effect/decal/mecha_wreckage/recitence + operation_req_access = list(access_mime) + add_req_access = 0 + internal_damage_threshold = 60 + max_equip = 3 step_energy_drain = 3 -// color = "#87878715" stepsound = null /obj/mecha/combat/recitence/loaded/New() ..() - var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced + var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced ME.attach(src) - ME = new /obj/item/mecha_parts/mecha_equipment/tool/rcd //HAHA IT MAKES WALLS GET IT - ME.attach(src) - return \ No newline at end of file + ME = new /obj/item/mecha_parts/mecha_equipment/tool/mimercd //HAHA IT MAKES WALLS GET IT + ME.attach(src) \ No newline at end of file diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 83e23606fcc..e88dde1d4d6 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -1112,4 +1112,36 @@ scanning = 1 mineral_scan_pulse(occupant,get_turf(loc)) spawn(equip_cooldown) - scanning = 0 \ No newline at end of file + scanning = 0 + + +/obj/item/mecha_parts/mecha_equipment/tool/mimercd + name = "Mounted MRCD" + desc = "An exosuit-mounted Mime Rapid Construction Device. (Can be attached to: Recitence)" + icon_state = "mecha_rcd" + origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4" + equip_cooldown = 10 + energy_drain = 250 + range = MELEE|RANGED + +/obj/item/mecha_parts/mecha_equipment/tool/mimercd/can_attach(obj/mecha/combat/recitence/M as obj) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/tool/mimercd/action(atom/target) + if(istype(target, /turf/space/transit))//>implying these are ever made -Sieve + return + if(!istype(target, /turf) && !istype(target, /obj/machinery/door/airlock)) + target = get_turf(target) + if(!action_checks(target) || get_dist(chassis, target)>3) + return + + if(istype(target, /turf/simulated/floor)) + occupant_message("Building Wall...") + set_ready_state(0) + if(do_after_cooldown(target)) + new /obj/structure/barricade/mime(target) + chassis.spark_system.start() + chassis.use_power(energy_drain*2) \ No newline at end of file diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index b9a499e1ff1..ab9589f73e7 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -160,6 +160,9 @@ spawn(20) if(thingy) walk(thingy,0) + for(var/obj/mecha/combat/recitence/R in oview(6, chassis)) + R.occupant_message("\The [R] has protected you from [chassis]'s HONK at the cost of some power.") + R.use_power(R.get_charge() / 4) chassis.use_power(energy_drain) log_message("Honked from [src.name]. HONK!") @@ -244,15 +247,21 @@ do_after_cooldown() return -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced name = "\improper S.H.H. \"Quietus\" Carbine" fire_sound = "sound/weapons/Gunshot_silenced.ogg" icon_state = "mecha_mime" - equip_cooldown = 30 + equip_cooldown = 15 projectile = /obj/item/projectile/bullet/mime - projectiles = 6 + projectiles = 20 projectile_energy_cost = 50 +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced/can_attach(obj/mecha/combat/recitence/M as obj) + if(..()) + if(istype(M)) + return 1 + return 0 + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot name = "LBX AC 10 \"Scattershot\"" icon_state = "mecha_scatter" diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 9e335de1f07..b77ee7b9cd8 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -16,6 +16,7 @@ MAT_METAL=0, MAT_GLASS=0, MAT_BANANIUM=0, + MAT_TRANQUILLITE=0, MAT_DIAMOND=0, MAT_GOLD=0, MAT_PLASMA=0, @@ -41,6 +42,7 @@ "Gygax", "Durand", "H.O.N.K", + "Recitence", "Phazon", "Exosuit Equipment", "Cyborg Upgrade Modules", @@ -350,7 +352,7 @@ "} - user << browse(dat, "window=mecha_fabricator;size=1000x430") + user << browse(dat, "window=mecha_fabricator;size=1000x490") onclose(user, "mecha_fabricator") return @@ -468,6 +470,8 @@ type = /obj/item/stack/sheet/mineral/uranium if(MAT_BANANIUM) type = /obj/item/stack/sheet/mineral/bananium + if(MAT_TRANQUILLITE) + type = /obj/item/stack/sheet/mineral/tranquillite else return 0 var/result = 0 @@ -521,6 +525,8 @@ material = MAT_GLASS if(/obj/item/stack/sheet/mineral/bananium) material = MAT_BANANIUM + if(/obj/item/stack/sheet/mineral/tranquillite) + material = MAT_TRANQUILLITE if(/obj/item/stack/sheet/mineral/uranium) material = MAT_URANIUM else diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 844ccd978eb..519005f2cc0 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -855,6 +855,83 @@ feedback_inc("mecha_honker_created",1) return +/datum/construction/mecha/recitence_chassis + steps = list(list("key"=/obj/item/mecha_parts/part/recitence_torso),//1 + list("key"=/obj/item/mecha_parts/part/recitence_left_arm),//2 + list("key"=/obj/item/mecha_parts/part/recitence_right_arm),//3 + list("key"=/obj/item/mecha_parts/part/recitence_left_leg),//4 + list("key"=/obj/item/mecha_parts/part/recitence_right_leg),//5 + list("key"=/obj/item/mecha_parts/part/recitence_head) + ) + +/datum/construction/mecha/recitence_chassis/action(atom/used_atom,mob/user as mob) + return check_all_steps(used_atom,user) + +/datum/construction/mecha/recitence_chassis/custom_action(step, atom/used_atom, mob/user) + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") + holder.overlays += used_atom.icon_state + "+o" + qdel(used_atom) + return 1 + +/datum/construction/mecha/recitence_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/mecha/recitence(const_holder) + const_holder.density = 1 + qdel(src) + return + +/datum/construction/mecha/recitence + result = "/obj/mecha/combat/recitence" + steps = list(list("key"=/obj/effect/dummy/mecha_emote_step),//1 + list("key"=/obj/item/clothing/suit/suspenders),//2 + list("key"=/obj/effect/dummy/mecha_emote_step),//3 + list("key"=/obj/item/clothing/mask/gas/mime),//4 + list("key"=/obj/effect/dummy/mecha_emote_step),//5 + list("key"=/obj/item/clothing/head/beret),//6 + list("key"=/obj/item/weapon/circuitboard/mecha/recitence/targeting),//7 + list("key"=/obj/item/weapon/circuitboard/mecha/recitence/peripherals),//8 + list("key"=/obj/item/weapon/circuitboard/mecha/recitence/main),//9 + ) + +/datum/construction/mecha/recitence/action(atom/used_atom,mob/user) + return check_step(used_atom,user) + +/datum/construction/mecha/recitence/custom_action(step, atom/used_atom, mob/user) + if(!..()) + return 0 + + if(istype(used_atom, /obj/effect/dummy/mecha_emote_step)) + var/obj/effect/dummy/mecha_emote_step/E = used_atom + holder.visible_message("[holder] likewise [E.emote]") + qdel(used_atom) + + //TODO: better messages. + switch(step) + if(9) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central control module into the [holder].") + qdel(used_atom) + if(8) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + if(7) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + if(6) + user.visible_message("[user] puts beret on the [holder].", "You put beret on the [holder].") + qdel(used_atom) + if(4) + user.visible_message("[user] puts mime mask on the [holder].", "You put mime mask on the [holder].") + qdel(used_atom) + if(2) + user.visible_message("[user] puts suspenders on the [holder].", "You put suspenders on the [holder].") + qdel(used_atom) + return 1 + +/datum/construction/mecha/recitence/spawn_result() + ..() + feedback_inc("mecha_recitence_created",1) + return + /datum/construction/mecha/durand_chassis steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso),//1 list("key"=/obj/item/mecha_parts/part/durand_left_arm),//2 diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 17876058ab9..880bcdecdff 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -223,6 +223,54 @@ icon_state = "honker_r_leg" +////////// Recitence + +/obj/item/mecha_parts/chassis/recitence + name = "Recitence Chassis" + +/obj/item/mecha_parts/chassis/recitence/New() + ..() + construct = new /datum/construction/mecha/recitence_chassis(src) + +/obj/effect/dummy/mecha_emote_step + var/emote + +/obj/effect/dummy/mecha_emote_step/New(e) + emote = e + +/obj/item/mecha_parts/chassis/recitence/hear_message(mob/living/M, msg) + if(!istype(M) || !istype(construct, /datum/construction/mecha/recitence)) + return + // is the current step the dummy emote object? + var/list/steps = construct.steps + if(steps[steps.len]["key"] == /obj/effect/dummy/mecha_emote_step) + construct.action(new /obj/effect/dummy/mecha_emote_step(msg), M) + +/obj/item/mecha_parts/part/recitence_torso + name = "Recitence Torso" + icon_state = "recitence_harness" + +/obj/item/mecha_parts/part/recitence_head + name = "Recitence Head" + icon_state = "recitence_head" + +/obj/item/mecha_parts/part/recitence_left_arm + name = "Recitence Left Arm" + icon_state = "recitence_l_arm" + +/obj/item/mecha_parts/part/recitence_right_arm + name = "Recitence Right Arm" + icon_state = "recitence_r_arm" + +/obj/item/mecha_parts/part/recitence_left_leg + name = "Recitence Left Leg" + icon_state = "recitence_l_leg" + +/obj/item/mecha_parts/part/recitence_right_leg + name = "Recitence Right Leg" + icon_state = "recitence_r_leg" + + ////////// Phazon /obj/item/mecha_parts/chassis/phazon @@ -333,93 +381,108 @@ throw_speed = 3 throw_range = 15 - ripley - origin_tech = "programming=3" +/obj/item/weapon/circuitboard/mecha/ripley + origin_tech = "programming=3" - ripley/peripherals - name = "Circuit board (Ripley Peripherals Control module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/ripley/peripherals + name = "Circuit board (Ripley Peripherals Control module)" + icon_state = "mcontroller" - ripley/main - name = "Circuit board (Ripley Central Control module)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/ripley/main + name = "Circuit board (Ripley Central Control module)" + icon_state = "mainboard" - gygax - origin_tech = "programming=4" +/obj/item/weapon/circuitboard/mecha/gygax + origin_tech = "programming=4" - gygax/peripherals - name = "Circuit board (Gygax Peripherals Control module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/gygax/peripherals + name = "Circuit board (Gygax Peripherals Control module)" + icon_state = "mcontroller" - gygax/targeting - name = "Circuit board (Gygax Weapon Control and Targeting module)" - icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" +/obj/item/weapon/circuitboard/mecha/gygax/targeting + name = "Circuit board (Gygax Weapon Control and Targeting module)" + icon_state = "mcontroller" + origin_tech = "programming=4;combat=4" - gygax/main - name = "Circuit board (Gygax Central Control module)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/gygax/main + name = "Circuit board (Gygax Central Control module)" + icon_state = "mainboard" - durand - origin_tech = "programming=4" +/obj/item/weapon/circuitboard/mecha/durand + origin_tech = "programming=4" - durand/peripherals - name = "Circuit board (Durand Peripherals Control module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/durand/peripherals + name = "Circuit board (Durand Peripherals Control module)" + icon_state = "mcontroller" - durand/targeting - name = "Circuit board (Durand Weapon Control and Targeting module)" - icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" +/obj/item/weapon/circuitboard/mecha/durand/targeting + name = "Circuit board (Durand Weapon Control and Targeting module)" + icon_state = "mcontroller" + origin_tech = "programming=4;combat=4" - durand/main - name = "Circuit board (Durand Central Control module)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/durand/main + name = "Circuit board (Durand Central Control module)" + icon_state = "mainboard" - phazon - origin_tech = "programming=4" +/obj/item/weapon/circuitboard/mecha/phazon + origin_tech = "programming=4" - phazon/peripherals - name = "Circuit board (Phazon Peripherals Control module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/phazon/peripherals + name = "Circuit board (Phazon Peripherals Control module)" + icon_state = "mcontroller" - phazon/targeting - name = "Circuit board (Phazon Weapon Control and Targeting module)" - icon_state = "mcontroller" - origin_tech = "programming=4;combat=4" +/obj/item/weapon/circuitboard/mecha/phazon/targeting + name = "Circuit board (Phazon Weapon Control and Targeting module)" + icon_state = "mcontroller" + origin_tech = "programming=4;combat=4" - phazon/main - name = "Circuit board (Phazon Central Control module)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/phazon/main + name = "Circuit board (Phazon Central Control module)" + icon_state = "mainboard" - honker - origin_tech = "programming=4" +/obj/item/weapon/circuitboard/mecha/honker + origin_tech = "programming=4" - honker/peripherals - name = "Circuit board (H.O.N.K Peripherals Control module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/honker/peripherals + name = "Circuit board (H.O.N.K Peripherals Control module)" + icon_state = "mcontroller" - honker/targeting - name = "Circuit board (H.O.N.K Weapon Control and Targeting module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/honker/targeting + name = "Circuit board (H.O.N.K Weapon Control and Targeting module)" + icon_state = "mcontroller" - honker/main - name = "Circuit board (H.O.N.K Central Control module)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/honker/main + name = "Circuit board (H.O.N.K Central Control module)" + icon_state = "mainboard" - odysseus - origin_tech = "programming=3" +/obj/item/weapon/circuitboard/mecha/recitence + origin_tech = "programming=4" - odysseus/peripherals - name = "Circuit board (Odysseus Peripherals Control module)" - icon_state = "mcontroller" +/obj/item/weapon/circuitboard/mecha/recitence/peripherals + name = "circuit board (Reticience Peripherals Control module)" + icon_state = "mcontroller" - odysseus/main - name = "Circuit board (Odysseus Central Control module)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/recitence/targeting + name = "circuit board (Reticience Weapon Control and Targeting module)" + icon_state = "mcontroller" - pod - name = "Circuit board (Space Pod Mainboard)" - icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/recitence/main + name = "circuit board (Reticience Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/odysseus + origin_tech = "programming=3" + +/obj/item/weapon/circuitboard/mecha/odysseus/peripherals + name = "Circuit board (Odysseus Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/odysseus/main + name = "Circuit board (Odysseus Central Control module)" + icon_state = "mainboard" + +/obj/item/weapon/circuitboard/mecha/pod + name = "Circuit board (Space Pod Mainboard)" + icon_state = "mainboard" diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index 8287db928f1..647da103a45 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -114,17 +114,13 @@ icon_state = "mauler-broken" desc = "The syndicate won't be very happy about this..." -/obj/effect/decal/mecha_wreckage/mime - name = "Mimech wreckage" - icon_state = "mime-broken" - /obj/effect/decal/mecha_wreckage/seraph name = "Seraph wreckage" icon_state = "seraph-broken" /obj/effect/decal/mecha_wreckage/recitence name = "\improper Recitence wreckage" - icon_state = "recitence-broken" + icon_state = "mime-broken" /obj/effect/decal/mecha_wreckage/ripley name = "Ripley wreckage" diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 9c508c07966..d924a84da2d 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -8,6 +8,7 @@ Mineral Sheets - Gold - Silver - Bananium + - Tranqillite - Enriched Uranium - Platinum - Metallic Hydrogen @@ -62,6 +63,11 @@ var/global/list/datum/stack_recipe/bananium_recipes = list ( \ new/datum/stack_recipe("bananium grenade casing", /obj/item/weapon/grenade/bananade/casing, 4, on_floor = 1), \ ) +var/global/list/datum/stack_recipe/mime_recipes = list ( \ + new/datum/stack_recipe("silent tile", /obj/item/stack/tile/silent, 1, 4, 20), \ + new/datum/stack_recipe("invisible wall", /obj/structure/barricade/mime, 5, one_per_turf = 1, on_floor = 1, time = 50), \ + ) + /obj/item/stack/sheet/mineral force = 5.0 throwforce = 5 @@ -169,6 +175,18 @@ var/global/list/datum/stack_recipe/bananium_recipes = list ( \ ..() recipes = bananium_recipes +/obj/item/stack/sheet/mineral/tranquillite + name = "tranquillite" + singular_name = "beret" + icon_state = "sheet-mime" + origin_tech = "materials=4" + sheettype = "mime" + materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT) + +/obj/item/stack/sheet/mineral/tranquillite/New(var/loc, var/amount=null) + ..() + recipes = mime_recipes + /obj/item/stack/sheet/mineral/enruranium name = "enriched uranium" icon_state = "sheet-enruranium" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 1aaa53457e2..da5d36327f0 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -116,3 +116,12 @@ /obj/item/stack/tile/noslip/loaded amount = 20 +/obj/item/stack/tile/silent + name = "silent tile" + singular_name = "silent floor tile" + desc = "A tile made out of tranquillite, SHHHHHHHHH!" + icon_state = "tile-silent" + origin_tech = "materials=1" + turf_type = /turf/simulated/floor/silent + mineralType = "tranquillite" + materials = list(MAT_TRANQUILLITE=500) \ No newline at end of file diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 4203daca65d..998f6520361 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -17,127 +17,127 @@ obj/structure/door_assembly New() update_state() - door_assembly_com - base_icon_state = "com" - base_name = "Command Airlock" - glass_type = "/glass_command" - airlock_type = "/command" +obj/structure/door_assembly/door_assembly_com + base_icon_state = "com" + base_name = "Command Airlock" + glass_type = "/glass_command" + airlock_type = "/command" - door_assembly_sec - base_icon_state = "sec" - base_name = "Security Airlock" - glass_type = "/glass_security" - airlock_type = "/security" +obj/structure/door_assembly/door_assembly_sec + base_icon_state = "sec" + base_name = "Security Airlock" + glass_type = "/glass_security" + airlock_type = "/security" - door_assembly_eng - base_icon_state = "eng" - base_name = "Engineering Airlock" - glass_type = "/glass_engineering" - airlock_type = "/engineering" +obj/structure/door_assembly/door_assembly_eng + base_icon_state = "eng" + base_name = "Engineering Airlock" + glass_type = "/glass_engineering" + airlock_type = "/engineering" - door_assembly_min - base_icon_state = "min" - base_name = "Mining Airlock" - glass_type = "/glass_mining" - airlock_type = "/mining" +obj/structure/door_assembly/door_assembly_min + base_icon_state = "min" + base_name = "Mining Airlock" + glass_type = "/glass_mining" + airlock_type = "/mining" - door_assembly_atmo - base_icon_state = "atmo" - base_name = "Atmospherics Airlock" - glass_type = "/glass_atmos" - airlock_type = "/atmos" +obj/structure/door_assembly/door_assembly_atmo + base_icon_state = "atmo" + base_name = "Atmospherics Airlock" + glass_type = "/glass_atmos" + airlock_type = "/atmos" - door_assembly_research - base_icon_state = "res" - base_name = "Research Airlock" - glass_type = "/glass_research" - airlock_type = "/research" +obj/structure/door_assembly/door_assembly_research + base_icon_state = "res" + base_name = "Research Airlock" + glass_type = "/glass_research" + airlock_type = "/research" - door_assembly_science - base_icon_state = "sci" - base_name = "Science Airlock" - glass_type = "/glass_science" - airlock_type = "/science" +obj/structure/door_assembly/door_assembly_science + base_icon_state = "sci" + base_name = "Science Airlock" + glass_type = "/glass_science" + airlock_type = "/science" - door_assembly_med - base_icon_state = "med" - base_name = "Medical Airlock" - glass_type = "/glass_medical" - airlock_type = "/medical" +obj/structure/door_assembly/door_assembly_med + base_icon_state = "med" + base_name = "Medical Airlock" + glass_type = "/glass_medical" + airlock_type = "/medical" - door_assembly_mai - base_icon_state = "mai" - base_name = "Maintenance Airlock" - airlock_type = "/maintenance" - glass = -1 +obj/structure/door_assembly/door_assembly_mai + base_icon_state = "mai" + base_name = "Maintenance Airlock" + airlock_type = "/maintenance" + glass = -1 - door_assembly_ext - base_icon_state = "ext" - base_name = "External Airlock" - airlock_type = "/external" - glass = -1 +obj/structure/door_assembly/door_assembly_ext + base_icon_state = "ext" + base_name = "External Airlock" + airlock_type = "/external" + glass = -1 - door_assembly_fre - base_icon_state = "fre" - base_name = "Freezer Airlock" - airlock_type = "/freezer" - glass = -1 +obj/structure/door_assembly/door_assembly_fre + base_icon_state = "fre" + base_name = "Freezer Airlock" + airlock_type = "/freezer" + glass = -1 - door_assembly_hatch - base_icon_state = "hatch" - base_name = "Airtight Hatch" - airlock_type = "/hatch" - glass = -1 +obj/structure/door_assembly/door_assembly_hatch + base_icon_state = "hatch" + base_name = "Airtight Hatch" + airlock_type = "/hatch" + glass = -1 - door_assembly_mhatch - base_icon_state = "mhatch" - base_name = "Maintenance Hatch" - airlock_type = "/maintenance_hatch" - glass = -1 +obj/structure/door_assembly/door_assembly_mhatch + base_icon_state = "mhatch" + base_name = "Maintenance Hatch" + airlock_type = "/maintenance_hatch" + glass = -1 - door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly - base_icon_state = "highsec" - base_name = "High Security Airlock" - airlock_type = "/highsecurity" - glass = -1 +obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly + base_icon_state = "highsec" + base_name = "High Security Airlock" + airlock_type = "/highsecurity" + glass = -1 - door_assembly_shuttle - base_icon_state = "shuttle" - base_name = "shuttle airlock" - airlock_type = "/shuttle" - glass = -1 +obj/structure/door_assembly/door_assembly_shuttle + base_icon_state = "shuttle" + base_name = "shuttle airlock" + airlock_type = "/shuttle" + glass = -1 - multi_tile - icon = 'icons/obj/doors/door_assembly2x1.dmi' - dir = EAST - var/width = 1 +obj/structure/door_assembly/multi_tile + icon = 'icons/obj/doors/door_assembly2x1.dmi' + dir = EAST + var/width = 1 /*Temporary until we get sprites. - glass_type = "/multi_tile/glass" - airlock_type = "/multi_tile/maint" - glass = 1*/ - base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1. - airlock_type = "/multi_tile/glass" - glass = -1 //To prevent bugs in deconstruction process. + glass_type = "/multi_tile/glass" + airlock_type = "/multi_tile/maint" + glass = 1*/ + base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1. + airlock_type = "/multi_tile/glass" + glass = -1 //To prevent bugs in deconstruction process. - New() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size - update_state() +obj/structure/door_assembly/multi_tile/New() + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + update_state() - Move() - . = ..() - if(dir in list(EAST, WEST)) - bound_width = width * world.icon_size - bound_height = world.icon_size - else - bound_width = world.icon_size - bound_height = width * world.icon_size +obj/structure/door_assembly/multi_tile/Move() + . = ..() + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index e48770a177b..1a307361341 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -65,4 +65,11 @@ slowdown = -0.3 /turf/simulated/floor/noslip/MakeSlippery() - return \ No newline at end of file + return + +/turf/simulated/floor/silent + name = "silent floor" + icon_state = "silent" + floor_tile = /obj/item/stack/tile/silent + shoe_running_volume = 0 + shoe_walking_volume = 0 \ No newline at end of file diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index af12a95a3e7..363b7d7b150 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -30,6 +30,8 @@ var/image/obscured //camerachunks var/list/footstep_sounds = list() + var/shoe_running_volume = 50 + var/shoe_walking_volume = 20 /turf/New() ..() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index da0da57bcd4..c6e0c8ed735 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -351,6 +351,8 @@ BLIND // can't see anything slot_flags = SLOT_FEET var/silence_steps = 0 + var/shoe_sound_footstep = 1 + var/shoe_sound = null permeability_coefficient = 0.50 slowdown = SHOES_SLOWDOWN @@ -396,6 +398,25 @@ BLIND // can't see anything else ..() +/obj/item/clothing/shoes/proc/step_action(var/mob/living/carbon/human/H) //squeek squeek + if(shoe_sound) + var/turf/T = get_turf(H) + + if(!istype(H) || !istype(T)) + return 0 + + if(H.m_intent == "run") + if(shoe_sound_footstep >= 2) + if(T.shoe_running_volume) + playsound(src, shoe_sound, T.shoe_running_volume, 1) + shoe_sound_footstep = 0 + else + shoe_sound_footstep++ + else if(T.shoe_walking_volume) + playsound(src, shoe_sound, T.shoe_walking_volume, 1) + + return 1 + /obj/item/proc/negates_gravity() return 0 diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index c7d6c49c1aa..30d5fd021c7 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -1,5 +1,3 @@ -/obj/item/clothing/shoes/proc/step_action(var/mob/living/carbon/human/H) //squeek squeek - /obj/item/clothing/shoes/syndigaloshes desc = "A pair of brown shoes. They seem to have extra grip." name = "brown shoes" @@ -77,18 +75,7 @@ var/footstep = 1 //used for squeeks whilst walking species_restricted = null silence_steps = 1 - -/obj/item/clothing/shoes/clown_shoes/step_action(var/mob/living/carbon/human/H) - if(!istype(H)) return 0 - - if(H.m_intent == "run") - if(footstep >= 2) - playsound(src, "clownstep", 50, 1) - footstep = 0 - else - footstep++ - else - playsound(src, "clownstep", 20, 1) + shoe_sound = "clownstep" /obj/item/clothing/shoes/jackboots name = "jackboots" @@ -101,18 +88,7 @@ put_on_delay = 50 var/footstep = 1 silence_steps = 1 - -/obj/item/clothing/shoes/jackboots/step_action(var/mob/living/carbon/human/H) - if(!istype(H)) return 0 - - if(H.m_intent == "run") - if(footstep >= 2) - playsound(src, "jackboot", 50, 1) - footstep = 0 - else - footstep++ - else - playsound(src, "jackboot", 20, 1) + shoe_sound = "jackboot" /obj/item/clothing/shoes/jackboots/jacksandals name = "jacksandals" @@ -190,6 +166,7 @@ /obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/shoe_silencer)) silence_steps = 1 + shoe_sound = null user.unEquip(I) qdel(I) else . = ..() diff --git a/code/modules/mining/coins.dm b/code/modules/mining/coins.dm index e8103eebba6..e40e9ff77ed 100644 --- a/code/modules/mining/coins.dm +++ b/code/modules/mining/coins.dm @@ -64,6 +64,12 @@ materials = list(MAT_BANANIUM = 400) credits = 600 //makes the clown cri +/obj/item/weapon/coin/mime + cmineral = "tranquillite" + icon_state = "coin_tranquillite_heads" + materials = list(MAT_TRANQUILLITE = 400) + credits = 600 //makes the mime cri + /obj/item/weapon/coin/adamantine cmineral = "adamantine" icon_state = "coin_adamantine_heads" diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 12d35ed6e7e..d6d110d63de 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -19,7 +19,7 @@ var/ore_pickup_rate = 15 var/sheet_per_ore = 1 var/point_upgrade = 1 - var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bananium" = 60)) + var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bananium" = 60), ("tranquillite" = 60)) var/list/supply_consoles = list("Science", "Robotics", "Research Director's Desk", "Mechanic", "Engineering" = list("metal", "glass", "plasma"), "Chief Engineer's Desk" = list("metal", "glass", "plasma"), "Atmospherics" = list("metal", "glass", "plasma"), "Bar" = list("uranium", "plasma")) /obj/machinery/mineral/ore_redemption/New() @@ -721,7 +721,7 @@ speak_emote = list("states") wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, /obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron, - /obj/item/weapon/ore/bananium, /obj/item/weapon/ore/glass) + /obj/item/weapon/ore/bananium, /obj/item/weapon/ore/tranquillite, /obj/item/weapon/ore/glass) /mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/I as obj, mob/user as mob, params) if(istype(I, /obj/item/weapon/weldingtool)) diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 5b6c7633e3e..b5a14e9caa5 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -133,7 +133,7 @@ /obj/machinery/mineral/stacking_machine/laborstacker var/points = 0 //The unclaimed value of ore stacked. Value for each ore loosely relative to its rarity. - var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50)) + var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50), ("tranquillite" = 50)) /obj/machinery/mineral/stacking_machine/laborstacker/proc/get_ore_values() var/dat = "" diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index ece1595eeb6..b83a2001bb0 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -22,7 +22,7 @@ var/dat = "Smelter control console

" //iron - if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_adamantine) + if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_mime || machine.ore_adamantine) if(machine.ore_iron) if (machine.selected_iron==1) dat += text("Smelting ") @@ -102,6 +102,16 @@ else machine.selected_clown = 0 + //tranquillite + if(machine.ore_mime) + if (machine.selected_mime==1) + dat += text("Smelting ") + else + dat += text("Not smelting ") + dat += text("Tranquillite: [machine.ore_mime]
") + else + machine.selected_mime = 0 + //On or off dat += text("Machine is currently ") @@ -160,6 +170,11 @@ machine.selected_clown = 1 else machine.selected_clown = 0 + if(href_list["sel_mime"]) + if (href_list["sel_mime"] == "yes") + machine.selected_mime = 1 + else + machine.selected_mime = 0 if(href_list["set_on"]) if (href_list["set_on"] == "on") machine.on = 1 @@ -178,15 +193,16 @@ density = 1 anchored = 1 var/obj/machinery/mineral/CONSOLE = null - var/ore_gold = 0; - var/ore_silver = 0; - var/ore_diamond = 0; - var/ore_glass = 0; - var/ore_plasma = 0; - var/ore_uranium = 0; - var/ore_iron = 0; - var/ore_clown = 0; - var/ore_adamantine = 0; + var/ore_gold = 0 + var/ore_silver = 0 + var/ore_diamond = 0 + var/ore_glass = 0 + var/ore_plasma = 0 + var/ore_uranium = 0 + var/ore_iron = 0 + var/ore_clown = 0 + var/ore_mime = 0 + var/ore_adamantine = 0 var/selected_gold = 0 var/selected_silver = 0 var/selected_diamond = 0 @@ -195,20 +211,21 @@ var/selected_uranium = 0 var/selected_iron = 0 var/selected_clown = 0 + var/selected_mime = 0 var/on = 0 //0 = off, 1 =... oh you know! /obj/machinery/mineral/processing_unit/process() var/i for (i = 0; i < 10; i++) if (on) - if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_glass > 0) ore_glass--; generate_mineral(/obj/item/stack/sheet/glass) else on = 0 continue - if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0) if (ore_glass > 0 && ore_iron > 0) ore_glass--; ore_iron--; @@ -216,49 +233,49 @@ else on = 0 continue - if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_gold > 0) ore_gold--; generate_mineral(/obj/item/stack/sheet/mineral/gold) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_silver > 0) ore_silver--; generate_mineral(/obj/item/stack/sheet/mineral/silver) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_diamond > 0) ore_diamond--; generate_mineral(/obj/item/stack/sheet/mineral/diamond) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_plasma > 0) ore_plasma--; generate_mineral(/obj/item/stack/sheet/mineral/plasma) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_uranium > 0) ore_uranium--; generate_mineral(/obj/item/stack/sheet/mineral/uranium) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0) if (ore_iron > 0) ore_iron--; generate_mineral(/obj/item/stack/sheet/metal) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0) if (ore_iron > 0 && ore_plasma > 0) ore_iron--; ore_plasma--; @@ -266,16 +283,23 @@ else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1 && selected_mime == 0) if (ore_clown > 0) ore_clown--; generate_mineral(/obj/item/stack/sheet/mineral/bananium) else on = 0 continue + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 1) + if (ore_mime > 0) + ore_mime--; + generate_mineral(/obj/item/stack/sheet/mineral/tranquillite) + else + on = 0 + continue //THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT. //They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage - /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) + /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_uranium >= 2 && ore_diamond >= 1) ore_uranium -= 2 ore_diamond -= 1 @@ -283,7 +307,7 @@ else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0) if (ore_silver >= 1 && ore_plasma >= 3) ore_silver -= 1 ore_plasma -= 3 @@ -324,6 +348,9 @@ if (selected_clown == 1) if (ore_clown <= 0) b = 0 + if (selected_mime == 1) + if (ore_mime <= 0) + b = 0 if (b) //if they are, deduct one from each, produce slag and shut the machine off if (selected_gold == 1) @@ -340,6 +367,8 @@ ore_iron-- if (selected_clown == 1) ore_clown-- + if (selected_mime == 1) + ore_mime-- generate_mineral(/obj/item/weapon/ore/slag) on = 0 else @@ -387,6 +416,10 @@ ore_clown++ O.loc = null continue + if (istype(O,/obj/item/weapon/ore/tranquillite)) + ore_mime++ + O.loc = null + continue unload_mineral(O) /obj/machinery/mineral/processing_unit/proc/generate_mineral(var/P) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 60108127dd3..fe31649e6d3 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -133,6 +133,8 @@ var/global/list/rockTurfEdgeCache M = new/turf/simulated/mineral/gibtonite(src) if("Bananium") M = new/turf/simulated/mineral/clown(src) + if("Tranquillite") + M = new/turf/simulated/mineral/mime(src) if("BScrystal") M = new/turf/simulated/mineral/bscrystal(src) if(M) @@ -156,7 +158,7 @@ var/global/list/rockTurfEdgeCache mineralSpawnChanceList = list( "Uranium" = 35, "Diamond" = 2, "Gold" = 5, "Silver" = 5, "Plasma" = 25, - "Iron" = 30, "Clown" = 15, "BScrystal" = 10) + "Iron" = 30, "Bananium" = 15, "Tranquillite" = 15, "BScrystal" = 10) /turf/simulated/mineral/random/high_chance/New() icon_state = "rock" @@ -239,6 +241,15 @@ var/global/list/rockTurfEdgeCache spread = 0 hidden = 0 +/turf/simulated/mineral/mime + name = "tranquillite deposit" + icon_state = "rock_Mime" + mineralType = /obj/item/weapon/ore/tranquillite + mineralAmt = 3 + spreadChance = 0 + spread = 0 + hidden = 0 + /turf/simulated/mineral/bscrystal name = "bluespace crystal deposit" icon_state = "rock_BScrystal" diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index b3eb6cbe7f5..51d28af42dd 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -14,6 +14,7 @@ var/amt_plasma = 0 var/amt_uranium = 0 var/amt_clown = 0 + var/amt_mime = 0 var/amt_adamantine = 0 var/amt_mythril = 0 var/newCoins = 0 //how many coins the machine made in it's last load @@ -46,6 +47,9 @@ if (istype(O, /obj/item/stack/sheet/mineral/bananium)) amt_clown += 100 * O.amount O.loc = null + if (istype(O, /obj/item/stack/sheet/mineral/tranquillite)) + amt_mime += 100 * O.amount + O.loc = null return @@ -78,7 +82,7 @@ dat += text("chosen") else dat += text("Choose") - dat += text("
uranium inserted: [amt_uranium] ") + dat += text("
Uranium inserted: [amt_uranium] ") if (chosen == "uranium") dat += text("chosen") else @@ -89,6 +93,12 @@ dat += text("chosen") else dat += text("Choose") + if(amt_mime > 0) + dat += text("
Tranquillite inserted: [amt_mime] ") + if (chosen == "mime") + dat += text("chosen") + else + dat += text("Choose") dat += text("
Adamantine inserted: [amt_adamantine] ")//I don't even know these color codes, so fuck it. if (chosen == "adamantine") dat += text("chosen") @@ -132,7 +142,7 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) if("gold") while(amt_gold > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/gold) @@ -140,7 +150,7 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) if("silver") while(amt_silver > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/silver) @@ -148,7 +158,7 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) if("diamond") while(amt_diamond > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/diamond) @@ -156,7 +166,7 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) if("plasma") while(amt_plasma > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/plasma) @@ -164,7 +174,7 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) if("uranium") while(amt_uranium > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/uranium) @@ -180,7 +190,15 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) + if("mime") + while(amt_mime > 0 && coinsToProduce > 0) + create_coins(/obj/item/weapon/coin/mime) + amt_mime -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5) if("adamantine") while(amt_adamantine > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/adamantine) @@ -188,7 +206,7 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) if("mythril") while(amt_adamantine > 0 && coinsToProduce > 0) create_coins(/obj/item/weapon/coin/mythril) @@ -196,9 +214,9 @@ coinsToProduce-- newCoins++ src.updateUsrDialog() - sleep(5); + sleep(5) icon_state = "coinpress0" - processing = 0; + processing = 0 coinsToProduce = temp_coins src.updateUsrDialog() return diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 6461b5dc93d..079a75341d6 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -17,25 +17,28 @@ var/amt_plasma = 0 var/amt_uranium = 0 var/amt_clown = 0 + var/amt_mime = 0 var/amt_adamantine = 0 for (var/obj/item/weapon/coin/C in contents) if (istype(C,/obj/item/weapon/coin/diamond)) - amt_diamond++; + amt_diamond++ if (istype(C,/obj/item/weapon/coin/plasma)) - amt_plasma++; + amt_plasma++ if (istype(C,/obj/item/weapon/coin/iron)) - amt_iron++; + amt_iron++ if (istype(C,/obj/item/weapon/coin/silver)) - amt_silver++; + amt_silver++ if (istype(C,/obj/item/weapon/coin/gold)) - amt_gold++; + amt_gold++ if (istype(C,/obj/item/weapon/coin/uranium)) - amt_uranium++; + amt_uranium++ if (istype(C,/obj/item/weapon/coin/clown)) - amt_clown++; + amt_clown++ + if (istype(C,/obj/item/weapon/coin/mime)) + amt_mime++ if (istype(C,/obj/item/weapon/coin/adamantine)) - amt_adamantine++; + amt_adamantine++ var/dat = text("The contents of the moneybag reveal...
") if (amt_gold) @@ -52,6 +55,8 @@ dat += text("Uranium coins: [amt_uranium] Remove one
") if (amt_clown) dat += text("Bananium coins: [amt_clown] Remove one
") + if (amt_mime) + dat += text("Tranquillite coins: [amt_mime] Remove one
") if (amt_adamantine) dat += text("Adamantine coins: [amt_adamantine] Remove one
") user << browse("[dat]", "window=moneybag") @@ -93,6 +98,8 @@ COIN = locate(/obj/item/weapon/coin/uranium,src.contents) if("clown") COIN = locate(/obj/item/weapon/coin/clown,src.contents) + if("mime") + COIN = locate(/obj/item/weapon/coin/mime,src.contents) if("adamantine") COIN = locate(/obj/item/weapon/coin/adamantine,src.contents) if(!COIN) diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index db4bcf21859..056432c1892 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -130,6 +130,14 @@ refined_type = /obj/item/stack/sheet/mineral/bananium materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) +/obj/item/weapon/ore/tranquillite + name = "tranquillite ore" + icon_state = "Mime ore" + origin_tech = "materials=4" + points = 60 + refined_type = /obj/item/stack/sheet/mineral/tranquillite + materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT) + /obj/item/weapon/ore/slag name = "slag" desc = "Completely useless" diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 0cd4e62e4d7..166c05e10c6 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -31,25 +31,28 @@ var/amt_plasma = 0 var/amt_uranium = 0 var/amt_clown = 0 + var/amt_mime = 0 var/amt_bluespace = 0 for (var/obj/item/weapon/ore/C in contents) if (istype(C,/obj/item/weapon/ore/diamond)) - amt_diamond++; + amt_diamond++ if (istype(C,/obj/item/weapon/ore/glass)) - amt_glass++; + amt_glass++ if (istype(C,/obj/item/weapon/ore/plasma)) - amt_plasma++; + amt_plasma++ if (istype(C,/obj/item/weapon/ore/iron)) - amt_iron++; + amt_iron++ if (istype(C,/obj/item/weapon/ore/silver)) - amt_silver++; + amt_silver++ if (istype(C,/obj/item/weapon/ore/gold)) - amt_gold++; + amt_gold++ if (istype(C,/obj/item/weapon/ore/uranium)) - amt_uranium++; + amt_uranium++ if (istype(C,/obj/item/weapon/ore/bananium)) - amt_clown++; + amt_clown++ + if (istype(C,/obj/item/weapon/ore/tranquillite)) + amt_mime++ if (istype(C,/obj/item/weapon/ore/bluespace_crystal)) amt_bluespace++ @@ -70,6 +73,8 @@ dat += text("Uranium ore: [amt_uranium]
") if (amt_clown) dat += text("Bananium ore: [amt_clown]
") + if (amt_mime) + dat += text("Tranquillite ore: [amt_mime]
") if (amt_bluespace) dat += text("Bluespace crystals: [amt_bluespace]
") diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 95ee1616972..74c76842e55 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -160,15 +160,23 @@ /obj/item/projectile/bullet/mime - damage = 20 + damage = 0 + stun = 5 + weaken = 5 + slur = 20 + stutter = 20 /obj/item/projectile/bullet/mime/on_hit(var/atom/target, var/blocked = 0) - if(istype(target, /mob/living/carbon)) - var/mob/living/carbon/M = target - M.silent = max(M.silent, 10) - - - + ..(target, blocked) + if(istype(target, /mob/living/carbon)) + var/mob/living/carbon/M = target + M.silent = max(M.silent, 10) + else if(istype(target, /obj/mecha/combat/honker)) + var/obj/mecha/chassis = target + chassis.occupant_message("A mimetech anti-honk bullet has hit \the [chassis]!") + chassis.use_power(chassis.get_charge() / 2) + for(var/obj/item/mecha_parts/mecha_equipment/weapon/honker in chassis.equipment) + honker.set_ready_state(0) /obj/item/projectile/bullet/dart name = "dart" diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 99b9339cd97..773f345645a 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -819,6 +819,7 @@ /obj/item/stack/sheet/mineral/plasma = list("plasma" = 20), /obj/item/stack/sheet/mineral/uranium = list("uranium" = 20), /obj/item/stack/sheet/mineral/bananium = list("banana" = 20), + /obj/item/stack/sheet/mineral/tranquillite = list("nothing" = 20), /obj/item/stack/sheet/mineral/silver = list("silver" = 20), /obj/item/stack/sheet/mineral/gold = list("gold" = 20), /obj/item/weapon/grown/novaflower = list("capsaicin" = 0), diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 21b0c070512..de5c02fa4a7 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -17,6 +17,7 @@ The currently supporting non-reagent materials: - MAT_URANIUM (/obj/item/stack/uranium). - MAT_DIAMOND (/obj/item/stack/diamond). - MAT_BANANIUM (/obj/item/stack/bananium). +- MAT_TRANQUILLITE (/obj/item/stack/tranquillite). (Insert new ones here) Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials. diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index 842fde52857..15e2fb66056 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -166,3 +166,33 @@ materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting category = list("Exosuit Modules") + +/datum/design/recitence_main + name = "Exosuit Module (\"Recitence\" Central Control module)" + desc = "Allows for the construction of a \"Recitence\" Central Control module." + id = "recitence_main" + req_tech = list("programming" = 3) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/recitence/main + category = list("Exosuit Modules") + +/datum/design/recitence_peri + name = "Exosuit Module (\"Recitence\" Peripherals Control module)" + desc = "Allows for the construction of a \"Recitence\" Peripheral Control module." + id = "recitence_peri" + req_tech = list("programming" = 3) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/recitence/peripherals + category = list("Exosuit Modules") + +/datum/design/recitence_targ + name = "Exosuit Module (\"Recitence\" Weapons & Targeting Control module)" + desc = "Allows for the construction of a \"Recitence\" Weapons & Targeting Control module." + id = "recitence_targ" + req_tech = list("programming" = 3) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/recitence/targeting + category = list("Exosuit Modules") \ No newline at end of file diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 227cd4618a4..65b398b41bd 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -459,6 +459,70 @@ construction_time = 200 category = list("H.O.N.K") +//Recitence +/datum/design/recitence_chassis + name = "Exosuit Chassis (\"Recitence\")" + id = "recitence_chassis" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/chassis/recitence + materials = list(MAT_METAL=20000) + construction_time = 100 + category = list("Recitence") + +/datum/design/recitence_torso + name = "Exosuit Torso (\"Recitence\")" + id = "recitence_torso" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/recitence_torso + materials = list(MAT_METAL=20000,MAT_GLASS=10000,MAT_TRANQUILLITE=10000) + construction_time = 300 + category = list("Recitence") + +/datum/design/recitence_head + name = "Exosuit Head (\"Recitence\")" + id = "recitence_head" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/recitence_head + materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_TRANQUILLITE=5000) + construction_time = 200 + category = list("Recitence") + +/datum/design/recitence_left_arm + name = "Exosuit Left Arm (\"Recitence\")" + id = "recitence_left_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/recitence_left_arm + materials = list(MAT_METAL=15000,MAT_TRANQUILLITE=5000) + construction_time = 200 + category = list("Recitence") + +/datum/design/recitence_right_arm + name = "Exosuit Right Arm (\"Recitence\")" + id = "recitence_right_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/recitence_right_arm + materials = list(MAT_METAL=15000,MAT_TRANQUILLITE=5000) + construction_time = 200 + category = list("Recitence") + +/datum/design/recitence_left_leg + name = "Exosuit Left Leg (\"Recitence\")" + id = "recitence_left_leg" + build_type = MECHFAB + build_path =/obj/item/mecha_parts/part/recitence_left_leg + materials = list(MAT_METAL=20000,MAT_TRANQUILLITE=5000) + construction_time = 200 + category = list("Recitence") + +/datum/design/recitence_right_leg + name = "Exosuit Right Leg (\"Recitence\")" + id = "recitence_right_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/recitence_right_leg + materials = list(MAT_METAL=20000,MAT_TRANQUILLITE=5000) + construction_time = 200 + category = list("Recitence") + //Phazon /datum/design/phazon_chassis name = "Exosuit Chassis (\"Phazon\")" @@ -641,6 +705,25 @@ construction_time = 300 category = list("Exosuit Equipment") +/datum/design/mech_silentgun + name = "S.H.H. \"Quietus\" Carbine" + id = "mech_silentgun" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced + materials = list(MAT_METAL=20000,MAT_TRANQUILLITE=10000) + construction_time = 500 + category = list("Exosuit Equipment") + +/datum/design/mech_mimercd + name = "Exosuit Module (Mime RCD Module)" + desc = "An exosuit-mounted Mime Rapid Construction Device." + id = "mech_mrcd" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/mecha_equipment/tool/mimercd + materials = list(MAT_METAL=30000,MAT_TRANQUILLITE=10000) + construction_time = 700 + category = list("Exosuit Equipment") + // Exosuit Modules /datum/design/mech_diamond_drill name = "Exosuit Module (Diamond Mining Drill)" diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 017bf478bd4..fc56a079ba1 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -90,6 +90,8 @@ proc/CallMaterialName(ID) return_name = "Diamond" if("clown") return_name = "Bananium" + if("mime") + return_name = "Tranquillite" else for(var/R in subtypesof(/datum/reagent)) temp_reagent = null @@ -535,6 +537,8 @@ proc/CallMaterialName(ID) MAT = MAT_DIAMOND if("clown") MAT = MAT_BANANIUM + if("mime") + MAT = "Tranquillite" linked_lathe.materials.retrieve_sheets(desired_num_sheets, MAT) else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the protolathe to eject a sheet of material @@ -1011,6 +1015,15 @@ proc/CallMaterialName(ID) if(bananium_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "5x " if(bananium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "All" dat += "" + //Tranquillite + var/tranquillite_amount = linked_lathe.materials.amount(MAT_TRANQUILLITE) + dat += "* [tranquillite_amount] of Tranquillite, [round(tranquillite_amount / MINERAL_MATERIAL_AMOUNT,0.1)] sheets: " + if(tranquillite_amount >= MINERAL_MATERIAL_AMOUNT) + dat += "Eject " + dat += "C " + if(tranquillite_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "5x " + if(tranquillite_amount >= MINERAL_MATERIAL_AMOUNT) dat += "All" + dat += "" if(3.3) dat += "Main Menu" diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index 1d3ec18d429..8d97261c9bb 100644 Binary files a/icons/mecha/mech_construct.dmi and b/icons/mecha/mech_construct.dmi differ diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi index a4e033f21d9..db174eb329f 100644 Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index a5af5cd486d..7229e0089df 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 6d610867f38..abd43759c94 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 8e7e4d25454..bcc533187b2 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/mining.dmi b/icons/turf/mining.dmi index 855567b89ed..fb5d8fd62aa 100644 Binary files a/icons/turf/mining.dmi and b/icons/turf/mining.dmi differ