[MIRROR] More PSG changes (#10709)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-04-21 15:53:47 -07:00
committed by GitHub
parent ff63262b79
commit b76e7c00e1
12 changed files with 140 additions and 25 deletions

View File

@@ -148,7 +148,8 @@
/obj/item/clothing/gloves/sterile/latex,
/obj/item/healthanalyzer,
/obj/item/flashlight/pen,
/obj/item/reagent_containers/syringe
/obj/item/reagent_containers/syringe,
/obj/item/personal_shield_generator/belt/medical/loaded
)
cost = 50
containertype = /obj/structure/closet/crate/secure/nanomed

View File

@@ -269,11 +269,13 @@
/datum/supply_pack/randomised/misc/explorer_shield
name = JOB_EXPLORER + " shield"
desc = "A pair of shields for use by away teams. Requires EVA or Pilot's access."
desc = "Two Physical and Two PSG shields for use by away teams. Requires EVA or Pilot's access."
num_contained = 2
contains = list(
/obj/item/shield/riot/explorer,
/obj/item/shield/riot/explorer/purple
/obj/item/shield/riot/explorer/purple,
/obj/item/personal_shield_generator/belt/melee,
/obj/item/personal_shield_generator/belt/mining/upgraded
)
cost = 75
containertype = /obj/structure/closet/crate/secure/gear

View File

@@ -627,7 +627,8 @@
/obj/item/melee/telebaton,
/obj/item/shield/riot/tele,
/obj/item/clothing/head/beret/sec/corporate/hos,
/obj/item/flashlight/maglight
/obj/item/flashlight/maglight,
/obj/item/personal_shield_generator/belt/security/loaded
)
cost = 50
containertype = /obj/structure/closet/crate/secure/nanotrasen

View File

@@ -254,7 +254,8 @@
/obj/item/clothing/accessory/holster/machete,
/obj/item/storage/box/explorerkeys,
/obj/item/mapping_unit,
/obj/item/clothing/accessory/watch/survival
/obj/item/clothing/accessory/watch/survival,
/obj/item/personal_shield_generator/belt/melee/loaded
)
cost = 75
containertype = /obj/structure/closet/crate/secure/xion

View File

@@ -29,7 +29,7 @@
actions_types = list(/datum/action/item_action/toggle_shield)
var/obj/item/gun/energy/gun/generator/active_weapon
var/obj/item/cell/device/bcell = null
var/upgraded = 0 // If the PSG has been upgraded by some method or not. Only used for the mining belt ATM.
var/upgraded = FALSE // If the PSG has been upgraded by some method or not. Only used for the mining belt ATM.
var/generator_hit_cost = 100 // Power used when a special effect (such as a bullet being blocked) is performed! Could also be expanded to other things.
@@ -488,13 +488,21 @@
// Mining belts
/obj/item/personal_shield_generator/belt/mining
name = "mining PSG"
desc = "A personal shield generator designed for mining. It has a warning on the back: 'Do NOT expose the shield to stun-based weaponry.'"
name = "PSG Variant-M"
desc = "A personal shield generator designed for mining and combat with hostile creatures. \
It has a warning on the back: 'Do NOT expose the shield to stun-based weaponry.'"
modifier_type = /datum/modifier/shield_projection/mining
/obj/item/personal_shield_generator/belt/mining/loaded
bcell = /obj/item/cell/device/shield_generator
/obj/item/personal_shield_generator/belt/mining/upgraded
upgraded = TRUE
modifier_type = /datum/modifier/shield_projection/mining/strong
/obj/item/personal_shield_generator/belt/mining/upgraded/loaded
bcell = /obj/item/cell/device/shield_generator
/obj/item/personal_shield_generator/belt/mining/update_icon()
if(shield_active)
icon_state = "shieldpack_mining_on"
@@ -515,7 +523,7 @@
to_chat(user, span_warning("This shield generator is already upgraded!"))
return
modifier_type = /datum/modifier/shield_projection/mining/strong
upgraded = 1
upgraded = TRUE
to_chat(user, span_notice("You upgrade the [src] with the [W]!"))
user.drop_from_inventory(W)
qdel(W)
@@ -526,7 +534,7 @@
//Security belts
/obj/item/personal_shield_generator/belt/security
name = "security PSG"
name = "PSG Variant-S"
desc = "A personal shield generator designed for security."
modifier_type = /datum/modifier/shield_projection/security/weak
@@ -539,19 +547,34 @@
else
icon_state = "shieldpack_security"
//Misc belts. Admin-spawn only atm.
//PvE focused belt
/obj/item/personal_shield_generator/belt/melee
name = "PSG Variant-B"
desc = "A personal shield generator that creates a field that prevents the functionality of firearms in exchange \
for enhanceing melee potential. The shield makes its user more resistant to brute and burn, \
makes them harder to hit, able to hit harder, able to hit faster, allows faster movement, and \
allows the user to get up from disabling strikes faster."
damage_cost = 5
/obj/item/personal_shield_generator/belt/adminbus
desc = DEVELOPER_WARNING_NAME + " You REALLY should not see this. If you do, you have either been blessed or are about to be the target of some sick prank."
modifier_type = /datum/modifier/shield_projection/admin
generator_hit_cost = 0
generator_active_cost = 0
shield_active = 0
damage_cost = 0
modifier_type = /datum/modifier/shield_projection/melee_focus
/obj/item/personal_shield_generator/belt/melee/loaded
bcell = /obj/item/cell/device/shield_generator
//Misc belts.
/obj/item/personal_shield_generator/belt/medical
name = "PSG Variant-BIO"
desc = "A personal shield generator that creates a field that helps against biohazards \
for enhanceing melee potential. The shield makes its user resistant to toxic attacks, suffocating attacks, and DNA attacks"
modifier_type = /datum/modifier/shield_projection/biohazard
/obj/item/personal_shield_generator/belt/medical/loaded
bcell = /obj/item/cell/device/shield_generator
/obj/item/personal_shield_generator/belt/parry //The 'provides one second of pure immunity to brute/burn/halloss' belt.
name = "PSG variant-P" //Not meant to be used in any serious capacity.
name = "PSG Variant-P" //Not meant to be used in any serious capacity.
desc = "A personal shield generator that sacrifices long-term usability in exchange for a strong, short-lived shield projection, enabling the user to be nigh \
impervious for a second."
modifier_type = /datum/modifier/shield_projection/parry
@@ -561,11 +584,21 @@
shield_active = 0
bcell = /obj/item/cell/device/shield_generator/parry
//Badmin belt
/obj/item/personal_shield_generator/belt/adminbus
desc = DEVELOPER_WARNING_NAME + " You REALLY should not see this. If you do, you have either been blessed or are about to be the target of some sick prank."
modifier_type = /datum/modifier/shield_projection/admin
generator_hit_cost = 0
generator_active_cost = 0
shield_active = 0
damage_cost = 0
bcell = /obj/item/cell/device/shield_generator
// Backpacks. These are meant to be MUCH stronger in exchange for the fact that you are giving up a backpack slot.
// HOWEVER, be careful with these. They come loaded with a gun in them, so they shouldn't be handed out willy-nilly.
/obj/item/personal_shield_generator/security
name = "security PSG"
name = "Backpack PSG Variant-S"
desc = "A personal shield generator designed for security. Comes with a built in defense pistol."
modifier_type = /datum/modifier/shield_projection/security

View File

@@ -123,7 +123,8 @@
/obj/item/reagent_containers/food/snacks/liquidfood,
/obj/item/reagent_containers/food/snacks/liquidprotein,
/obj/item/cataloguer/compact/pathfinder,
/obj/item/mapping_unit)
/obj/item/mapping_unit,
/obj/item/personal_shield_generator/belt/melee/loaded)
/obj/structure/closet/secure_closet/pathfinder/Initialize(mapload)
if(prob(50))
@@ -175,7 +176,8 @@
/obj/item/gps/medical,
/obj/item/geiger,
/obj/item/bodybag/cryobag,
/obj/item/cataloguer/compact)
/obj/item/cataloguer/compact,
/obj/item/personal_shield_generator/belt/medical/loaded)
/obj/structure/closet/secure_closet/sar/Initialize(mapload)
if(prob(50))

View File

@@ -160,8 +160,9 @@
/obj/item/clothing/suit/bio_suit/cmo,
/obj/item/clothing/head/bio_hood/cmo,
/obj/item/clothing/shoes/white,
/obj/item/reagent_containers/glass/beaker/vial, //VOREStation Add
/obj/item/storage/belt/medical) //VOREStation Add
/obj/item/reagent_containers/glass/beaker/vial,
/obj/item/storage/belt/medical,
/obj/item/personal_shield_generator/belt/medical/loaded)
/obj/structure/closet/secure_closet/CMO/Initialize(mapload)
if(prob(50))

View File

@@ -73,7 +73,8 @@
// /obj/item/clothing/shoes/boots/winter/security, //CHOMP Remove
/obj/item/ticket_printer, //CHOMP Add
/obj/item/gun/energy/taser, // CHOMPADD
/obj/item/flashlight/maglight)
/obj/item/flashlight/maglight,
/obj/item/personal_shield_generator/security/loaded)
//Custom NT Security Lockers, Only found at central command
/obj/structure/closet/secure_closet/nanotrasen_security

View File

@@ -437,3 +437,11 @@ the artifact triggers the rage.
stacks = MODIFIER_STACK_EXTEND
slowdown = 2
/datum/modifier/trait/thickdigits
name = "Thick Digits"
desc = "Your hands cannot properly wield weapons."
/datum/modifier/rednet //Not used here currently, but used downstream. Todo: Port it.
mob_overlay_state = "red_electricity_constant"
slowdown = 1

View File

@@ -337,3 +337,45 @@
max_hal_resistance = 0
min_hal_resistance = 0
effective_hal_resistance = 1
/datum/modifier/shield_projection/melee_focus
//You are expected to be taking a LOT more hits while this is up.
damage_cost = 5
//.50% resistance at a full charge, 35% resistance at when we're about to empty.
max_brute_resistance = 0.5
min_brute_resistance = 0.65
effective_brute_resistance = 1
//.50% resistance at a full charge, 35% resistance at when we're about to empty.
max_fire_resistance = 0.5
min_fire_resistance = 0.65
effective_fire_resistance = 1
//500% damage taken from halloss. Anti PVP. This is meant to be a PvE weapon.
//This also means that mobs that deal halloss will wreck users of this...Those are (extremely) rare as far as I know.
min_hal_resistance = 5
max_hal_resistance = 5
effective_hal_resistance = 1
//Stuns are HALF as long. Get stunned for 4 seconds? Only stunned for 2, now.
disable_duration_percent = 0.5
//You are QUITE harder to shoot.
evasion = 35
//You move SOMEWHAT faster.
slowdown = -0.5
//You can't shoot, though. This isn't actually used as this modifier is checked in gun.dm, but it's here anyways.
accuracy = -1000
//You attack SOMEWHAT faster
attack_speed_percent = 0.8
//You hit SOMEWHAT harder
outgoing_melee_damage_percent = 1.25
//You bleed SLIGHTLY slower, since you are taking more hits.
bleeding_rate_percent = 0.75

View File

@@ -716,6 +716,16 @@
var_changes = list("dirtslip" = TRUE)
excludes = list(/datum/trait/positive/absorbent) // CHOMPAdd
/datum/trait/negative/thick_digits
name = "Thick Digits"
desc = "Your hands are not shaped in a way that allows useage of guns."
cost = -4
custom_only = FALSE
/datum/trait/negative/thick_digits/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..()
H.add_modifier(/datum/modifier/trait/thickdigits)
/datum/trait/negative/nodefib
name = "Unreviveable"
desc = "For whatever strange genetic reason, defibs cannot restart your heart."

View File

@@ -183,6 +183,19 @@
return 0
var/mob/living/M = user
if(istype(M))
if(M.has_modifier_of_type(/datum/modifier/underwater_stealth))
to_chat(user,span_warning("You cannot use guns whilst hiding underwater!"))
return 0
else if(M.has_modifier_of_type(/datum/modifier/rednet))
to_chat(user,span_warning("Your gun refuses to fire!"))
return 0
else if(M.has_modifier_of_type(/datum/modifier/trait/thickdigits))
to_chat(user,span_warning("Your hands can't pull the trigger!!"))
return 0
else if(M.has_modifier_of_type(/datum/modifier/shield_projection/melee_focus))
to_chat(user,span_warning("The shield projection around you prevents you from using anything but melee!!"))
return 0
if(dna_lock && attached_lock.stored_dna)
if(!authorized_user(user))
if(attached_lock.safety_level == 0)