Skip to content

Commit

Permalink
Merge branch 'master' into datacore-port
Browse files Browse the repository at this point in the history
Signed-off-by: FalloutFalcon <[email protected]>
  • Loading branch information
FalloutFalcon authored May 14, 2024
2 parents 1910693 + 5c29783 commit dda95ab
Show file tree
Hide file tree
Showing 27 changed files with 405 additions and 133 deletions.
4 changes: 4 additions & 0 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,11 @@
///called in /obj/item/gun/process_chamber (src)
#define COMSIG_GUN_CHAMBER_PROCESSED "gun_chamber_processed"


///Global signal sent when the Datacore's initial manifest is complete
#define COMSIG_GLOB_DATACORE_READY "datacore_ready"
///Global signal sent when the datacore is added to via manifest_inject() (datum/data/record/general, datum/data/record/medical, datum/data/record/security, datum/data/record/locked)
#define COMSIG_GLOB_MANIFEST_INJECT "manifest_inject"

///called when an elzu should unroot
#define COMSIG_DIGOUT "dig_out"
14 changes: 10 additions & 4 deletions code/datums/components/storage/concrete/pockets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,16 @@
/datum/component/storage/concrete/pockets/helmet/Initialize()
. = ..()
set_holdable(list(
/obj/item/reagent_containers/food/drinks/bottle/vodka,
/obj/item/reagent_containers/food/drinks/bottle/molotov,
/obj/item/reagent_containers/food/drinks/drinkingglass,
/obj/item/ammo_box/magazine/illestren_a850r
/obj/item/clothing/glasses/cold,
/obj/item/clothing/glasses/heat,
/obj/item/clothing/glasses/welding,
/obj/item/clothing/glasses/thermal,
/obj/item/clothing/glasses/night,
/obj/item/clothing/glasses/hud/health/night,
/obj/item/clothing/glasses/hud/security/night,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/ammo_casing,
/obj/item/ammo_box/magazine/illestren_a850r,
))

/datum/component/storage/concrete/pockets/holster
Expand Down
5 changes: 5 additions & 0 deletions code/datums/mood_events/generic_positive_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -239,3 +239,8 @@
description = "Fishing is relaxing"
mood_change = 5
timeout = 3 MINUTES

/datum/mood_event/root
description = span_nicegreen("I rooted recently, it feels good to charge naturally.\n")
mood_change = 5
timeout = 5 MINUTES
26 changes: 26 additions & 0 deletions code/datums/status_effects/neutral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -275,3 +275,29 @@
/atom/movable/screen/alert/status_effect/surrender/Click(location, control, params)
. = ..()
owner.emote("surrender")

/datum/status_effect/rooted
id = "rooted"
alert_type = /atom/movable/screen/alert/status_effect/rooted

/datum/status_effect/rooted/on_apply()
. = ..()
ADD_TRAIT(owner,TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id))
ADD_TRAIT(owner,TRAIT_PUSHIMMUNE, TRAIT_STATUS_EFFECT(id))
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "root", /datum/mood_event/root)

/datum/status_effect/rooted/on_remove()
. = ..()
REMOVE_TRAIT(owner,TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(id))
REMOVE_TRAIT(owner,TRAIT_PUSHIMMUNE, TRAIT_STATUS_EFFECT(id))

/atom/movable/screen/alert/status_effect/rooted
name = "Rooted"
desc = "You're currently rooted into the ground and can't move. Click here to start digging yourself out."
icon_state = "dig_out"

/atom/movable/screen/alert/status_effect/rooted/Click(location, control, params)
. = ..()
to_chat(owner, span_notice("You begin digging yourself free."))
SEND_SIGNAL(owner,COMSIG_DIGOUT)

26 changes: 13 additions & 13 deletions code/game/objects/effects/anomalies/anomalies_static.dm
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,19 @@
playsound(src, 'sound/effects/walkietalkie.ogg', 75)
if(stored_mob && looking.stat != DEAD && prob(25))
say_fucky_things()
if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD || !HAS_TRAIT(looking, TRAIT_DEAF))
looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200)
playsound(src, 'sound/effects/stall.ogg', 50)
if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD)
if(prob(20))
var/mob/living/carbon/victim = looking
var/obj/effect/anomaly/tvstatic/planetary/expansion
expansion = new(get_turf(victim))
visible_message(span_warning("The static overtakes [victim], taking their place!"))
victim.death()
expansion.stored_mob = victim
victim.forceMove(expansion)
return
if(HAS_TRAIT(looking, TRAIT_MINDSHIELD) || looking.stat == DEAD || looking.research_scanner || HAS_TRAIT(looking, TRAIT_DEAF))
continue
looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200)
playsound(src, 'sound/effects/stall.ogg', 50)
if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD)
if(prob(20))
var/mob/living/carbon/victim = looking
var/obj/effect/anomaly/tvstatic/planetary/expansion
expansion = new(get_turf(victim))
visible_message(span_warning("The static overtakes [victim], [expansion] taking their place!"))
victim.death()
expansion.stored_mob = victim
victim.forceMove(expansion)


/obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM)
Expand Down
3 changes: 3 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
/obj/item/proc/get_belt_overlay() //Returns the icon used for overlaying the object on a belt
return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', icon_state)

/obj/item/proc/get_helmet_overlay() // returns the icon for overlaying on a helmet
return mutable_appearance('icons/mob/clothing/helmet_overlays.dmi', icon_state)

/obj/item/proc/update_slot_icon()
if(!ismob(loc))
return
Expand Down
36 changes: 36 additions & 0 deletions code/modules/cargo/packs/ammo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,12 @@
contains = list(/obj/item/ammo_box/amagpellet_claris)
cost = 1000

/datum/supply_pack/ammo/a300
name = ".300 Magnum Stripper Clip Crate"
desc = "Contains a five round .300 Magnum stripper clip for sniper rifles such as the HP Scout."
contains = list(/obj/item/ammo_box/a300)
cost = 750

/datum/supply_pack/ammo/ebr_ammo
name = "M514 EBR .308 Magazine Crate"
desc = "Contains a .308 magazine for the M514 EBR rifle, containing ten rounds."
Expand Down Expand Up @@ -173,6 +179,12 @@
contains = list(/obj/item/ammo_box/a762_40)
cost = 500

/datum/supply_pack/ammo/a357_ammo_box
name = ".357 Ammo Box Crate"
desc = "Contains a fifty-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand."
contains = list(/obj/item/ammo_box/a357_box)
cost = 250

/datum/supply_pack/ammo/c556mmHITP_ammo_box
name = "5.56 Caseless Ammo Box Crate"
desc = "Contains a fifty-round 5.56mm caseless box for SolGov sidearms like the Pistole C."
Expand Down Expand Up @@ -209,6 +221,12 @@
contains = list(/obj/item/ammo_box/c9mm/ap)
cost = 500

/datum/supply_pack/ammo/a357match_ammo_box
name = ".357 Match Ammo Box Crate"
desc = "Contains a fifty-round .357 match box for better performance against armor."
contains = list(/obj/item/ammo_box/a357_box/match)
cost = 500

/datum/supply_pack/ammo/c556mmHITPap_ammo_box
name = "5.56 caseless AP Ammo Box Crate"
desc = "Contains a fifty-round 5.56mm caseless boxloaded with armor piercing ammo."
Expand All @@ -233,6 +251,12 @@
contains = list(/obj/item/ammo_box/c9mm/hp)
cost = 500

/datum/supply_pack/ammo/a357hp_ammo_box
name = ".357 HP Ammo Box Crate"
desc = "Contains a fifty-round .357 box loaded with hollow point ammo, great against unarmored targets."
contains = list(/obj/item/ammo_box/a357_box/hp)
cost = 500

/datum/supply_pack/ammo/c10mmhp_ammo_box
name = "10mm HP Ammo Box Crate"
desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets."
Expand Down Expand Up @@ -305,6 +329,18 @@
contains = list(/obj/item/ammo_box/c8x50mmhp_box)
cost = 500

/datum/supply_pack/ammo/a300_box
name = ".300 Ammo Box Crate"
desc = "Contains a twenty-round .300 Magnum ammo box for sniper rifles such as the HP Scout."
contains = list(/obj/item/ammo_box/a300_box)
cost = 500

/datum/supply_pack/ammo/a4570_box
name = ".45-70 Ammo Box Crate"
desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition."
contains = list(/obj/item/ammo_box/a4570)
cost = 500

/datum/supply_pack/ammo/ferropelletboxcrate
name = "Ferromagnetic Pellet Box Crate"
desc = "Contains a fifty-round ferromagnetic pellet ammo box for gauss guns such as the Claris."
Expand Down
64 changes: 44 additions & 20 deletions code/modules/cargo/packs/gun.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,19 @@
*/

/datum/supply_pack/gun/disposable
name = "Disposable Guns Crate"
desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 400cr. That price is still far too high; this pack contains five."
cost = 750
contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable,
/obj/item/gun/ballistic/automatic/pistol/disposable,
/obj/item/gun/ballistic/automatic/pistol/disposable,
/obj/item/gun/ballistic/automatic/pistol/disposable,
/obj/item/gun/ballistic/automatic/pistol/disposable)
name = "Disposable Gun Crate"
desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 200cr. That price is still far too high."
cost = 150
contains = list(/obj/item/gun/ballistic/automatic/pistol/disposable)
crate_name = "disposable gun crate"

/datum/supply_pack/gun/derringer
name = ".38 Derringer Crate"
desc = "A cheap, concealable pistol manufactured by the reputable Hunter's Pride. At least it's better than a disposable pistol. Chambered in .38 rounds."
cost = 350
contains = list(/obj/item/gun/ballistic/derringer)
crate_name = "derringer crate"

/datum/supply_pack/gun/commanders
name = "Commander Pistol Crate"
desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm."
Expand All @@ -36,15 +39,15 @@
cost = 1000
contains = list(/obj/item/gun/ballistic/automatic/pistol/candor)

/datum/supply_pack/gun/revolver
name = "Scarborough Revolver Crate"
desc = "Contains a concealable Scarborough revolver, chambered in .357."
/datum/supply_pack/gun/pepperbox
name = "HP Firebrand Pepperbox Revolver Crate"
desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357."
cost = 1250
contains = list(/obj/item/gun/ballistic/revolver)
contains = list(/obj/item/gun/ballistic/revolver/firebrand)

/datum/supply_pack/gun/detrevolver
name = "Hunter's Pride Detective Revolver Crate"
desc = "Contains a concealable Solarian revolver, chambered in .38."
desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38."
cost = 600
contains = list(/obj/item/gun/ballistic/revolver/detective)

Expand Down Expand Up @@ -107,6 +110,13 @@
Shotguns
*/

/datum/supply_pack/gun/doublebarrel_shotgun
name = "Double Barrel Shotgun Crate"
desc = "For when you need to deal with 2 drunkards the old-fashioned way. Contains a double-barreled shotgun, favored by Bartenders. Warranty voided if sawed off."
cost = 1000
contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel)
crate_name = "shotguns crate"

/datum/supply_pack/gun/hellfire_shotgun
name = "Hellfire Shotgun Crate"
desc = "For when you need to deal with 7 hooligans. Contains a pump shotgun, with a 8-round capacity."
Expand All @@ -132,20 +142,34 @@
contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow)
crate_name = "rifle crate"

/datum/supply_pack/gun/cobra20
name = "Cobra-20 SMG Crate"
desc = "Contains a .45 submachine gun, manufactured by Scarborough Arms and chambered in .45"
cost = 3000
contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra)
crate_name = "SMG crate"

/datum/supply_pack/gun/illestren
name = "Illestren Rifle Crate"
desc = "Contains a expertly made bolt action rifle intended for hunting wildlife. Chambered in 8x50mmR rounds."
cost = 1250
contains = list(/obj/item/gun/ballistic/rifle/illestren)
crate_name = "rifle crate"

/datum/supply_pack/gun/beacon
name = "Contender Break Action Rifle Crate"
desc = "Contains a single shot break action rifle to hunt wildlife that annoys you in particular. Chambered in devastating .45-70 rounds. Warranty voided if sawed off."
cost = 2250
contains = list(/obj/item/gun/ballistic/shotgun/doublebarrel/beacon)
crate_name = "rifle crate"

/datum/supply_pack/gun/scout
name = "Scout Sniper Rifle Crate"
desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum."
cost = 5500
contains = list(/obj/item/gun/ballistic/rifle/scout)
crate_name = "rifle crate"

/datum/supply_pack/gun/cobra20
name = "Cobra-20 SMG Crate"
desc = "Contains a .45 submachine gun, manufactured by Scarborough Arms and chambered in .45"
cost = 3000
contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra)
crate_name = "SMG crate"

/datum/supply_pack/gun/wt550
name = "WT-550 Auto Rifle Crate"
desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm."
Expand Down
8 changes: 3 additions & 5 deletions code/modules/cargo/packs/sec_supply.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,9 @@

/datum/supply_pack/sec_supply/riotshields
name = "Riot Shields Crate"
desc = "For when the greytide gets really uppity. Contains three riot shields."
cost = 2000
contains = list(/obj/item/shield/riot,
/obj/item/shield/riot,
/obj/item/shield/riot)
desc = "Contains a riot shield, effective at holding back hostile fauna, xenofauna, or large crowds."
cost = 600
contains = list(/obj/item/shield/riot)
crate_name = "riot shields crate"

/datum/supply_pack/sec_supply/survknives
Expand Down
4 changes: 4 additions & 0 deletions code/modules/client/loadout/loadout_suit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -111,3 +111,7 @@
display_name = "worn shirt"
path = /obj/item/clothing/suit/ianshirt

/datum/gear/suit/hawaiian
display_name = "floral shirt"
description = "From grills to guns, this shirt's seen it all."
path = /obj/item/clothing/suit/hawaiian
28 changes: 21 additions & 7 deletions code/modules/clothing/head/helmet.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,15 @@

dog_fashion = /datum/dog_fashion/head/helmet

var/can_flashlight = FALSE //if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached.
//if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached.
var/can_flashlight = FALSE
var/obj/item/flashlight/seclite/attached_light
var/datum/action/item_action/toggle_helmet_flashlight/action_light

pocket_storage_component_path = /datum/component/storage/concrete/pockets/helmet
// should we overlay the items inside our helmet
var/content_overlays = FALSE

/obj/item/clothing/head/helmet/Initialize()
. = ..()
if(attached_light)
Expand Down Expand Up @@ -171,16 +176,21 @@
var/mutable_appearance/flashlightlight_overlay
if(isinhands)
return
if(!attached_light)
return
if(attached_light.on)
flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', "[flashlight_state]_on")
if(attached_light)
if(attached_light.on)
flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', "[flashlight_state]_on")
else
flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', flashlight_state)
. += flashlightlight_overlay
if(content_overlays)
for(var/obj/item/I in contents)
. += I.get_helmet_overlay()
else
flashlightlight_overlay = mutable_appearance('icons/mob/clothing/head.dmi', flashlight_state)
. += flashlightlight_overlay
return

/obj/item/clothing/head/helmet/sec
can_flashlight = TRUE
content_overlays = TRUE

/obj/item/clothing/head/helmet/sec/attackby(obj/item/I, mob/user, params)
if(issignaler(I))
Expand Down Expand Up @@ -214,6 +224,7 @@
"Snow" = "helmetalt_snow",
"Urban" = "helmetalt_urban",
)
content_overlays = TRUE

/obj/item/clothing/head/helmet/marine
name = "tactical combat helmet"
Expand Down Expand Up @@ -497,13 +508,15 @@
icon_state = "inteq_swat"
item_state = "inteq_swat"
flags_inv = HIDEHAIR
content_overlays = TRUE

/obj/item/clothing/head/helmet/inteq
name = "inteq helmet"
desc = "A standard issue helmet in the colors of the IRMG. It doesn't feel special in any way."
icon_state = "inteq_helmet"
icon_state = "inteq_helmet"
can_flashlight = TRUE
content_overlays = TRUE

/obj/item/clothing/head/solgov
name = "\improper SolGov officer's cap"
Expand Down Expand Up @@ -545,6 +558,7 @@
desc = "A robust combat helmet commonly employed by Syndicate forces, regardless of alignment."
icon_state = "operator"
item_state = "operator"
content_overlays = TRUE

/obj/item/clothing/head/helmet/medical
name = "\improper trauma team helmet"
Expand Down
2 changes: 2 additions & 0 deletions code/modules/clothing/spacesuits/_spacesuits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
resistance_flags = NONE
dog_fashion = null
content_overlays = FALSE
pocket_storage_component_path = null

/obj/item/clothing/suit/space
name = "space suit"
Expand Down
Loading

0 comments on commit dda95ab

Please sign in to comment.