diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index 13e075e9884d..fdfae529865d 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -154,7 +154,7 @@
/turf/open/floor/plating,
/area/ctf)
"agI" = (
-/obj/machinery/power/emitter/energycannon{
+/obj/machinery/power/emitter/energycannon/ctf{
active = 0
},
/turf/open/floor/plating,
@@ -163,7 +163,7 @@
/turf/open/floor/plating,
/area/ctf)
"aha" = (
-/obj/machinery/power/emitter/energycannon{
+/obj/machinery/power/emitter/energycannon/ctf{
active = 0;
dir = 1
},
diff --git a/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm b/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm
index d9c361701213..20fe92d380f7 100644
--- a/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm
+++ b/_maps/shuttles/subshuttles/frontiersmen_brawler.dmm
@@ -370,7 +370,9 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/structure/cable,
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
diff --git a/_maps/shuttles/subshuttles/independent_kunai.dmm b/_maps/shuttles/subshuttles/independent_kunai.dmm
index e1975d0a1737..1cd4e42355e5 100644
--- a/_maps/shuttles/subshuttles/independent_kunai.dmm
+++ b/_maps/shuttles/subshuttles/independent_kunai.dmm
@@ -260,7 +260,9 @@
dir = 1
},
/obj/structure/cable,
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 1
+ },
/obj/machinery/door/poddoor/shutters{
id = "polengine";
name = "Engine Shutters"
@@ -278,7 +280,9 @@
dir = 1
},
/obj/structure/cable,
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/machinery/door/poddoor/shutters{
id = "polengine"
},
diff --git a/_maps/shuttles/subshuttles/inteq_anvil.dmm b/_maps/shuttles/subshuttles/inteq_anvil.dmm
index 5e591774e259..4a4c4073ced1 100644
--- a/_maps/shuttles/subshuttles/inteq_anvil.dmm
+++ b/_maps/shuttles/subshuttles/inteq_anvil.dmm
@@ -67,7 +67,9 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"g" = (
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/structure/cable,
/obj/structure/window/reinforced{
dir = 1
diff --git a/_maps/shuttles/subshuttles/inteq_haste.dmm b/_maps/shuttles/subshuttles/inteq_haste.dmm
index 25324d952a5e..177dcd41bc5c 100644
--- a/_maps/shuttles/subshuttles/inteq_haste.dmm
+++ b/_maps/shuttles/subshuttles/inteq_haste.dmm
@@ -121,7 +121,9 @@
/obj/structure/cable/yellow{
icon_state = "0-4"
},
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"K" = (
diff --git a/_maps/shuttles/subshuttles/syndicate_runner.dmm b/_maps/shuttles/subshuttles/syndicate_runner.dmm
index 69430bf09157..d7f64a0d43ee 100644
--- a/_maps/shuttles/subshuttles/syndicate_runner.dmm
+++ b/_maps/shuttles/subshuttles/syndicate_runner.dmm
@@ -1,6 +1,8 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
-/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 2
+ },
/obj/structure/window/reinforced{
dir = 4
},
diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm
index 01cfa1e5bd5c..d1cea0d28de4 100644
--- a/code/__DEFINES/guns.dm
+++ b/code/__DEFINES/guns.dm
@@ -69,6 +69,11 @@
#define MANUFACTURER_PGF "the Etherbor Industries emblem"
#define MANUFACTURER_IMPORT "Lanchester Import Co."
+// Misfire chances if the gun's safety is off
+#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW 5
+#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM 10
+#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH 15
+
/////////////////
// ATTACHMENTS //
/////////////////
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index 02b96c1b81de..17e2208cdebe 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -49,6 +49,7 @@
. = ..()
if(!.)
return
+ owner.trip_with_gun("knockdown")
ADD_TRAIT(owner, TRAIT_FLOORED, TRAIT_STATUS_EFFECT(id))
/datum/status_effect/incapacitating/knockdown/on_remove()
@@ -79,6 +80,7 @@
. = ..()
if(!.)
return
+ owner.trip_with_gun("paralyze")
ADD_TRAIT(owner, TRAIT_INCAPACITATED, TRAIT_STATUS_EFFECT(id))
ADD_TRAIT(owner, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id))
ADD_TRAIT(owner, TRAIT_FLOORED, TRAIT_STATUS_EFFECT(id))
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 055fa58ad393..fb56a7a15886 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -357,6 +357,7 @@
/obj/item/clothing/gloves,
/obj/item/resonator,
/obj/item/mining_scanner,
+ /obj/item/pinpointer/mineral,
/obj/item/pickaxe,
/obj/item/shovel,
/obj/item/stack/sheet/animalhide,
diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/storage.dm
index c2619eef4c14..f0e5665b446b 100644
--- a/code/game/objects/items/storage/storage.dm
+++ b/code/game/objects/items/storage/storage.dm
@@ -28,6 +28,12 @@
if(EXPLODE_LIGHT)
SSexplosions.lowobj += A
+/obj/item/storage/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+ . = ..()
+ for(var/obj/item/gun/at_risk in get_all_contents())
+ if(at_risk.safety == FALSE && prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH))
+ at_risk.discharge("is hits the ground hard")
+
/obj/item/storage/canStrip(mob/who)
. = ..()
if(!. && rummage_if_nodrop)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index d17583060942..927120f94a9d 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1973,7 +1973,7 @@
if(response.body == "[]")
dat += "
0 bans detected for [ckey]"
else
- bans = json_decode(response["body"])
+ bans = json_decode(response.body)
//Ignore bans from non-whitelisted sources, if a whitelist exists
var/list/valid_sources
diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm
index 2f87eea6d2a7..42d7643fb926 100644
--- a/code/modules/awaymissions/capture_the_flag.dm
+++ b/code/modules/awaymissions/capture_the_flag.dm
@@ -171,6 +171,7 @@
icon = 'icons/obj/device.dmi'
icon_state = "syndbeacon"
resistance_flags = INDESTRUCTIBLE
+ processing_flags = START_PROCESSING_MANUALLY
var/team = WHITE_TEAM
var/team_span = ""
//Capture the Flag scoring
@@ -347,6 +348,7 @@
/obj/machinery/capture_the_flag/proc/start_ctf()
ctf_enabled = TRUE
+ START_PROCESSING(SSmachines, src)
for(var/d in dead_barricades)
var/obj/effect/ctf/dead_barricade/D = d
D.respawn()
@@ -378,6 +380,7 @@
/obj/machinery/capture_the_flag/proc/stop_ctf()
ctf_enabled = FALSE
+ STOP_PROCESSING(SSmachines, src)
arena_reset = FALSE
var/area/A = get_area(src)
for(var/i in GLOB.mob_list)
diff --git a/code/modules/awaymissions/mission_code/challenge.dm b/code/modules/awaymissions/mission_code/challenge.dm
index 05d079220151..6f8bb473b77a 100644
--- a/code/modules/awaymissions/mission_code/challenge.dm
+++ b/code/modules/awaymissions/mission_code/challenge.dm
@@ -35,3 +35,13 @@
/obj/machinery/power/emitter/energycannon/RefreshParts()
return
+
+/obj/machinery/power/emitter/energycannon/ctf
+ processing_flags = START_PROCESSING_MANUALLY
+
+/obj/machinery/power/emitter/energycannon/ctf/proc/toggle_ctf(ctf_enabled)
+ src.active = ctf_enabled
+ if(ctf_enabled)
+ START_PROCESSING(SSmachines, src)
+ else
+ STOP_PROCESSING(SSmachines, src)
diff --git a/code/modules/cargo/packs/exploration.dm b/code/modules/cargo/packs/exploration.dm
index 504b3b4bdbb1..e88cf65a3931 100644
--- a/code/modules/cargo/packs/exploration.dm
+++ b/code/modules/cargo/packs/exploration.dm
@@ -8,13 +8,13 @@
/datum/supply_pack/exploration/lava
name = "Lava Exploration Kit"
- desc = "Contains two pickaxes, 60 lavaproof rods, and goggles to protect eyes from the heat"
- cost = 1500
+ desc = "Contains two pickaxes, 60 lavaproof rods, two pocket extinguishers and goggles to protect yourself from the heat."
+ cost = 500
contains = list(
/obj/item/pickaxe/mini,
/obj/item/pickaxe/mini,
- /obj/item/clothing/glasses/heat,
- /obj/item/clothing/glasses/heat,
+ /obj/item/extinguisher/mini,
+ /obj/item/extinguisher/mini,
/obj/item/clothing/glasses/heat,
/obj/item/clothing/glasses/heat,
/obj/item/stack/rods/lava/thirty,
@@ -22,34 +22,45 @@
)
crate_name = "Lava Exploration Kit"
+/datum/supply_pack/exploration/lavaproof_ords
+ name ="Lavaproof Rods Crate"
+ desc = "Contains 60 lavaproof rods for safely traversing molten pits."
+ cost = 200
+ contains = list(
+ /obj/item/stack/rods/lava/thirty,
+ /obj/item/stack/rods/lava/thirty,
+ )
+ crate_name = "Lavaproof Rod Crate"
+
/datum/supply_pack/exploration/ice
name = "Ice Exploration Kit"
- desc = "Contains two pickaxes, winter clothes, and goggles to protect eyes from the cold"
- cost = 1500
+ desc = "Contains two pickaxes, 2 sets of winter clothes and ice hiking boots, along with goggles to protect eyes from the cold."
+ cost = 500
contains = list(
/obj/item/pickaxe/mini,
/obj/item/pickaxe/mini,
/obj/item/clothing/glasses/cold,
/obj/item/clothing/glasses/cold,
- /obj/item/clothing/glasses/cold,
- /obj/item/clothing/glasses/cold,
- /obj/item/clothing/shoes/winterboots,
- /obj/item/clothing/shoes/winterboots,
- /obj/item/clothing/shoes/winterboots,
- /obj/item/clothing/shoes/winterboots,
+ /obj/item/clothing/suit/hooded/wintercoat,
+ /obj/item/clothing/suit/hooded/wintercoat,
+ /obj/item/clothing/shoes/winterboots/ice_boots,
+ /obj/item/clothing/shoes/winterboots/ice_boots,
)
crate_name = "Ice Exploration Kit"
/datum/supply_pack/exploration/jungle
name = "Jungle Exploration Kit"
- desc = "Contains hatchets, picks, and antivenom, great for dense jungles!"
- cost = 750
+ desc = "Contains a hatchets, two picks and lanterns, plus antivenom pills, great for dense jungles!"
+ cost = 500
contains = list(
/obj/item/pickaxe/mini,
/obj/item/pickaxe/mini,
+ /obj/item/flashlight/lantern,
+ /obj/item/flashlight/lantern,
/obj/item/storage/pill_bottle/charcoal,
/obj/item/storage/pill_bottle/charcoal,
/obj/item/hatchet,
+ /obj/item/hatchet,
)
crate_name = "Jungle Exploration Kit"
@@ -76,16 +87,45 @@
crate_name = "Beach Kit"
/*
- Heavy Duty Exploration Gear
+ General Exploration Gear
*/
/datum/supply_pack/exploration/capsules
- name = "Bluespace Shelter Capsules"
- desc = "A trio of Bluespace Shelter Capsules, for instant shelter in rough situations."
- cost = 3000
+ name = "Bluespace Shelter Capsule"
+ desc = "Contains a Bluespace Shelter Capsule, for instant shelter in rough situations."
+ cost = 500
+ contains = list(
+ /obj/item/survivalcapsule
+ )
+
+/datum/supply_pack/exploration/binocular
+ name = "Binoculars"
+ desc = "One pair of binoculars for surveying terrain."
+ cost = 200
+ contains = list(
+ /obj/item/binoculars
+ )
+
+/datum/supply_pack/exploration/anom_neutralizer
+ name = "Anomaly Neutralizer"
+ desc = "A single use anomaly neutralizer for stabalizing hazardous anomalies."
+ cost = 250
+ contains = list(
+ /obj/item/anomaly_neutralizer
+ )
+
+/datum/supply_pack/exploration/mineral_scanner
+ name = "Underground Mineral Scanner"
+ desc = "Contains an underground mineral scanner for locating veins of ore beneath the earth. Deep core laser drill for extracting said ores not included."
+ cost = 250
contains = list(
- /obj/item/survivalcapsule,
- /obj/item/survivalcapsule,
- /obj/item/survivalcapsule,
+ /obj/item/pinpointer/mineral
)
+/datum/supply_pack/exploration/gps
+ name = "GPS"
+ desc = "Contains a GPS device, useful for finding lost things and not getting lost yourself."
+ cost = 100
+ contains = list(
+ /obj/item/gps
+ )
diff --git a/code/modules/cargo/packs/material.dm b/code/modules/cargo/packs/material.dm
index dc01a4dfdc75..238b6491ea3b 100644
--- a/code/modules/cargo/packs/material.dm
+++ b/code/modules/cargo/packs/material.dm
@@ -111,3 +111,9 @@
contains = list(/obj/item/stack/sheet/mineral/wood/fifty)
crate_name = "wood planks crate"
+/datum/supply_pack/material/concrete_mix
+ name = "Concrete Mix (Jug)"
+ desc = "Feeling lazy? Need a structure and quick? Use concrete! Just add water."
+ cost = 500
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/concrete_mix)
+ crate_name = "Concrete Mix"
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm
index b8cefcb9bd80..121f15fa972f 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm
@@ -61,5 +61,5 @@
/obj/item/reagent_containers/food/snacks/grown/tomato = 1
)
result = /obj/item/reagent_containers/food/snacks/blt
- category = CAT_SANDWICH
+ subcategory = CAT_SANDWICH
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 038d69dff370..3b390da34251 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -11,7 +11,7 @@
heat_protection = CHEST|GROIN|LEGS|ARMS
hoodtype = /obj/item/clothing/head/hooded/explorer
armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/pinpointer/mineral, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
resistance_flags = FIRE_PROOF
supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION
@@ -65,7 +65,7 @@
resistance_flags = FIRE_PROOF | LAVA_PROOF
slowdown = 0
armor = list("melee" = 70, "bullet" = 40, "laser" = 30, "energy" = 45, "bomb" = 70, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/pinpointer/mineral, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
/obj/item/clothing/suit/space/hostile_environment/Initialize()
. = ..()
@@ -167,7 +167,7 @@
heat_protection = CHEST|GROIN|LEGS|ARMS
hoodtype = /obj/item/clothing/head/hooded/survivor_hood
armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 10, "bomb" = 20, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 30)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/pinpointer/mineral, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
resistance_flags = FIRE_PROOF
supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION
diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm
index 7c62a915f65e..4def7dbe5dde 100644
--- a/code/modules/mining/equipment/mineral_scanner.dm
+++ b/code/modules/mining/equipment/mineral_scanner.dm
@@ -126,6 +126,7 @@
/obj/item/pinpointer/mineral/examine(mob/user)
. = ..()
. += "It is currently set to [scanmode ? "scan underground" : "scan the surface"]."
+ . += span_notice("You can use the scanner on an vein on harm intent to mark them as sites of no interest, causing them to no longer show up on scans.")
/obj/item/pinpointer/mineral/AltClick(mob/user) //switching modes
..()
@@ -204,7 +205,7 @@
var/located_dist
var/obj/structure/located_vein
for(var/obj/structure/vein/I in GLOB.ore_veins)
- if(I.z == 0 || I.virtual_z() != here.virtual_z())
+ if(I.z == 0 || I.virtual_z() != here.virtual_z() || I.detectable == FALSE)
continue
if(located_vein)
var/new_dist = get_dist(here, get_turf(I))
@@ -223,6 +224,16 @@
if(!proximity || !istype(O,/obj/structure/vein))
return
playsound(src, 'sound/effects/fastbeep.ogg', 10)
+ if(user.a_intent == INTENT_HARM)
+ if(O.detectable == TRUE)
+ to_chat(user,span_notice("You blacklist the vein from the scanner's telemetry, and will no longer be detected as a site of interest to the scanner."))
+ O.detectable = FALSE
+ return
+ else
+ to_chat(user,span_notice("You mark vein into the scanner's telemetry, allowing it be located by underground scans."))
+ O.detectable = TRUE
+ return
+
if(O.vein_contents.len > 0)
to_chat(user, "Class [O.vein_class] ore vein with [O.mining_charges] possible ore lodes found.")
for(var/re in O.vein_contents)
diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm
index 32b1ffeab8d5..16f6afa8da0c 100644
--- a/code/modules/mining/ore_veins.dm
+++ b/code/modules/mining/ore_veins.dm
@@ -10,6 +10,8 @@ GLOBAL_LIST_EMPTY(ore_veins)
move_resist = INFINITY
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
+ //Whether the mining scanner is able to locate this vein.
+ var/detectable = TRUE
var/mining_charges = 6
//Classification of the quality of possible ores within a vein
//Used to determine difficulty & ore amounts
@@ -75,6 +77,11 @@ GLOBAL_LIST_EMPTY(ore_veins)
ore_list.Remove(picked)
GLOB.ore_veins += src
+/obj/structure/vein/examine(mob/user)
+ . = ..()
+ if(!detectable)
+ . += span_notice("This vein has been marked as a site of no interest, and will not show up on deep core scans.")
+
/obj/structure/vein/Destroy()
GLOB.ore_veins -= src
return ..()
@@ -105,6 +112,7 @@ GLOBAL_LIST_EMPTY(ore_veins)
/obj/structure/vein/proc/toggle_spawning()
spawning_started = SEND_SIGNAL(src, COMSIG_SPAWNER_TOGGLE_SPAWNING, spawning_started)
+
//
// Planetary and Class Subtypes
// The current set of subtypes are heavily subject to future balancing and reworking as the balance of them is tested more
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 5330ee1841f6..62174120a60f 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -648,14 +648,12 @@
REMOVE_TRAIT(src, TRAIT_KNOCKEDOUT, OXYLOSS_TRAIT)
/mob/living/carbon/bullet_act(obj/projectile/P, def_zone, piercing_hit = FALSE)
- var/mob/living/carbon/human/current_user = src //is this a good idea? who can say?
var/armor = run_armor_check(def_zone, P.flag, P.armour_penetration, silent = TRUE)
var/on_hit_state = P.on_hit(src, armor, piercing_hit)
if(!P.nodamage && on_hit_state != BULLET_ACT_BLOCK && !QDELETED(src)) //QDELETED literally just for the instagib rifle. Yeah.
apply_damage(P.damage, P.damage_type, def_zone, armor, sharpness = TRUE)
if(P.damage-armor >= 15 && P.damage_type == BRUTE && (!armor || prob(40) || P.damage-armor >= 25))
spray_blood(get_dir(P.starting,src), (P.damage-armor)/5)
- var/obj/item/bodypart/targeted_bodypart = null
bleed((P.damage-armor)/2)
recoil_camera(src, clamp((P.damage-armor)/4,0.5,10), clamp((P.damage-armor)/4,0.5,10), P.damage/8, P.Angle)
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 530b3b8703fc..662bdbecc572 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -937,6 +937,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28)
layer = 2.5
light_type = /obj/item/light/bulb
fitting = "bulb"
+ no_emergency = TRUE
#undef LIGHT_DRAIN_TIME //WS Edit -- Ethereal Charge Scaling
#undef LIGHT_POWER_GAIN //WS Edit -- Ethereal Charge Scaling
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 2dcaa224a71e..73920780bef3 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -357,16 +357,6 @@
if(user)
user.visible_message("[user.name] emags [src].", "You short out the lock.")
-/obj/machinery/power/emitter/ctf
- name = "Energy Cannon"
- active = TRUE
- active_power_usage = FALSE
- idle_power_usage = FALSE
- locked = TRUE
- req_access_txt = "100"
- welded = TRUE
- use_power = FALSE
-
/obj/machinery/power/emitter/welded/Initialize()
welded = TRUE
return ..()
diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm
index 93fa4208d571..bdc5254f13c9 100644
--- a/code/modules/projectiles/ammunition/_firing.dm
+++ b/code/modules/projectiles/ammunition/_firing.dm
@@ -1,7 +1,7 @@
-/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from)
+/obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from, misfire = FALSE)
distro += variance
var/targloc = get_turf(target)
- ready_proj(target, user, quiet, zone_override, fired_from)
+ ready_proj(target, user, quiet, zone_override, fired_from, misfire)
if(pellets == 1)
if(distro) //We have to spread a pixel-precision bullet. throw_proj was called before so angles should exist by now...
if(randomspread)
@@ -15,19 +15,20 @@
return FALSE
AddComponent(/datum/component/pellet_cloud, projectile_type, pellets)
SEND_SIGNAL(src, COMSIG_PELLET_CLOUD_INIT, target, user, fired_from, randomspread, spread, zone_override, params, distro)
+ if(user)
+ if(click_cooldown_override)
+ user.changeNext_move(click_cooldown_override)
- if(click_cooldown_override)
- user.changeNext_move(click_cooldown_override)
-
- user.newtonian_move(get_dir(target, user))
+ user.newtonian_move(get_dir(target, user))
update_appearance()
return TRUE
-/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", atom/fired_from)
+/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", atom/fired_from, misfire = FALSE)
if (!BB)
return
BB.original = target
BB.firer = user
+ BB.misfire = misfire
BB.fired_from = fired_from
if (zone_override)
BB.def_zone = zone_override
@@ -45,7 +46,11 @@
qdel(reagents)
/obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread)
- var/turf/curloc = get_turf(user)
+ var/turf/curloc
+ if(user)
+ curloc = get_turf(user)
+ else
+ curloc = get_turf(src)
if (!istype(targloc) || !istype(curloc) || !BB)
return FALSE
@@ -60,7 +65,10 @@
if(target) //if the target is right on our location we'll skip the travelling code in the proj's fire()
direct_target = target
if(!direct_target)
- BB.preparePixelProjectile(target, user, params, spread)
+ if(user)
+ BB.preparePixelProjectile(target, user, params, spread)
+ else
+ BB.preparePixelProjectile(target, curloc, params, spread)
BB.fire(null, direct_target)
BB = null
return TRUE
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index c5bfb5facbcf..f97dc5a5ce86 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -728,6 +728,11 @@
if(zoomed)
zoom(user, user.dir)
+/obj/item/gun/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+ . = ..()
+ if(prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH))
+ discharge("hits the ground hard")
+
/obj/item/gun/update_overlays()
. = ..()
if(ismob(loc) && has_safety)
@@ -947,6 +952,49 @@
flash_loc.vis_contents -= muzzle_flash
muzzle_flash.applied = FALSE
+// for guns firing on their own without a user
+/obj/item/gun/proc/discharge(cause, seek_chance = 10)
+ var/target
+ if(!safety)
+ // someone is very unlucky and about to be shot
+ if(prob(seek_chance))
+ for(var/mob/living/target_mob in range(6, get_turf(src)))
+ if(!isInSight(src, target_mob))
+ continue
+ target = target_mob
+ break
+ if(!target)
+ var/fire_dir = pick(GLOB.alldirs)
+ target = get_ranged_target_turf(get_turf(src),fire_dir,6)
+ if(!chambered || !chambered.BB)
+ visible_message(span_danger("\The [src] [cause ? "[cause], suddenly going off" : "suddenly goes off"] without its safteies on! Luckily it wasn't live."))
+ playsound(src, dry_fire_sound, 30, TRUE)
+ else
+ visible_message(span_danger("\The [src] [cause ? "[cause], suddenly going off" : "suddenly goes off"] without its safeties on!"))
+ unsafe_shot(target)
+
+/obj/item/gun/proc/unsafe_shot(target)
+ if(chambered)
+ chambered.fire_casing(target,null, null, null, suppressed, ran_zone(BODY_ZONE_CHEST, 50), 0, src,TRUE)
+ playsound(src, fire_sound, 100, TRUE)
+
+/mob/living/proc/trip_with_gun(cause)
+ var/mob/living/carbon/human/human_holder
+ if(ishuman(src))
+ human_holder = src
+ for(var/obj/item/gun/at_risk in get_all_contents())
+ var/chance_to_fire = GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM
+ var/did_fire = FALSE
+ if(human_holder)
+ // gun is less likely to go off in a holster
+ if(at_risk == human_holder.s_store)
+ chance_to_fire = GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW
+ if(at_risk.safety == FALSE && prob(chance_to_fire))
+ if(at_risk.process_fire(src,src,FALSE, null, pick(BODY_ZONE_L_LEG,BODY_ZONE_R_LEG)) == TRUE)
+ log_combat(src,src,"misfired",at_risk,"caused by [cause]")
+ visible_message(span_danger("\The [at_risk.name]'s trigger gets caught as [src] falls, suddenly going off into [src]'s leg without its safties on!"), span_danger("\The [at_risk.name]'s trigger gets caught on something as you fall, suddenly going off into your leg without its safeties on!"))
+ emote("scream")
+
//I need to refactor this into an attachment
/datum/action/toggle_scope_zoom
name = "Toggle Scope"
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 8adaabfa9fd6..0288813fd089 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -376,3 +376,8 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
if(AC.BB)
process_fire(user, user, FALSE)
. = TRUE
+
+/obj/item/gun/ballistic/unsafe_shot(target, empty_chamber = TRUE)
+ . = ..()
+ process_chamber(empty_chamber,TRUE)
+
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index abe3e3fd7b43..aaf37d4c9556 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -39,6 +39,8 @@
/obj/item/gun/energy/emp_act(severity)
. = ..()
if(!(. & EMP_PROTECT_CONTENTS))
+ if(prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH))
+ discharge("malfunctions from the EMP")
cell.use(round(cell.charge / severity))
chambered = null //we empty the chamber
recharge_newshot() //and try to charge a new shot
@@ -323,3 +325,7 @@
. += "\The [name] has [round(cell.charge/shot.e_cost)] shots remaining on [shot.select_name] mode."
else
. += span_notice("\The [name] doesn't seem to have a cell!")
+
+/obj/item/gun/energy/unsafe_shot(target)
+ . = ..()
+ process_chamber()
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index ea640e1a7219..2cccb02224ed 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -24,6 +24,8 @@
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/def_zone = "" //Aiming at
var/atom/movable/firer = null//Who shot it
+ // if the projectile was the result of a misfire. For logging.
+ var/misfire = FALSE
var/atom/fired_from = null // the atom that the projectile was fired from (gun, turret)
var/suppressed = FALSE //Attack message
var/yo = null
@@ -284,7 +286,9 @@
for(var/datum/reagent/R in reagents.reagent_list)
reagent_note += "[R.name] ([num2text(R.volume)])"
- if(ismob(firer))
+ if(misfire)
+ L.log_message("has been hit by a misfired [src] from \a [fired_from] last touched by [fired_from.fingerprintslast]", LOG_ATTACK, color = "orange")
+ else if(ismob(firer))
log_combat(firer, L, "shot", src, reagent_note)
else
L.log_message("has been shot by [firer] with [src]", LOG_ATTACK, color="orange")
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index b59f4358c76a..ad27b15207a8 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -1374,26 +1374,18 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(1 to 5)
M.Dizzy(10)
M.set_drugginess(30)
- if(prob(10))
- M.emote(pick("twitch","giggle"))
if(5 to 10)
M.Jitter(20)
M.Dizzy(20)
M.set_drugginess(45)
- if(prob(20))
- M.emote(pick("twitch","giggle"))
if (10 to 200)
M.Jitter(40)
M.Dizzy(40)
M.set_drugginess(60)
- if(prob(30))
- M.emote(pick("twitch","giggle"))
if(200 to INFINITY)
M.Jitter(60)
M.Dizzy(60)
M.set_drugginess(75)
- if(prob(40))
- M.emote(pick("twitch","giggle"))
if(prob(30))
M.adjustToxLoss(2, 0)
. = 1
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index b776a285b346..a62dfc53b63b 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -21,8 +21,6 @@
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED))
if(prob(10))
step(M, pick(GLOB.cardinals))
- if(prob(7))
- M.emote(pick("twitch","drool","moan","giggle"))
..()
/datum/reagent/drug/space_drugs/overdose_start(mob/living/M)
@@ -166,7 +164,7 @@
/datum/reagent/drug/methamphetamine
name = "Methamphetamine"
- description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage."
+ description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will become dizzy, lose motor control and eventually suffer heavy toxin damage."
reagent_state = LIQUID
color = "#FAFAFA"
overdose_threshold = 20
@@ -194,8 +192,6 @@
M.adjustStaminaLoss(-2, 0)
M.Jitter(2)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4))
- if(prob(5))
- M.emote(pick("twitch", "shiver"))
..()
. = 1
@@ -203,8 +199,6 @@
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc))
for(var/i in 1 to 4)
step(M, pick(GLOB.cardinals))
- if(prob(20))
- M.emote("laugh")
if(prob(33))
M.visible_message("[M]'s hands flip out and flail everywhere!")
M.drop_all_held_items()
@@ -215,15 +209,11 @@
/datum/reagent/drug/methamphetamine/addiction_act_stage1(mob/living/M)
M.Jitter(5)
- if(prob(20))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/methamphetamine/addiction_act_stage2(mob/living/M)
M.Jitter(10)
M.Dizzy(10)
- if(prob(30))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/methamphetamine/addiction_act_stage3(mob/living/M)
@@ -232,8 +222,6 @@
step(M, pick(GLOB.cardinals))
M.Jitter(15)
M.Dizzy(15)
- if(prob(40))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/methamphetamine/addiction_act_stage4(mob/living/carbon/human/M)
@@ -243,8 +231,6 @@
M.Jitter(20)
M.Dizzy(20)
M.adjustToxLoss(5, 0)
- if(prob(50))
- M.emote(pick("twitch","drool","moan"))
..()
. = 1
@@ -293,8 +279,6 @@
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !ismovable(M.loc))
for(var/i in 1 to 8)
step(M, pick(GLOB.cardinals))
- if(prob(20))
- M.emote(pick("twitch","drool","moan"))
if(prob(33))
M.drop_all_held_items()
..()
@@ -306,8 +290,6 @@
step(M, pick(GLOB.cardinals))
M.Jitter(5)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10)
- if(prob(20))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/bath_salts/addiction_act_stage2(mob/living/M)
@@ -318,8 +300,6 @@
M.Jitter(10)
M.Dizzy(10)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10)
- if(prob(30))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/bath_salts/addiction_act_stage3(mob/living/M)
@@ -330,8 +310,6 @@
M.Jitter(15)
M.Dizzy(15)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10)
- if(prob(40))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/bath_salts/addiction_act_stage4(mob/living/carbon/human/M)
@@ -343,8 +321,6 @@
M.Dizzy(50)
M.adjustToxLoss(5, 0)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10)
- if(prob(50))
- M.emote(pick("twitch","drool","moan"))
..()
. = 1
@@ -398,13 +374,10 @@
var/reaction = rand(1,3)
switch(reaction)
if(1)
- M.emote("laugh")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug_good_od)
if(2)
- M.emote("sway")
M.Dizzy(25)
if(3)
- M.emote("frown")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "happiness_drug", /datum/mood_event/happiness_drug_bad_od)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)
..()
@@ -414,32 +387,24 @@
var/datum/component/mood/mood = M.GetComponent(/datum/component/mood)
mood.setSanity(min(mood.sanity, SANITY_DISTURBED))
M.Jitter(5)
- if(prob(20))
- M.emote(pick("twitch","laugh","frown"))
..()
/datum/reagent/drug/happiness/addiction_act_stage2(mob/living/M)
var/datum/component/mood/mood = M.GetComponent(/datum/component/mood)
mood.setSanity(min(mood.sanity, SANITY_UNSTABLE))
M.Jitter(10)
- if(prob(30))
- M.emote(pick("twitch","laugh","frown"))
..()
/datum/reagent/drug/happiness/addiction_act_stage3(mob/living/M)
var/datum/component/mood/mood = M.GetComponent(/datum/component/mood)
mood.setSanity(min(mood.sanity, SANITY_CRAZY))
M.Jitter(15)
- if(prob(40))
- M.emote(pick("twitch","laugh","frown"))
..()
/datum/reagent/drug/happiness/addiction_act_stage4(mob/living/carbon/human/M)
var/datum/component/mood/mood = M.GetComponent(/datum/component/mood)
mood.setSanity(SANITY_INSANE)
M.Jitter(20)
- if(prob(50))
- M.emote(pick("twitch","laugh","frown"))
..()
. = 1
@@ -477,8 +442,6 @@
M.Jitter(5)
if(prob(5))
M.drop_all_held_items()
- if(prob(15))
- M.emote(pick("twitch","drool"))
if(prob(20))
M.losebreath++
M.adjustStaminaLoss(4, 0)
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index b78fd6aa8198..abdaf511691d 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -339,20 +339,14 @@
if(1 to 5)
M.Dizzy(5)
M.set_drugginess(30)
- if(prob(10))
- M.emote(pick("twitch","giggle"))
if(5 to 10)
M.Jitter(10)
M.Dizzy(10)
M.set_drugginess(35)
- if(prob(20))
- M.emote(pick("twitch","giggle"))
if (10 to INFINITY)
M.Jitter(20)
M.Dizzy(20)
M.set_drugginess(40)
- if(prob(30))
- M.emote(pick("twitch","giggle"))
..()
/datum/reagent/consumable/garlic //NOTE: having garlic in your blood stops vampires from biting you.
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index d42fc60057f1..6460cd423f78 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -259,7 +259,6 @@
M.adjustFireLoss(-reac_volume)
if(show_message)
to_chat(M, "You feel your burns healing! It stings like hell!")
- M.emote("scream")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
..()
@@ -313,7 +312,6 @@
M.adjustBruteLoss(-reac_volume)
if(show_message)
to_chat(M, "You feel your bruises healing! It stings like hell!")
- M.emote("scream")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
..()
@@ -1539,7 +1537,6 @@
M.losebreath++
if(prob(20))
to_chat(M, "You have a sudden fit!")
- M.emote("moan")
M.Paralyze(20) // you should be in a bad spot at this point unless epipen has been used
if(81)
to_chat(M, "You feel too exhausted to continue!") // at this point you will eventually die unless you get charcoal
@@ -1751,7 +1748,6 @@
M.adjustFireLoss(reac_volume)
if(show_message)
to_chat(M, "You feel your skin bubble and burn as your flesh knits itself together!")
- M.emote("scream")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
..()
@@ -1786,7 +1782,6 @@
M.adjustBruteLoss(reac_volume)
if(show_message)
to_chat(M, "You feel your flesh tear as your skin rapidly regenerates!")
- M.emote("scream")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
..()
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index fdfeeb1cda9c..11306b441f1e 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -516,12 +516,6 @@
metabolization_rate = 0.25 * REAGENTS_METABOLISM
taste_description = "bitterness"
-/datum/reagent/serotrotium/on_mob_life(mob/living/carbon/M)
- if(ishuman(M))
- if(prob(7))
- M.emote(pick("twitch","drool","moan","gasp"))
- ..()
-
/datum/reagent/oxygen
name = "Oxygen"
description = "A colorless, odorless gas. Grows on trees but is still pretty valuable."
@@ -597,8 +591,6 @@
/datum/reagent/mercury/on_mob_life(mob/living/carbon/M)
if(!HAS_TRAIT(src, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc))
step(M, pick(GLOB.cardinals))
- if(prob(5))
- M.emote(pick("twitch","drool","moan"))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1)
..()
@@ -762,8 +754,6 @@
/datum/reagent/lithium/on_mob_life(mob/living/carbon/M)
if(!HAS_TRAIT(M, TRAIT_IMMOBILIZED) && !isspaceturf(M.loc))
step(M, pick(GLOB.cardinals))
- if(prob(5))
- M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/lithium/dip_object(obj/item/I, mob/user, obj/item/reagent_containers/H)
@@ -1036,8 +1026,6 @@
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM)
if(prob(50))
M.drowsyness = max(M.drowsyness, 3)
- if(prob(10))
- M.emote("drool")
..()
/datum/reagent/nanomachines
@@ -2370,6 +2358,14 @@
else
addtimer(CALLBACK(L, TYPE_PROC_REF(/mob/living, gib)), 5 SECONDS)
+/datum/reagent/concrete_mix
+ name = "Concrete Mix"
+ description = "Pre-made concrete mix, ideal for lazy engineers."
+ color = "#c4c0bc"
+ taste_description = "chalky concrete"
+ harmful = TRUE
+ reagent_state = SOLID
+
/datum/reagent/cement
name = "Cement"
description = "A sophisticated binding agent used to produce concrete."
diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
index be5e2ce35f9a..9f907a33b022 100644
--- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
@@ -35,7 +35,6 @@
M.Jitter(3 * reac_volume)
M.Dizzy(2 * reac_volume)
M.set_drugginess(3 * reac_volume)
- M.emote(pick("twitch","giggle"))
return ..()
/datum/reagent/consumable/ethanol/trickwine/ice_wine
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index e7494191d1df..d9b6b782115e 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -620,6 +620,10 @@
required_temp = 400
mix_message = "The mixture boils off a grey vapor..."//The water boils off, leaving the cement
+/datum/chemical_reaction/quick_concrete
+ results = list(/datum/reagent/concrete = 5)
+ required_reagents = list(/datum/reagent/concrete_mix = 5, /datum/reagent/water = 5)
+
/datum/chemical_reaction/hexement
results = list(/datum/reagent/cement/hexement = 1)
required_reagents = list(/datum/reagent/cement = 6, /datum/reagent/phenol = 1)
diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm
index 46c5620ecb20..8214a0747dfc 100644
--- a/code/modules/reagents/reagent_containers/jug.dm
+++ b/code/modules/reagents/reagent_containers/jug.dm
@@ -148,3 +148,7 @@
name = "chemical jug (hexacrete)"
list_reagents = list(/datum/reagent/concrete/hexacrete = 150)
+/obj/item/reagent_containers/glass/chem_jug/concrete_mix
+ name = "chemical jug (concrete mix)"
+ desc = "Just pour out and add water!"
+ list_reagents = list(/datum/reagent/concrete_mix = 150)
diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm
index f4d68520c879..6cb9f7304585 100644
--- a/code/modules/shuttle/on_move.dm
+++ b/code/modules/shuttle/on_move.dm
@@ -291,6 +291,7 @@ All ShuttleMove procs go here
/************************************Item move procs************************************/
+
/obj/item/storage/pod/afterShuttleMove(turf/oldT, list/movement_force, shuttle_dir, shuttle_preferred_direction, move_dir, rotation)
. = ..()
// If the pod was launched, the storage will always open. The reserved_level check
@@ -299,6 +300,11 @@ All ShuttleMove procs go here
if (oldT && !is_reserved_level(oldT))
unlocked = TRUE
+/obj/item/gun/lateShuttleMove(turf/oldT, list/movement_force, move_dir)
+ . = ..()
+ if(prob(GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM))
+ discharge("is thrown around by the force of the take off")
+
/************************************Mob move procs************************************/
/mob/onShuttleMove(turf/newT, turf/oldT, list/movement_force, move_dir, obj/docking_port/stationary/old_dock, obj/docking_port/mobile/moving_dock, list/obj/docking_port/mobile/towed_shuttles)
diff --git a/html/changelogs/AutoChangeLog-pr-3336.yml b/html/changelogs/AutoChangeLog-pr-3336.yml
deleted file mode 100644
index 4d8aae8b4a5d..000000000000
--- a/html/changelogs/AutoChangeLog-pr-3336.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: retlaw34, rye-rice, Apogee-dev, generalthrax, Tamamitsune, Nitha(emotional
- support)
-changes:
- - {rscadd: Scarborough Arms for every syndicate faction}
- - {rscadd: New sounds for the commander}
- - {balance: scout's price has been reduced slightly}
- - {rscdel: Donksoft toy guns}
- - {bugfix: You can no longer attach shit to revolvers}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-3360.yml b/html/changelogs/AutoChangeLog-pr-3360.yml
new file mode 100644
index 000000000000..70c427bfbfb5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-3360.yml
@@ -0,0 +1,4 @@
+author: FalloutFalcon
+changes:
+ - {code_imp: ctf machines now only process while ctf is running}
+delete-after: true
diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml
index ec4e60a8effb..dde60b3d120b 100644
--- a/html/changelogs/archive/2024-09.yml
+++ b/html/changelogs/archive/2024-09.yml
@@ -69,3 +69,38 @@
- rscdel: Removed the Tribal crafting tab (some items were moved to other tabs).
- rscdel: Removed bone club, skull helmet and bone armor from the bone construction
menu.
+2024-09-13:
+ retlaw34, rye-rice, Apogee-dev, generalthrax, Tamamitsune, Nitha(emotional support):
+ - rscadd: Scarborough Arms for every syndicate faction
+ - rscadd: New sounds for the commander
+ - balance: scout's price has been reduced slightly
+ - rscdel: Donksoft toy guns
+ - bugfix: You can no longer attach shit to revolvers
+2024-09-14:
+ FalloutFalcon:
+ - bugfix: no emergency for floor lights untill someone adds a sprite for them!
+ Gristlebee:
+ - rscadd: Adds binocs, lavaproof rods, gps, deep core mining scanner, anomaly neutralizer
+ to exploration cargo
+ - rscadd: You can hit veins with a deep core scanner on harm intent to stop it tracking,
+ and hit it again to readd it.
+ - rscadd: Deep core scanner fits in explorer webbing and explorer suits.
+ - balance: Outpost Cargo exploration tab
+ MemeSnorfer:
+ - rscdel: Removed forced emotes from most reagents.
+ ToasterBiome:
+ - bugfix: Centcom Ban DB is now accessible again through PP
+2024-09-15:
+ FalloutFalcon:
+ - rscdel: Removed useless vars
+ Gristlebee:
+ - rscadd: Unsaftied guns can go off on their own.
+ - code_imp: Changes ammo casing firing code so it's able to work without a user.
+ Zevotech:
+ - bugfix: Certain Subshuttle engine prechargers have now been correctly rotated.
+2024-09-16:
+ Gristlebee:
+ - bugfix: Misfires no longer have 100% chance
+2024-09-18:
+ Bjarl:
+ - rscadd: You can now purchase concrete mix at the outpost. For concrete making.
diff --git a/tgui/package.json b/tgui/package.json
index 2c5059e3626c..169af0aeafc7 100644
--- a/tgui/package.json
+++ b/tgui/package.json
@@ -56,7 +56,7 @@
"terser-webpack-plugin": "^5.1.4",
"typescript": "^4.9.4",
"url-loader": "^4.1.1",
- "webpack": "^5.75.0",
+ "webpack": "^5.94.0",
"webpack-bundle-analyzer": "^4.4.2",
"webpack-cli": "^4.7.2"
}
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index dcda23e174b2..bdf58e167804 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -1763,6 +1763,17 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/gen-mapping@npm:^0.3.5":
+ version: 0.3.5
+ resolution: "@jridgewell/gen-mapping@npm:0.3.5"
+ dependencies:
+ "@jridgewell/set-array": ^1.2.1
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ "@jridgewell/trace-mapping": ^0.3.24
+ checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52
+ languageName: node
+ linkType: hard
+
"@jridgewell/resolve-uri@npm:3.1.0":
version: 3.1.0
resolution: "@jridgewell/resolve-uri@npm:3.1.0"
@@ -1784,6 +1795,13 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/set-array@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "@jridgewell/set-array@npm:1.2.1"
+ checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10
+ languageName: node
+ linkType: hard
+
"@jridgewell/source-map@npm:^0.3.2":
version: 0.3.2
resolution: "@jridgewell/source-map@npm:0.3.2"
@@ -1794,6 +1812,16 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/source-map@npm:^0.3.3":
+ version: 0.3.6
+ resolution: "@jridgewell/source-map@npm:0.3.6"
+ dependencies:
+ "@jridgewell/gen-mapping": ^0.3.5
+ "@jridgewell/trace-mapping": ^0.3.25
+ checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30
+ languageName: node
+ linkType: hard
+
"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10":
version: 1.4.14
resolution: "@jridgewell/sourcemap-codec@npm:1.4.14"
@@ -1818,6 +1846,16 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
+ version: 0.3.25
+ resolution: "@jridgewell/trace-mapping@npm:0.3.25"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34
+ languageName: node
+ linkType: hard
+
"@jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.17
resolution: "@jridgewell/trace-mapping@npm:0.3.17"
@@ -1979,6 +2017,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/estree@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "@types/estree@npm:1.0.5"
+ checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a
+ languageName: node
+ linkType: hard
+
"@types/graceful-fs@npm:^4.1.2":
version: 4.1.5
resolution: "@types/graceful-fs@npm:4.1.5"
@@ -2198,6 +2243,16 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/ast@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/helper-numbers": 1.11.6
+ "@webassemblyjs/helper-wasm-bytecode": 1.11.6
+ checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/floating-point-hex-parser@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1"
@@ -2205,6 +2260,13 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/floating-point-hex-parser@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6"
+ checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/helper-api-error@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/helper-api-error@npm:1.11.1"
@@ -2212,6 +2274,13 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/helper-api-error@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/helper-api-error@npm:1.11.6"
+ checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/helper-buffer@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/helper-buffer@npm:1.11.1"
@@ -2219,6 +2288,13 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/helper-buffer@npm:1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/helper-buffer@npm:1.12.1"
+ checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/helper-numbers@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/helper-numbers@npm:1.11.1"
@@ -2230,6 +2306,17 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/helper-numbers@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/helper-numbers@npm:1.11.6"
+ dependencies:
+ "@webassemblyjs/floating-point-hex-parser": 1.11.6
+ "@webassemblyjs/helper-api-error": 1.11.6
+ "@xtuc/long": 4.2.2
+ checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1"
@@ -2237,6 +2324,13 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6"
+ checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/helper-wasm-section@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1"
@@ -2249,6 +2343,18 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/helper-wasm-section@npm:1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/ast": 1.12.1
+ "@webassemblyjs/helper-buffer": 1.12.1
+ "@webassemblyjs/helper-wasm-bytecode": 1.11.6
+ "@webassemblyjs/wasm-gen": 1.12.1
+ checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/ieee754@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/ieee754@npm:1.11.1"
@@ -2258,6 +2364,15 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/ieee754@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/ieee754@npm:1.11.6"
+ dependencies:
+ "@xtuc/ieee754": ^1.2.0
+ checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/leb128@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/leb128@npm:1.11.1"
@@ -2267,6 +2382,15 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/leb128@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/leb128@npm:1.11.6"
+ dependencies:
+ "@xtuc/long": 4.2.2
+ checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/utf8@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/utf8@npm:1.11.1"
@@ -2274,6 +2398,13 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/utf8@npm:1.11.6":
+ version: 1.11.6
+ resolution: "@webassemblyjs/utf8@npm:1.11.6"
+ checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/wasm-edit@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/wasm-edit@npm:1.11.1"
@@ -2290,6 +2421,22 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/wasm-edit@npm:^1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/wasm-edit@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/ast": 1.12.1
+ "@webassemblyjs/helper-buffer": 1.12.1
+ "@webassemblyjs/helper-wasm-bytecode": 1.11.6
+ "@webassemblyjs/helper-wasm-section": 1.12.1
+ "@webassemblyjs/wasm-gen": 1.12.1
+ "@webassemblyjs/wasm-opt": 1.12.1
+ "@webassemblyjs/wasm-parser": 1.12.1
+ "@webassemblyjs/wast-printer": 1.12.1
+ checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/wasm-gen@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/wasm-gen@npm:1.11.1"
@@ -2303,6 +2450,19 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/wasm-gen@npm:1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/wasm-gen@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/ast": 1.12.1
+ "@webassemblyjs/helper-wasm-bytecode": 1.11.6
+ "@webassemblyjs/ieee754": 1.11.6
+ "@webassemblyjs/leb128": 1.11.6
+ "@webassemblyjs/utf8": 1.11.6
+ checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/wasm-opt@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/wasm-opt@npm:1.11.1"
@@ -2315,6 +2475,18 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/wasm-opt@npm:1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/wasm-opt@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/ast": 1.12.1
+ "@webassemblyjs/helper-buffer": 1.12.1
+ "@webassemblyjs/wasm-gen": 1.12.1
+ "@webassemblyjs/wasm-parser": 1.12.1
+ checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/wasm-parser@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/wasm-parser@npm:1.11.1"
@@ -2329,6 +2501,20 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/wasm-parser@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/ast": 1.12.1
+ "@webassemblyjs/helper-api-error": 1.11.6
+ "@webassemblyjs/helper-wasm-bytecode": 1.11.6
+ "@webassemblyjs/ieee754": 1.11.6
+ "@webassemblyjs/leb128": 1.11.6
+ "@webassemblyjs/utf8": 1.11.6
+ checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8
+ languageName: node
+ linkType: hard
+
"@webassemblyjs/wast-printer@npm:1.11.1":
version: 1.11.1
resolution: "@webassemblyjs/wast-printer@npm:1.11.1"
@@ -2339,6 +2525,16 @@ __metadata:
languageName: node
linkType: hard
+"@webassemblyjs/wast-printer@npm:1.12.1":
+ version: 1.12.1
+ resolution: "@webassemblyjs/wast-printer@npm:1.12.1"
+ dependencies:
+ "@webassemblyjs/ast": 1.12.1
+ "@xtuc/long": 4.2.2
+ checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713
+ languageName: node
+ linkType: hard
+
"@webpack-cli/configtest@npm:^1.0.4":
version: 1.0.4
resolution: "@webpack-cli/configtest@npm:1.0.4"
@@ -2426,6 +2622,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn-import-attributes@npm:^1.9.5":
+ version: 1.9.5
+ resolution: "acorn-import-attributes@npm:1.9.5"
+ peerDependencies:
+ acorn: ^8
+ checksum: 1c0c49b6a244503964ae46ae850baccf306e84caf99bc2010ed6103c69a423987b07b520a6c619f075d215388bd4923eccac995886a54309eda049ab78a4be95
+ languageName: node
+ linkType: hard
+
"acorn-jsx@npm:^5.3.1":
version: 5.3.1
resolution: "acorn-jsx@npm:5.3.1"
@@ -2467,6 +2672,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn@npm:^8.8.2":
+ version: 8.12.1
+ resolution: "acorn@npm:8.12.1"
+ bin:
+ acorn: bin/acorn
+ checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07
+ languageName: node
+ linkType: hard
+
"agent-base@npm:6, agent-base@npm:^6.0.2":
version: 6.0.2
resolution: "agent-base@npm:6.0.2"
@@ -2954,7 +3168,7 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^3.0.1, braces@npm:~3.0.2":
+"braces@npm:^3.0.3, braces@npm:~3.0.2":
version: 3.0.3
resolution: "braces@npm:3.0.3"
dependencies:
@@ -2985,6 +3199,20 @@ __metadata:
languageName: node
linkType: hard
+"browserslist@npm:^4.21.10":
+ version: 4.23.3
+ resolution: "browserslist@npm:4.23.3"
+ dependencies:
+ caniuse-lite: ^1.0.30001646
+ electron-to-chromium: ^1.5.4
+ node-releases: ^2.0.18
+ update-browserslist-db: ^1.1.0
+ bin:
+ browserslist: cli.js
+ checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e
+ languageName: node
+ linkType: hard
+
"bser@npm:2.1.1":
version: 2.1.1
resolution: "bser@npm:2.1.1"
@@ -3083,6 +3311,13 @@ __metadata:
languageName: node
linkType: hard
+"caniuse-lite@npm:^1.0.30001646":
+ version: 1.0.30001653
+ resolution: "caniuse-lite@npm:1.0.30001653"
+ checksum: 289cf06c26a46f3e6460ccd5feffa788ab0ab35d306898c48120c65cfb11959bfa560e9f739393769b4fd01150c69b0747ad3ad5ec3abf3dfafd66df3c59254e
+ languageName: node
+ linkType: hard
+
"capital-case@npm:^1.0.4":
version: 1.0.4
resolution: "capital-case@npm:1.0.4"
@@ -3723,6 +3958,13 @@ __metadata:
languageName: node
linkType: hard
+"electron-to-chromium@npm:^1.5.4":
+ version: 1.5.13
+ resolution: "electron-to-chromium@npm:1.5.13"
+ checksum: f18ac84dd3bf9a200654a6a9292b9ec4bced0cf9bd26cec9941b775f4470c581c9d043e70b37a124d9752dcc0f47fc96613d52b2defd8e59632852730cb418b9
+ languageName: node
+ linkType: hard
+
"emittery@npm:^0.8.1":
version: 0.8.1
resolution: "emittery@npm:0.8.1"
@@ -3777,6 +4019,16 @@ __metadata:
languageName: node
linkType: hard
+"enhanced-resolve@npm:^5.17.1":
+ version: 5.17.1
+ resolution: "enhanced-resolve@npm:5.17.1"
+ dependencies:
+ graceful-fs: ^4.2.4
+ tapable: ^2.2.0
+ checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59
+ languageName: node
+ linkType: hard
+
"enquirer@npm:^2.3.5":
version: 2.3.6
resolution: "enquirer@npm:2.3.6"
@@ -3848,6 +4100,13 @@ __metadata:
languageName: node
linkType: hard
+"es-module-lexer@npm:^1.2.1":
+ version: 1.5.4
+ resolution: "es-module-lexer@npm:1.5.4"
+ checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f
+ languageName: node
+ linkType: hard
+
"es-to-primitive@npm:^1.2.1":
version: 1.2.1
resolution: "es-to-primitive@npm:1.2.1"
@@ -3911,6 +4170,13 @@ __metadata:
languageName: node
linkType: hard
+"escalade@npm:^3.1.2":
+ version: 3.1.2
+ resolution: "escalade@npm:3.1.2"
+ checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02
+ languageName: node
+ linkType: hard
+
"escape-html@npm:~1.0.3":
version: 1.0.3
resolution: "escape-html@npm:1.0.3"
@@ -4799,6 +5065,13 @@ __metadata:
languageName: node
linkType: hard
+"graceful-fs@npm:^4.2.11":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
+ languageName: node
+ linkType: hard
+
"gzip-size@npm:^6.0.0":
version: 6.0.0
resolution: "gzip-size@npm:6.0.0"
@@ -5988,6 +6261,17 @@ __metadata:
languageName: node
linkType: hard
+"jest-worker@npm:^27.4.5":
+ version: 27.5.1
+ resolution: "jest-worker@npm:27.5.1"
+ dependencies:
+ "@types/node": "*"
+ merge-stream: ^2.0.0
+ supports-color: ^8.0.0
+ checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980
+ languageName: node
+ linkType: hard
+
"jest@npm:^27.0.6":
version: 27.0.6
resolution: "jest@npm:27.0.6"
@@ -6447,12 +6731,12 @@ __metadata:
linkType: hard
"micromatch@npm:^4.0.4":
- version: 4.0.4
- resolution: "micromatch@npm:4.0.4"
+ version: 4.0.8
+ resolution: "micromatch@npm:4.0.8"
dependencies:
- braces: ^3.0.1
- picomatch: ^2.2.3
- checksum: ef3d1c88e79e0a68b0e94a03137676f3324ac18a908c245a9e5936f838079fcc108ac7170a5fadc265a9c2596963462e402841406bda1a4bb7b68805601d631c
+ braces: ^3.0.3
+ picomatch: ^2.3.1
+ checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966
languageName: node
linkType: hard
@@ -6759,6 +7043,13 @@ __metadata:
languageName: node
linkType: hard
+"node-releases@npm:^2.0.18":
+ version: 2.0.18
+ resolution: "node-releases@npm:2.0.18"
+ checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3
+ languageName: node
+ linkType: hard
+
"nopt@npm:^5.0.0":
version: 5.0.0
resolution: "nopt@npm:5.0.0"
@@ -7120,6 +7411,13 @@ __metadata:
languageName: node
linkType: hard
+"picocolors@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "picocolors@npm:1.0.1"
+ checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5
+ languageName: node
+ linkType: hard
+
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3":
version: 2.3.0
resolution: "picomatch@npm:2.3.0"
@@ -7127,6 +7425,13 @@ __metadata:
languageName: node
linkType: hard
+"picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
+ languageName: node
+ linkType: hard
+
"pino-std-serializers@npm:^3.1.0":
version: 3.2.0
resolution: "pino-std-serializers@npm:3.2.0"
@@ -7835,6 +8140,17 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0":
+ version: 3.3.0
+ resolution: "schema-utils@npm:3.3.0"
+ dependencies:
+ "@types/json-schema": ^7.0.8
+ ajv: ^6.12.5
+ ajv-keywords: ^3.5.2
+ checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0
+ languageName: node
+ linkType: hard
+
"secure-json-parse@npm:^2.0.0":
version: 2.4.0
resolution: "secure-json-parse@npm:2.4.0"
@@ -7919,6 +8235,15 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"serialize-javascript@npm:^6.0.1":
+ version: 6.0.2
+ resolution: "serialize-javascript@npm:6.0.2"
+ dependencies:
+ randombytes: ^2.1.0
+ checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7
+ languageName: node
+ linkType: hard
+
"set-blocking@npm:~2.0.0":
version: 2.0.0
resolution: "set-blocking@npm:2.0.0"
@@ -8520,6 +8845,28 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"terser-webpack-plugin@npm:^5.3.10":
+ version: 5.3.10
+ resolution: "terser-webpack-plugin@npm:5.3.10"
+ dependencies:
+ "@jridgewell/trace-mapping": ^0.3.20
+ jest-worker: ^27.4.5
+ schema-utils: ^3.1.1
+ serialize-javascript: ^6.0.1
+ terser: ^5.26.0
+ peerDependencies:
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ "@swc/core":
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+ checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea
+ languageName: node
+ linkType: hard
+
"terser@npm:^5.14.2, terser@npm:^5.7.0":
version: 5.15.1
resolution: "terser@npm:5.15.1"
@@ -8534,6 +8881,20 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"terser@npm:^5.26.0":
+ version: 5.31.6
+ resolution: "terser@npm:5.31.6"
+ dependencies:
+ "@jridgewell/source-map": ^0.3.3
+ acorn: ^8.8.2
+ commander: ^2.20.0
+ source-map-support: ~0.5.20
+ bin:
+ terser: bin/terser
+ checksum: 60d3faf39c9ad7acc891e17888bbd206e0b777f442649cf49873a5fa317b8b8a17179a46970d884d5f93e8addde0206193ed1e2e4f1ccb1cafb167f7d1ddee96
+ languageName: node
+ linkType: hard
+
"test-exclude@npm:^6.0.0":
version: 6.0.0
resolution: "test-exclude@npm:6.0.0"
@@ -8662,7 +9023,7 @@ resolve@^2.0.0-next.3:
terser-webpack-plugin: ^5.1.4
typescript: ^4.9.4
url-loader: ^4.1.1
- webpack: ^5.75.0
+ webpack: ^5.94.0
webpack-bundle-analyzer: ^4.4.2
webpack-cli: ^4.7.2
languageName: unknown
@@ -9052,6 +9413,20 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"update-browserslist-db@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "update-browserslist-db@npm:1.1.0"
+ dependencies:
+ escalade: ^3.1.2
+ picocolors: ^1.0.1
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+ bin:
+ update-browserslist-db: cli.js
+ checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562
+ languageName: node
+ linkType: hard
+
"upper-case-first@npm:^2.0.2":
version: 2.0.2
resolution: "upper-case-first@npm:2.0.2"
@@ -9190,6 +9565,16 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"watchpack@npm:^2.4.1":
+ version: 2.4.2
+ resolution: "watchpack@npm:2.4.2"
+ dependencies:
+ glob-to-regexp: ^0.4.1
+ graceful-fs: ^4.1.2
+ checksum: 92d9d52ce3d16fd83ed6994d1dd66a4d146998882f4c362d37adfea9ab77748a5b4d1e0c65fa104797928b2d40f635efa8f9b925a6265428a69f1e1852ca3441
+ languageName: node
+ linkType: hard
+
"webidl-conversions@npm:^5.0.0":
version: 5.0.0
resolution: "webidl-conversions@npm:5.0.0"
@@ -9284,7 +9669,7 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
-"webpack@npm:^5, webpack@npm:^5.75.0":
+"webpack@npm:^5":
version: 5.75.0
resolution: "webpack@npm:5.75.0"
dependencies:
@@ -9321,6 +9706,42 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
+"webpack@npm:^5.94.0":
+ version: 5.94.0
+ resolution: "webpack@npm:5.94.0"
+ dependencies:
+ "@types/estree": ^1.0.5
+ "@webassemblyjs/ast": ^1.12.1
+ "@webassemblyjs/wasm-edit": ^1.12.1
+ "@webassemblyjs/wasm-parser": ^1.12.1
+ acorn: ^8.7.1
+ acorn-import-attributes: ^1.9.5
+ browserslist: ^4.21.10
+ chrome-trace-event: ^1.0.2
+ enhanced-resolve: ^5.17.1
+ es-module-lexer: ^1.2.1
+ eslint-scope: 5.1.1
+ events: ^3.2.0
+ glob-to-regexp: ^0.4.1
+ graceful-fs: ^4.2.11
+ json-parse-even-better-errors: ^2.3.1
+ loader-runner: ^4.2.0
+ mime-types: ^2.1.27
+ neo-async: ^2.6.2
+ schema-utils: ^3.2.0
+ tapable: ^2.1.1
+ terser-webpack-plugin: ^5.3.10
+ watchpack: ^2.4.1
+ webpack-sources: ^3.2.3
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+ bin:
+ webpack: bin/webpack.js
+ checksum: 6a3d667be304a69cd6dcb8d676bc29f47642c0d389af514cfcd646eaaa809961bc6989fc4b2621a717dfc461130f29c6e20006d62a32e012dafaa9517813a4e6
+ languageName: node
+ linkType: hard
+
"whatwg-encoding@npm:^1.0.5":
version: 1.0.5
resolution: "whatwg-encoding@npm:1.0.5"