diff --git a/_maps/map_files/Drought/Drought.dmm b/_maps/map_files/Drought/Drought.dmm index 7e8a992305f..3af2b948cf2 100644 --- a/_maps/map_files/Drought/Drought.dmm +++ b/_maps/map_files/Drought/Drought.dmm @@ -4917,6 +4917,12 @@ /obj/effect/landmark/start/ms13/wastelander, /turf/open/floor/plating/ms13/ground/desertalt, /area/ms13/desert) +"eBK" = ( +/obj/structure/ms13/trash/wood{ + dir = 8 + }, +/turf/open/floor/plating/ms13/ground/desert, +/area/ms13/desert) "eCL" = ( /obj/structure/chair/ms13/overlaypickup/plastic, /obj/structure/ms13/wall_decor/clock, @@ -9663,6 +9669,10 @@ /obj/structure/ms13/sandbag, /turf/open/floor/plating/ms13/ground/desert, /area/ms13/water_baron) +"juW" = ( +/obj/effect/spawner/random/ms13/currency/drought/tier2, +/turf/open/floor/plating/ms13/ground/desert, +/area/ms13/desert) "jvp" = ( /obj/effect/turf_decal/ms13/covering/tiles/white, /obj/effect/turf_decal/ms13/graffiti/aid, @@ -16459,9 +16469,9 @@ /turf/open/floor/wood/ms13/common, /area/ms13/town) "qbr" = ( -/obj/effect/turf_decal/ms13/graffiti/stop, -/turf/closed/wall/ms13/concrete, -/area/ms13/town) +/obj/effect/spawner/random/ms13/minefield, +/turf/open/floor/plating/ms13/ground/desertalt, +/area/ms13/desert) "qbJ" = ( /obj/structure/ms13/trash/cardboard{ dir = 8 @@ -16798,7 +16808,7 @@ /turf/open/floor/plating/ms13/ground/desert, /area/ms13/desert) "qpO" = ( -/obj/effect/turf_decal/ms13/graffiti/many_eyes, +/obj/effect/turf_decal/ms13/graffiti/skullbones, /turf/closed/wall/ms13/concrete, /area/ms13/town) "qpP" = ( @@ -20653,11 +20663,11 @@ /turf/open/floor/wood/ms13/wide, /area/ms13/town) "ucI" = ( -/obj/structure/ms13/trash/wood{ - dir = 8 +/obj/effect/turf_decal/ms13/graffiti/mines{ + dir = 1 }, -/turf/closed/indestructible/rock/ms13/drought, -/area/ms13/underground/mountain) +/turf/open/floor/plating/ms13/ground/sidewalk, +/area/ms13/desert) "ucN" = ( /obj/structure/railing/ms13/wood{ dir = 8 @@ -22398,6 +22408,10 @@ /obj/effect/spawner/random/ms13/crafting/lowrandom, /turf/open/floor/ms13/concrete, /area/ms13/town) +"vRY" = ( +/obj/structure/ms13/sign/mine, +/turf/open/floor/plating/ms13/ground/desert, +/area/ms13/desert) "vSu" = ( /obj/machinery/light/ms13/bulb{ dir = 1 @@ -23758,6 +23772,10 @@ /obj/structure/ms13/pipes/vertical/east/valve, /turf/open/floor/ms13/concrete/industrial, /area/ms13/town) +"xxm" = ( +/obj/effect/spawner/random/ms13/minefield, +/turf/open/floor/plating/ms13/ground/desert, +/area/ms13/desert) "xxC" = ( /obj/effect/turf_decal/ms13/graffiti/die_young, /turf/open/floor/ms13/tile/full/black, @@ -24713,7 +24731,7 @@ blm blm blm blm -ucI +blm blm blm blm @@ -24916,7 +24934,7 @@ blm blm blm blm -oSs +eBK oSs oSs oSs @@ -25714,7 +25732,7 @@ oSs oSs oSs oSs -oSs +xxm oSs oSs oSs @@ -25924,7 +25942,7 @@ oSs oSs oSs oSs -oSs +xxm oSs oSs oSs @@ -26121,7 +26139,7 @@ oSs oSs oSs oSs -oSs +dfe oSs oSs oSs @@ -26520,7 +26538,7 @@ oSs oSs oSs oSs -ktX +hgp oSs oSs oSs @@ -26722,13 +26740,13 @@ oSs oSs oSs oSs -hgp -oSs +qbr oSs oSs oSs oSs oSs +xxm oSs oSs oSs @@ -28329,7 +28347,7 @@ gwb lRa jJD gwb -jJD +pXu jJD jJD jJD @@ -28534,8 +28552,7 @@ nRU jJD jJD oIS -pXu -oSs +ucI oSs oSs oSs @@ -28549,6 +28566,7 @@ oSs oSs oSs oSs +vRY oSs oSs oSs @@ -28938,11 +28956,11 @@ wIP eIm jJD jJD -qbr +wIP hgp hgp oSs -oSs +xxm oSs oSs oSs @@ -29149,7 +29167,7 @@ oSs oSs oSs oSs -oSs +xxm oSs oSs oSs @@ -29544,7 +29562,7 @@ wIP wIP jMj wIP -wIP +qpO hgp hgp oSs @@ -29746,7 +29764,7 @@ gyR dZS crx pIT -qpO +wIP hgp hgp oSs @@ -29955,13 +29973,13 @@ oSs oSs oSs oSs +xxm oSs oSs oSs oSs oSs -oSs -oSs +xxm oSs oSs hgp @@ -30160,7 +30178,7 @@ oSs oSs oSs oSs -oSs +juW oSs oSs oSs @@ -30356,7 +30374,7 @@ wIP hgp hgp oSs -oSs +xxm oSs oSs oSs diff --git a/_maps/map_files/Drought/Drought_below.dmm b/_maps/map_files/Drought/Drought_below.dmm index 4914ef9d96e..2617d785be8 100644 --- a/_maps/map_files/Drought/Drought_below.dmm +++ b/_maps/map_files/Drought/Drought_below.dmm @@ -262,7 +262,6 @@ "ce" = ( /obj/structure/closet/crate/ms13/woodcrate/compact/army, /obj/effect/spawner/random/ms13/power_armor/parts, -/obj/effect/spawner/random/ms13/power_armor/parts, /turf/open/floor/ms13/concrete/industrial, /area/ms13/town) "ci" = ( @@ -1771,8 +1770,7 @@ /area/ms13/town) "lK" = ( /obj/structure/closet/crate/ms13/woodcrate/compact/army, -/obj/effect/spawner/random/ms13/melee/highrandom, -/obj/effect/spawner/random/ms13/gun/tier3, +/obj/effect/spawner/random/ms13/gun/highrandom, /turf/open/floor/ms13/concrete/industrial, /area/ms13/town) "lL" = ( @@ -2395,7 +2393,7 @@ dir = 1 }, /obj/structure/ms13/pa_jack, -/obj/effect/spawner/random/ms13/power_armor/highrandom, +/obj/effect/spawner/random/ms13/power_armor/lowrandom, /turf/open/floor/ms13/concrete/industrial, /area/ms13/town) "qd" = ( @@ -7054,7 +7052,7 @@ "VN" = ( /obj/structure/closet/crate/ms13/woodcrate/compact/army, /obj/effect/spawner/random/ms13/clothing/backpack/high, -/obj/effect/spawner/random/ms13/gun/highrandom, +/obj/effect/spawner/random/ms13/gun/lowrandom, /turf/open/floor/ms13/concrete/industrial, /area/ms13/town) "VU" = ( @@ -43681,7 +43679,7 @@ uD vu UP zG -SN +VU uc vu vu @@ -44084,7 +44082,7 @@ uD uD vu GZ -nG +VU VU VU wX diff --git a/mojave/code/game/objects/traps/mine.dm b/mojave/code/game/objects/traps/mine.dm deleted file mode 100644 index 5471248badf..00000000000 --- a/mojave/code/game/objects/traps/mine.dm +++ /dev/null @@ -1,78 +0,0 @@ - -/obj/effect/mine/ms13/explosive - name = "Frag" - icon_state = "frag_primed" - var/inactive_state = "frag_armed" - /// The devastation range of the resulting explosion. - var/range_devastation = 0 - /// The heavy impact range of the resulting explosion. - var/range_heavy = 1 - /// The light impact range of the resulting explosion. - var/range_light = 2 - /// The flame range of the resulting explosion. - var/range_flame = 0 - /// The flash range of the resulting explosion. - var/range_flash = 3 - - arm_delay = 5 SECONDS - -/obj/effect/mine/ms13/explosive/Initialize(mapload) - . = ..() - if(arm_delay) - armed = FALSE - icon_state = inactive_state - addtimer(CALLBACK(src, PROC_REF(now_armed)), arm_delay) - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/effect/mine/ms13/explosive/examine(mob/user) - . = ..() - if(!armed) - . += "\tIt appears to be inactive..." - -/// The effect of the mine -/obj/effect/mine/ms13/explosive/mineEffect(mob/victim) - explosion(src, range_devastation, range_heavy, range_light, range_flame, range_flash) - -/// If the landmine was previously inactive, this beeps and displays a message marking it active -/obj/effect/mine/ms13/explosive/now_armed() - armed = TRUE - icon_state = initial(icon_state) - playsound(src, 'mojave/sound/ms13machines/frag_mine_arm.ogg', 40, FALSE, -2) - visible_message(span_danger("\The [src] beeps softly, indicating it is now active."), vision_distance = COMBAT_MESSAGE_RANGE) - -/obj/effect/mine/ms13/explosive/on_entered(datum/source, atom/movable/AM) - . = ..() - -/obj/effect/mine/ms13/explosive/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) - . = ..() - triggermine() - -/// When something sets off a mine -/obj/effect/mine/ms13/explosive/triggermine(atom/movable/triggerer) - if(iseffect(triggerer)) - return - if(triggered) //too busy detonating to detonate again - return - if(triggerer) - visible_message(span_danger("[triggerer] sets off [icon2html(src, viewers(src))] [src]!")) - else - visible_message(span_danger("[icon2html(src, viewers(src))] [src] detonates!")) - - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - if(ismob(triggerer)) - mineEffect(triggerer) - triggered = TRUE - SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED, triggerer) - qdel(src) - -/obj/effect/spawner/random/ms13/explosive_mines - name = "Explosive mines" - spawn_loot_chance = 50 - loot = list( - /obj/effect/mine/ms13/explosive - ) diff --git a/mojave/code/game/objects/traps/ms13_traps.dm b/mojave/code/game/objects/traps/ms13_traps.dm index 18f6b326dc0..597677d2987 100644 --- a/mojave/code/game/objects/traps/ms13_traps.dm +++ b/mojave/code/game/objects/traps/ms13_traps.dm @@ -1,2 +1,93 @@ /obj/effect/mine/ms13 icon = 'mojave/icons/objects/ms_traps.dmi' + +/obj/effect/mine/ms13/explosive + name = "explosive mine" + desc = "Looks incredibly dangerous..." + icon_state = "frag_primed" + var/inactive_state = "frag_armed" + /// The devastation range of the resulting explosion. + var/range_devastation = 0 + /// The heavy impact range of the resulting explosion. + var/range_heavy = 1 + /// The light impact range of the resulting explosion. + var/range_light = 2 + /// The flame range of the resulting explosion. + var/range_flame = 0 + /// The flash range of the resulting explosion. + var/range_flash = 3 + + arm_delay = 5 SECONDS + +/obj/effect/mine/ms13/explosive/Initialize(mapload) + . = ..() + if(arm_delay) + armed = FALSE + icon_state = inactive_state + addtimer(CALLBACK(src, PROC_REF(now_armed)), arm_delay) + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + ) + AddElement(/datum/element/connect_loc, loc_connections) + +/obj/effect/mine/ms13/explosive/examine(mob/user) + . = ..() + if(!armed) + . += "\tIt appears to be inactive..." + +/// The effect of the mine +/obj/effect/mine/ms13/explosive/mineEffect(mob/victim) + explosion(src, range_devastation, range_heavy, range_light, range_flame, range_flash) + +/// If the landmine was previously inactive, this beeps and displays a message marking it active +/obj/effect/mine/ms13/explosive/now_armed() + armed = TRUE + icon_state = initial(icon_state) + playsound(src, 'mojave/sound/ms13machines/frag_mine_arm.ogg', 40, FALSE, -2) + visible_message(span_danger("\The [src] beeps softly, indicating it is now active."), vision_distance = COMBAT_MESSAGE_RANGE) + +/obj/effect/mine/ms13/explosive/on_entered(datum/source, atom/movable/AM) + . = ..() + +/obj/effect/mine/ms13/explosive/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) + . = ..() + triggermine() + +/// When something sets off a mine +/obj/effect/mine/ms13/explosive/triggermine(atom/movable/triggerer) + if(iseffect(triggerer)) + return + if(triggered) //too busy detonating to detonate again + return + if(triggerer) + visible_message(span_danger("[triggerer] sets off [icon2html(src, viewers(src))] [src]!")) + else + visible_message(span_danger("[icon2html(src, viewers(src))] [src] detonates!")) + + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + if(ismob(triggerer)) + mineEffect(triggerer) + triggered = TRUE + SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED, triggerer) + new /obj/effect/turf_decal/ms13/boommark (src, 1) + qdel(src) + +/obj/effect/spawner/random/ms13/minefield + name = "Explosive mines" + spawn_loot_chance = 50 + spawn_scatter_radius = 4 + spawn_loot_count = 1 // fucking broken seemingly + spawn_all_loot = TRUE + loot = list( + /obj/effect/mine/ms13/explosive = 60 + ) + +/obj/effect/spawner/random/ms13/guaranteed/minefield + name = "Explosive mines" + spawn_scatter_radius = 4 + spawn_all_loot = TRUE + loot = list( + /obj/effect/mine/ms13/explosive + ) diff --git a/mojave/effects/ms13_decals.dm b/mojave/effects/ms13_decals.dm index 517747c6073..374f1aa4d6b 100644 --- a/mojave/effects/ms13_decals.dm +++ b/mojave/effects/ms13_decals.dm @@ -71,6 +71,17 @@ /obj/effect/turf_decal/ms13/sheltersigns/shelteryellow_circle icon_state = "shelteryellow_circle" +//Explosive Marks + +/obj/effect/turf_decal/ms13/boommark + icon = 'mojave/icons/decals/ground_decals.dmi' + icon_state = "boom" + +/obj/effect/turf_decal/ms13/boommark/Initialize(mapload) + . = ..() + if(prob(90)) + icon_state = "[initial(icon_state)]-[rand(1,8)]" + // Graffiti /obj/effect/turf_decal/ms13/graffiti @@ -244,6 +255,21 @@ /obj/effect/turf_decal/ms13/graffiti/mark icon_state = "mark" +/obj/effect/turf_decal/ms13/graffiti/skullbones + icon_state = "skullbones" + +/obj/effect/turf_decal/ms13/graffiti/boomboom + icon_state = "boombooms" + +/obj/effect/turf_decal/ms13/graffiti/truedeath + icon_state = "death2" + +/obj/effect/turf_decal/ms13/graffiti/deadman + icon_state = "deadman" + +/obj/effect/turf_decal/ms13/graffiti/mines + icon_state = "mines" + /obj/effect/turf_decal/ms13/graffiti/slumbers icon_state = "slumbers" diff --git a/mojave/icons/decals/graffiti.dmi b/mojave/icons/decals/graffiti.dmi index ecab1bde483..c666af191d6 100644 Binary files a/mojave/icons/decals/graffiti.dmi and b/mojave/icons/decals/graffiti.dmi differ diff --git a/mojave/icons/decals/ground_decals.dmi b/mojave/icons/decals/ground_decals.dmi new file mode 100644 index 00000000000..2e512021488 Binary files /dev/null and b/mojave/icons/decals/ground_decals.dmi differ diff --git a/mojave/icons/structure/miscellaneous.dmi b/mojave/icons/structure/miscellaneous.dmi index e9f1248eb33..9778bb41b40 100644 Binary files a/mojave/icons/structure/miscellaneous.dmi and b/mojave/icons/structure/miscellaneous.dmi differ diff --git a/mojave/icons/structure/wall_decor.dmi b/mojave/icons/structure/wall_decor.dmi index f2f55585545..84dc089a259 100644 Binary files a/mojave/icons/structure/wall_decor.dmi and b/mojave/icons/structure/wall_decor.dmi differ diff --git a/mojave/structures/signs.dm b/mojave/structures/signs.dm index e86e23f9596..f14c1ab4528 100644 --- a/mojave/structures/signs.dm +++ b/mojave/structures/signs.dm @@ -190,3 +190,16 @@ cut_overlays() set_light(0,0,"#000000") QDEL_NULL(soundloop) + +// Wilderness // + +/obj/structure/ms13/sign/mine + name = "mine sign" + desc = "Mines? Like with ore and valuables?" + icon = 'mojave/icons/structure/miscellaneous.dmi' + icon_state = "mine_sign" + anchored = TRUE + density = TRUE + layer = ABOVE_MOB_LAYER + max_integrity = 250 // Hardy but not immortal + pixel_y = 15 diff --git a/mojave/structures/wall_decorations.dm b/mojave/structures/wall_decorations.dm index b838bb52173..4b3c1ad38b5 100644 --- a/mojave/structures/wall_decorations.dm +++ b/mojave/structures/wall_decorations.dm @@ -190,6 +190,11 @@ desc = "DANGER. The text is apparent. But surely it's not relevant to you right now." icon_state = "danger_sign" +/obj/structure/ms13/wall_decor/sign/mine + name = "mine sign" + desc = "Minefield ahead! Any proof?" + icon_state = "mine_warn" + /obj/structure/ms13/wall_decor/sign/notice_robot name = "notice sign" desc = "A sign indicating the presence of robots in the vicinity." diff --git a/tgstation.dme b/tgstation.dme index 33828597866..68f40a4e547 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4426,7 +4426,6 @@ #include "mojave\code\game\objects\item_wield.dm" #include "mojave\code\game\objects\effects\displacement_maps.dm" #include "mojave\code\game\objects\effects\displacement\fat.dm" -#include "mojave\code\game\objects\traps\mine.dm" #include "mojave\code\game\objects\traps\ms13_traps.dm" #include "mojave\code\modules\ai\effect_node.dm" #include "mojave\code\modules\asset_cache\assets\mouse.dm"