From 3f2804c8bfd333192d437fdf73b11d44b30d7095 Mon Sep 17 00:00:00 2001 From: datlo Date: Mon, 17 Dec 2018 11:53:28 +0000 Subject: [PATCH] adds the grenadier belt and permafrost'd tiles --- code/__DEFINES/misc.dm | 1 + code/datums/uplink_item.dm | 8 ++++ .../items/weapons/grenades/atmosgrenade.dm | 32 +++++++++++-- .../items/weapons/grenades/syndieminibomb.dm | 17 ++++++- .../objects/items/weapons/storage/belt.dm | 42 ++++++++++++++++++ code/game/turfs/simulated.dm | 10 ++++- icons/effects/water.dmi | Bin 2920 -> 3121 bytes icons/obj/grenade.dmi | Bin 5134 -> 5547 bytes 8 files changed, 104 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 4dd72c012ce..c59d39dc14c 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -198,6 +198,7 @@ #define TURF_WET_WATER 1 #define TURF_WET_LUBE 2 #define TURF_WET_ICE 3 +#define TURF_WET_PERMAFROST 4 #define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 3f3c394a7e6..a340b18c497 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -565,6 +565,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 11 surplus = 0 +/datum/uplink_item/dangerous/grenadier + name = "Grenadier's belt" + desc = "A belt containing 25 lethally dangerous and destructive grenades." + item = /obj/item/storage/belt/grenade/full + cost = 22 + surplus = 0 + gamemodes = list(/datum/game_mode/nuclear) + /datum/uplink_item/dangerous/emp name = "EMP Grenades and Implanter Kit" desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \ diff --git a/code/game/objects/items/weapons/grenades/atmosgrenade.dm b/code/game/objects/items/weapons/grenades/atmosgrenade.dm index d24db633c87..1c843a4311b 100644 --- a/code/game/objects/items/weapons/grenades/atmosgrenade.dm +++ b/code/game/objects/items/weapons/grenades/atmosgrenade.dm @@ -2,7 +2,7 @@ /obj/item/grenade/gas - name = "Plasma Fire Grenade" + name = "plasma fire grenade" desc = "A compressed plasma grenade, used to start horrific plasma fires." origin_tech = "materials=3;magnets=4;syndicate=3" icon = 'icons/obj/grenade.dmi' @@ -18,7 +18,33 @@ target_turf.air_update_turf() qdel(src) +/obj/item/grenade/gas/plasma + icon_state = "plasma" + /obj/item/grenade/gas/knockout - name = "Knockout Grenade" + name = "knockout grenade" desc = "A grenade that completely removes all air and heat from its detonation area." - spawn_contents = SPAWN_20C | SPAWN_N2O \ No newline at end of file + spawn_contents = SPAWN_20C | SPAWN_N2O + +/obj/item/grenade/gluon + desc = "An advanced grenade that releases a harmful stream of gluons inducing radiation in those nearby. These gluon streams will also make victims feel exhausted, and induce shivering. This extreme coldness will also wet any nearby floors." + name = "gluon grenade" + icon = 'icons/obj/grenade.dmi' + icon_state = "gluon" + item_state = "flashbang" + var/range = 4 + var/rad_damage = 60 + var/stamina_damage = 30 + +/obj/item/grenade/gluon/prime() + update_mob() + playsound(loc, 'sound/effects/empulse.ogg', 50, 1) + for(var/turf/T in view(range,loc)) + if(isfloorturf(T)) + var/turf/simulated/F = T + F.MakeSlippery(TURF_WET_PERMAFROST) + for(var/mob/living/carbon/L in T) + L.adjustStaminaLoss(stamina_damage) + L.apply_effect(rad_damage, IRRADIATE) + L.adjust_bodytemperature(-230) + qdel(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/syndieminibomb.dm b/code/game/objects/items/weapons/grenades/syndieminibomb.dm index cf281b6ec8a..0172dd35717 100644 --- a/code/game/objects/items/weapons/grenades/syndieminibomb.dm +++ b/code/game/objects/items/weapons/grenades/syndieminibomb.dm @@ -8,5 +8,20 @@ /obj/item/grenade/syndieminibomb/prime() update_mob() - explosion(src.loc,1,2,4,flame_range = 2) + explosion(src.loc, 1, 2, 4, flame_range = 2) qdel(src) + +/obj/item/grenade/syndieminibomb/concussion + name = "HE Grenade" + desc = "A compact shrapnel grenade meant to devastate nearby organisms and cause some damage in the process. Pull pin and throw opposite direction." + icon_state = "concussion" + +/obj/item/grenade/syndieminibomb/concussion/prime() + update_mob() + explosion(src.loc, 0, 2, 3, flame_range = 3) + qdel(src) + +/obj/item/grenade/syndieminibomb/concussion/frag + name = "frag grenade" + desc = "Fire in the hole." + icon_state = "frag" \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 3d9471c3f02..da0ba50b7a2 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -302,6 +302,48 @@ item_state = "utility" use_item_overlays = 1 // So it will still show tools in it in case sec get lazy and just glance at it. +/obj/item/storage/belt/grenade + name = "grenadier belt" + desc = "A belt for holding grenades." + icon_state = "assaultbelt" + item_state = "assault" + storage_slots = 30 + max_combined_w_class = 60 + display_contents_with_number = 1 + can_hold = list( + /obj/item/grenade, + /obj/item/lighter, + /obj/item/reagent_containers/food/drinks/bottle/molotov + ) + +/obj/item/storage/belt/grenade/full/New() + ..() + new /obj/item/grenade/smokebomb(src) //4 + new /obj/item/grenade/smokebomb(src) + new /obj/item/grenade/smokebomb(src) + new /obj/item/grenade/smokebomb(src) + new /obj/item/grenade/empgrenade(src) //2 + new /obj/item/grenade/empgrenade(src) + new /obj/item/grenade/gluon(src) //4 + new /obj/item/grenade/gluon(src) + new /obj/item/grenade/gluon(src) + new /obj/item/grenade/gluon(src) + new /obj/item/grenade/chem_grenade/facid(src) //1 + new /obj/item/grenade/gas/plasma(src) //2 + new /obj/item/grenade/gas/plasma(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) //10 + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/syndieminibomb(src) //2 + new /obj/item/grenade/syndieminibomb(src) + /obj/item/storage/belt/military/abductor name = "agent belt" desc = "A belt used by abductor agents." diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 21dbdb9e024..51549c1a563 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -20,7 +20,7 @@ /turf/simulated/proc/burn_tile() -/turf/simulated/proc/MakeSlippery(wet_setting = TURF_WET_WATER) // 1 = Water, 2 = Lube, 3 = Ice +/turf/simulated/proc/MakeSlippery(wet_setting = TURF_WET_WATER) // 1 = Water, 2 = Lube, 3 = Ice, 4 = Permafrost if(wet >= wet_setting) return wet = wet_setting @@ -30,7 +30,10 @@ wet_overlay = null var/turf/simulated/floor/F = src if(istype(F)) - wet_overlay = image('icons/effects/water.dmi', src, "wet_floor_static") + if(wet_setting >= TURF_WET_ICE) + wet_overlay = image('icons/effects/water.dmi', src, "ice_floor") + else + wet_overlay = image('icons/effects/water.dmi', src, "wet_floor_static") else wet_overlay = image('icons/effects/water.dmi', src, "wet_static") overlays += wet_overlay @@ -83,6 +86,9 @@ if(!(prob(30) && M.slip("icy floor", 4, 2, tilesSlipped = 1, walkSafely = 1))) M.inertia_dir = 0 + if(TURF_WET_PERMAFROST) // Permafrost + M.slip("icy floor", 0, 5, tilesSlipped = 1, walkSafely = 0, slipAny = 1) + /turf/simulated/ChangeTurf(var/path) . = ..() queue_smooth_neighbors(src) diff --git a/icons/effects/water.dmi b/icons/effects/water.dmi index 1bccfad7773c233039fbaa8ac350f717acec5b2d..f0368e72852b422131f20ac36fc82386814848a3 100644 GIT binary patch literal 3121 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