diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index de7eb672e8..b466475222 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -44,3 +44,4 @@ var/MAX_EXPLOSION_RANGE = 14 #define VENT_GAS_SMOKE "Smoke" #define VENT_GAS_CN20 "CN20 Nerve Gas" #define VENT_GAS_CN20_XENO "CN20-X Nerve Gas" +#define VENT_GAS_LSD "ALD-91 LSD Gas" diff --git a/code/__pragmas.dm b/code/__pragmas.dm index 39c14e1bbc..84fcc0dfc3 100644 --- a/code/__pragmas.dm +++ b/code/__pragmas.dm @@ -12,7 +12,6 @@ #pragma SoftReservedKeyword error #pragma DuplicateVariable error #pragma DuplicateProcDefinition error -#pragma TooManyArguments error #pragma PointlessParentCall error #pragma PointlessBuiltinCall error #pragma SuspiciousMatrixCall error diff --git a/code/datums/global_variables.dm b/code/datums/global_variables.dm index 953f42f172..53e9c0391e 100644 --- a/code/datums/global_variables.dm +++ b/code/datums/global_variables.dm @@ -118,15 +118,11 @@ /client/proc/debug_global_variable(name, value, level) var/html = "" - var/change = 0 //to make the value bold if changed if(!(admin_holder.rights & R_DEBUG)) return html html += "
  • EC " - if(value != initial(global.vars[name])) - html += "" - change = 1 if (isnull(value)) html += "[name] = null" @@ -175,8 +171,6 @@ else html += "[name] = [value]" - if(change) - html += "" html += "
  • " @@ -353,7 +347,6 @@ if(admin_holder && admin_holder.marked_datum) possible_classes += "marked datum" possible_classes += "edit referenced object" - possible_classes += "restore to default" class = tgui_input_list(usr, "What kind of variable?","Variable Type", possible_classes) if(!class) @@ -365,9 +358,6 @@ mod_list(global.vars[variable]) return - if("restore to default") - global.vars[variable] = initial(global.vars[variable]) - if("edit referenced object") return .(global.vars[variable]) diff --git a/code/game/objects/effects/effect_system/smoke.dm b/code/game/objects/effects/effect_system/smoke.dm index b80f53b14d..4cd3c4a37d 100644 --- a/code/game/objects/effects/effect_system/smoke.dm +++ b/code/game/objects/effects/effect_system/smoke.dm @@ -258,6 +258,7 @@ var/xeno_affecting = FALSE opacity = FALSE alpha = 75 + time_to_live = 20 /obj/effect/particle_effect/smoke/cn20/xeno name = "CN20-X nerve gas" @@ -276,10 +277,14 @@ /obj/effect/particle_effect/smoke/cn20/affect(mob/living/carbon/creature) var/mob/living/carbon/xenomorph/xeno_creature var/mob/living/carbon/human/human_creature + var/datum/internal_organ/lungs/lungs + var/datum/internal_organ/eyes/eyes if(isxeno(creature)) xeno_creature = creature else if(ishuman(creature)) human_creature = creature + lungs = human_creature.internal_organs_by_name["lungs"] + eyes = human_creature.internal_organs_by_name["eyes"] if(!istype(creature) || issynth(creature) || creature.stat == DEAD) return FALSE if(!xeno_affecting && xeno_creature) @@ -297,14 +302,18 @@ if(xeno_creature) if(xeno_creature.interference < 4) to_chat(xeno_creature, SPAN_XENOHIGHDANGER("Your awareness dims to a small area!")) + creature.apply_damage(20, BRUTE) xeno_creature.interference = 10 xeno_creature.blinded = TRUE else - creature.apply_damage(12, OXY) + creature.apply_damage(12, TOX) + creature.apply_damage(2, BRAIN) + lungs.take_damage(2) creature.SetEarDeafness(max(creature.ear_deaf, round(effect_amt*1.5))) //Paralysis of hearing system, aka deafness - if(!xeno_creature && !creature.eye_blind) //Eye exposure damage + if(!xeno_creature) //Eye exposure damage to_chat(creature, SPAN_DANGER("Your eyes sting. You can't see!")) creature.SetEyeBlind(round(effect_amt/3)) + eyes.take_damage(2) if(!xeno_creature && creature.coughedtime != 1 && !creature.stat) //Coughing/gasping creature.coughedtime = 1 if(prob(50)) @@ -330,6 +339,40 @@ human_creature.recalculate_move_delay = TRUE return TRUE +///////////////////////////////////////////// +// ALD-91 LSD Gas +///////////////////////////////////////////// + +/obj/effect/particle_effect/smoke/LSD + name = "ALD-91 LSD Gas" + smokeranking = SMOKE_RANK_HIGH + color = "#6e006e" + opacity = FALSE + alpha = 75 + time_to_live = 20 + var/stun_chance = 60 + +/obj/effect/particle_effect/smoke/LSD/Move() + . = ..() + for(var/mob/living/carbon/human/human in get_turf(src)) + affect(human) + +/obj/effect/particle_effect/smoke/LSD/affect(mob/living/carbon/human/creature) + if(!istype(creature) || issynth(creature) || creature.stat == DEAD || isyautja(creature)) + return FALSE + + if(creature.wear_mask && (creature.wear_mask.flags_inventory & BLOCKGASEFFECT)) + return FALSE + if(creature.head.flags_inventory & BLOCKGASEFFECT) + return FALSE + + creature.hallucination += 15 + creature.druggy += 1 + + if(prob(stun_chance)) + creature.apply_effect(1, WEAKEN) + + ////////////////////////////////////// // FLASHBANG SMOKE //////////////////////////////////// @@ -633,6 +676,9 @@ /datum/effect_system/smoke_spread/cn20/xeno smoke_type = /obj/effect/particle_effect/smoke/cn20/xeno +/datum/effect_system/smoke_spread/LSD + smoke_type = /obj/effect/particle_effect/smoke/LSD + // XENO SMOKES /datum/effect_system/smoke_spread/xeno_acid diff --git a/code/game/objects/items/explosives/grenades/marines.dm b/code/game/objects/items/explosives/grenades/marines.dm index 46d2d4eba9..36ba614041 100644 --- a/code/game/objects/items/explosives/grenades/marines.dm +++ b/code/game/objects/items/explosives/grenades/marines.dm @@ -484,7 +484,7 @@ /// The typepath of the nerve gas var/nerve_gas_type = /datum/effect_system/smoke_spread/cn20 /// The radius the gas will reach - var/nerve_gas_radius = 2 + var/nerve_gas_radius = 4 /obj/item/explosive/grenade/nerve_gas/Initialize(mapload, ...) . = ..() @@ -505,6 +505,38 @@ name = "\improper CN20-X canister grenade" nerve_gas_type = /datum/effect_system/smoke_spread/cn20/xeno +/* +//================================================ + LSD Gas Grenades +//================================================ +*/ +/obj/item/explosive/grenade/LSD + name = "\improper ALD-91 canister grenade" + desc = "A canister grenade of nonlethal LSD gas. It is set to detonate in 4 seconds." + icon_state = "flashbang2"//temp icon + det_time = 40 + item_state = "grenade_phos_clf"//temp icon + underslug_launchable = FALSE + harmful = TRUE + antigrief_protection = FALSE + var/datum/effect_system/smoke_spread/LSD/LSD_gas + var/LSD_gas_radius = 4 + +/obj/item/explosive/grenade/LSD/Initialize() + . = ..() //if it ain't broke don't fix it + LSD_gas = new /datum/effect_system/smoke_spread/LSD + LSD_gas.attach(src) + +/obj/item/explosive/grenade/LSD/Destroy() + QDEL_NULL(LSD_gas) + return ..() + +/obj/item/explosive/grenade/LSD/prime() + playsound(src.loc, 'sound/effects/smoke.ogg', 25, 1, 4) + LSD_gas.set_up(LSD_gas_radius, 0, get_turf(src), null, 6) + LSD_gas.start() + qdel(src) + /* //================================================ Airburst Smoke Grenades diff --git a/code/game/objects/structures/pipes/vents/vents.dm b/code/game/objects/structures/pipes/vents/vents.dm index 298fbc57f4..926f14cd2f 100644 --- a/code/game/objects/structures/pipes/vents/vents.dm +++ b/code/game/objects/structures/pipes/vents/vents.dm @@ -139,7 +139,7 @@ if(welded) to_chat(usr, SPAN_WARNING("You cannot release gas from a welded vent.")) return FALSE - var/list/options = list(VENT_GAS_SMOKE, VENT_GAS_CN20, VENT_GAS_CN20_XENO) + var/list/options = list(VENT_GAS_SMOKE, VENT_GAS_CN20, VENT_GAS_CN20_XENO, VENT_GAS_LSD) var/gas_choice = tgui_input_list(user, "What gas do you wish to use?", "Gas Choice", options, 20 SECONDS) if(!gas_choice) return FALSE @@ -166,6 +166,8 @@ spreader = new /datum/effect_system/smoke_spread/cn20 if(VENT_GAS_CN20_XENO) spreader = new /datum/effect_system/smoke_spread/cn20/xeno + if(VENT_GAS_LSD) + spreader = new /datum/effect_system/smoke_spread/LSD if(!spreader) return FALSE gas_holder = spreader diff --git a/code/modules/clothing/shoes/marine_shoes.dm b/code/modules/clothing/shoes/marine_shoes.dm index 1a11545ea4..365a8a551a 100644 --- a/code/modules/clothing/shoes/marine_shoes.dm +++ b/code/modules/clothing/shoes/marine_shoes.dm @@ -231,7 +231,8 @@ /obj/item/clothing/shoes/royal_marine name = "\improper L10 pattern combat boots" desc = "Standard issue combat boots for combat scenarios or combat situations. Used by the three world empires royal marines commando units." - icon_state = "rmc_boots" + icon_state = "marine" + item_state = "marine" armor_melee = CLOTHING_ARMOR_MEDIUMHIGH armor_bullet = CLOTHING_ARMOR_MEDIUMHIGH armor_laser = CLOTHING_ARMOR_LOW diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi index 670afcf34e..39abfe5ce6 100644 Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ diff --git a/icons/mob/humans/onmob/feet.dmi b/icons/mob/humans/onmob/feet.dmi index 84121e6b09..909a629f72 100644 Binary files a/icons/mob/humans/onmob/feet.dmi and b/icons/mob/humans/onmob/feet.dmi differ diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi index 139dae66e8..fcd8917c9c 100644 Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi index 3096925329..8a9424ff15 100644 Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi index 0a194a7bbc..18e011f048 100644 Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi index ada7540e96..1411de23fb 100644 Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ