People are now hidden behind smoke (#24229)

* no, that is NOT solid snake

* lol

* more names

* Update code/game/objects/items/weapons/storage/boxes.dm

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>

* Update code/game/objects/items/weapons/storage/belt.dm

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>

---------

Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
Contrabang
2024-03-11 14:13:59 -04:00
committed by GitHub
co-authored by Henri215 Luc
parent e32544e599
commit 3557748229
9 changed files with 127 additions and 14 deletions
+2 -1
View File
@@ -94,7 +94,8 @@
#define HIGH_LANDMARK_LAYER 9.2
#define AREA_LAYER 10
#define MASSIVE_OBJ_LAYER 11
#define POINT_LAYER 12
#define SMOKE_PLANE 12
#define POINT_LAYER 13
#define CHAT_LAYER 12.0001 // Do not insert layers between these two values
#define CHAT_LAYER_MAX 12.9999
+6
View File
@@ -104,3 +104,9 @@
blend_mode = BLEND_ADD
render_target = GRAVITY_PULSE_RENDER_TARGET
appearance_flags = PLANE_MASTER | NO_CLIENT_COLOR
/obj/screen/plane_master/smoke
name = "point plane master"
plane = SMOKE_PLANE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_OVERLAY
+69
View File
@@ -1431,3 +1431,72 @@
var/obj/item/card/id/I = H.wear_id
if(istype(I))
apply_to_card(I, H, get_all_accesses(), "Oblivion Enforcer")
/datum/outfit/admin/viper
name = "Solar Federation Viper Infiltrator"
uniform = /obj/item/clothing/under/solgov/viper
back = /obj/item/storage/backpack/satchel
belt = /obj/item/storage/belt/viper
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/jackboots
head = null // will end up being the bandana
mask = /obj/item/clothing/mask/bandana/black // will end up being a cigar
l_ear = /obj/item/radio/headset/ert/alt/solgov
glasses = /obj/item/clothing/glasses/thermal/eyepatch
id = /obj/item/card/id
l_pocket = /obj/item/kitchen/knife/combat
r_pocket = /obj/item/gun/projectile/automatic/pistol
box = /obj/item/storage/box/responseteam
backpack_contents = list(
/obj/item/storage/box/smoke_grenades = 1,
/obj/item/lighter/zippo = 1,
/obj/item/clothing/mask/cigarette/cigar = 3,
/obj/item/clothing/mask/gas/explorer = 1
)
bio_chips = list(/obj/item/bio_chip/stealth)
cybernetic_implants = list(
/obj/item/organ/internal/cyberimp/eyes/hud/security,
/obj/item/organ/internal/cyberimp/chest/nutriment/hardened
)
/datum/outfit/admin/viper/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(visualsOnly)
return
var/codename = pick("Viper", "Serpent", "Python", "Boa", "Basilisk", "Snake", "Mamba", "Sidewinder")
if(prob(50))
var/codename_prefix = pick("Exposed", "Unveiled", "Phantom", "Mirage", "Punished", "Invisible", "Swift")
codename = "[codename_prefix] [codename]"
H.rename_character(null, codename)
var/hair_color = "#361A00"
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
head_organ.h_style = "Bedhead 2"
head_organ.f_style = "Full Beard"
head_organ.hair_colour = hair_color
head_organ.sec_facial_colour = hair_color
head_organ.facial_colour = hair_color
head_organ.sec_hair_colour = hair_color
H.update_hair()
H.update_fhair()
H.update_dna()
H.wear_mask.adjustmask(H) // push it back on the head
equip_item(H, /obj/item/clothing/mask/cigarette/cigar, SLOT_HUD_WEAR_MASK) // get them their cigar
if(istype(H.glasses, /obj/item/clothing/glasses)) // this is gonna be always true
var/obj/item/clothing/glasses/glassass = H.glasses
glassass.over_mask = TRUE
H.update_inv_glasses()
H.gloves.siemens_coefficient = 0 // black "insulated" gloves, since combat gloves look kinda shit
var/obj/item/card/id/I = H.wear_id
if(istype(I))
apply_to_card(I, H, list(ACCESS_MAINT_TUNNELS), "Solar Federation Infilitrator", "lifetimeid")
qdel(H.GetComponent(/datum/component/footstep)) // they're literally stealth
var/datum/martial_art/cqc/CQC = new()
CQC.teach(H)
@@ -12,6 +12,9 @@
pixel_y = -32
opacity = TRUE
anchored = FALSE
plane = SMOKE_PLANE
layer = FLY_LAYER
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
var/steps = 0
var/lifetime = 5
var/direction
@@ -349,6 +349,9 @@
/obj/item/radio/headset/ert/alt/solgov
name = "\improper Trans-Solar Federation Marine's bowman headset"
/obj/item/radio/headset/ert/alt/solgovviper
name = "\improper Trans-Solar Federation Infiltrator's bowman headset"
/obj/item/radio/headset/ert/alt/commander
name = "ERT commander's bowman headset"
desc = "The headset of the boss. Protects ears from flashbangs. Can transmit even if telecomms are down."
@@ -67,11 +67,11 @@
if(!M.restrained() && !M.stat && can_use())
switch(over_object.name)
if("r_hand")
M.unEquip(src, silent = TRUE)
M.put_in_r_hand(src)
if(M.unEquip(src, silent = TRUE))
M.put_in_r_hand(src)
if("l_hand")
M.unEquip(src, silent = TRUE)
M.put_in_l_hand(src)
if(M.unEquip(src, silent = TRUE))
M.put_in_l_hand(src)
add_fingerprint(usr)
return
@@ -504,6 +504,25 @@
new /obj/item/grenade/plastic/c4/thermite(src)
update_icon()
/obj/item/storage/belt/viper
name = "utility belt"
desc = "Holds smokebombs, bolas, and knives. Excellent for sneaking around."
icon_state = "securitybelt"
item_state = "security"
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 18
can_hold = list(
/obj/item/grenade/smokebomb,
/obj/item/restraints/legcuffs/bola,
/obj/item/kitchen/knife/combat
)
/obj/item/storage/belt/viper/populate_contents()
for(var/I in 1 to 5)
new /obj/item/grenade/smokebomb(src)
new /obj/item/restraints/legcuffs/bola(src)
new /obj/item/restraints/legcuffs/bola(src)
/obj/item/storage/belt/janitor
name = "janibelt"
desc = "A belt used to hold most janitorial supplies."
@@ -250,15 +250,6 @@
for(var/I in 1 to 7)
new /obj/item/ammo_casing/shotgun/tranquilizer(src)
/obj/item/storage/box/flashbangs
name = "box of flashbangs (WARNING)"
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
icon_state = "flashbang"
/obj/item/storage/box/flashbangs/populate_contents()
for(var/I in 1 to 7)
new /obj/item/grenade/flashbang(src)
/obj/item/storage/box/flashes
name = "box of flashbulbs"
desc = "<B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
@@ -648,6 +639,15 @@
for(var/I in 1 to 7)
new /obj/item/grenade/flashbang(src)
/obj/item/storage/box/smoke_grenades
name = "smoke grenades"
desc = "A box with 7 smoke grenades."
icon_state = "teargas_box"
/obj/item/storage/box/smoke_grenades/populate_contents()
for(var/I in 1 to 7)
new /obj/item/grenade/smokebomb(src)
/obj/item/storage/box/flashes
name = "box of flashbulbs"
desc = "<B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
+5
View File
@@ -36,3 +36,8 @@
desc = "A formal uniform worn by the diplomatic representatives of the Trans-Solar Federation."
icon_state = "solgovr"
item_color = "solgovr"
/obj/item/clothing/under/solgov/viper
name = "\improper Trans-Solar Federation Infiltrator uniform"
desc = "Olive Drab camoflauge. Commonly known as OD. A battle uniform for TSF infiltrators."
color = "#f5cf53" // custom sprites are for losers (this makes it a light green)
+7
View File
@@ -1390,6 +1390,13 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \
var/atom/movable/screen/plane_master/lighting/L = hud_used.plane_masters["[LIGHTING_PLANE]"]
if(L)
L.alpha = lighting_alpha
var/obj/screen/plane_master/smoke/S = hud_used.plane_masters["[SMOKE_PLANE]"]
if(S)
S.alpha = 255
if(sight & SEE_MOBS)
S.alpha = 200
if((sight & SEE_TURFS|SEE_MOBS|SEE_OBJS) == (SEE_TURFS|SEE_MOBS|SEE_OBJS))
S.alpha = 128
sync_nightvision_screen() //Sync up the overlay used for nightvision to the amount of see_in_dark a mob has. This needs to be called everywhere sync_lighting_plane_alpha() is.