Skip to content

Commit

Permalink
Merge branch 'master' into Working-Joe-Emotes
Browse files Browse the repository at this point in the history
  • Loading branch information
Ben10083 authored Sep 25, 2023
2 parents 7456666 + 933efa9 commit 2c85703
Show file tree
Hide file tree
Showing 16 changed files with 671 additions and 367 deletions.
3 changes: 3 additions & 0 deletions code/__DEFINES/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@
#define TRAIT_HARDCORE "t_hardcore"
/// If the mob is able to use the vulture rifle or spotting scope
#define TRAIT_VULTURE_USER "t_vulture_user"
/// If the mob is cloaked in any form
#define TRAIT_CLOAKED "t_cloaked"

// -- ability traits --
/// Xenos with this trait cannot have plasma transfered to them
Expand Down Expand Up @@ -282,6 +284,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_LISPING" = TRAIT_LISPING,
"TRAIT_CANNOT_EAT" = TRAIT_CANNOT_EAT,
"TRAIT_VULTURE_USER" = TRAIT_VULTURE_USER,
"TRAIT_CLOAKED" = TRAIT_CLOAKED,
),
/mob/living/carbon/xenomorph = list(
"TRAIT_ABILITY_NO_PLASMA_TRANSFER" = TRAIT_ABILITY_NO_PLASMA_TRANSFER,
Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/ARES/ARES_step_triggers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
return FALSE
if(!(ishuman(passer) || isxeno(passer)))
return FALSE
if(passer.alpha <= 100)//Can't be seen/detected to trigger alert.
if(HAS_TRAIT(passer, TRAIT_CLOAKED))
return FALSE
if(pass_jobs)
if(passer.job in pass_jobs)
Expand Down Expand Up @@ -117,7 +117,7 @@
return FALSE
if(!passer)
return FALSE
if(passer.alpha <= 100)//Can't be seen/detected to trigger alert.
if(HAS_TRAIT(passer, TRAIT_CLOAKED))//Can't be seen/detected to trigger alert.
return FALSE
var/area/pass_area = get_area(get_step(passer, passer.dir))
if(istype(pass_area, /area/almayer/command/airoom))//Don't want it to freak out over someone /entering/ the area. Only leaving.
Expand Down
2 changes: 2 additions & 0 deletions code/game/machinery/vending/vendor_types/crew/synthetic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list(
list("MP Cap", 12, /obj/item/clothing/head/beret/marine/mp/mpcap, null, VENDOR_ITEM_REGULAR),
list("RO Cap", 12, /obj/item/clothing/head/cmcap/req, null, VENDOR_ITEM_REGULAR),
list("Officer Cap", 12, /obj/item/clothing/head/cmcap/ro, null, VENDOR_ITEM_REGULAR),
list("Bio Hood", 12, /obj/item/clothing/head/bio_hood/synth, null, VENDOR_ITEM_REGULAR),
list("Marine Helmet", 12, /obj/item/clothing/head/helmet/marine, null, VENDOR_ITEM_REGULAR),
list("Grey Marine Helmet", 12, /obj/item/clothing/head/helmet/marine/grey, null, VENDOR_ITEM_REGULAR),
list("Technician Helmet", 12, /obj/item/clothing/head/helmet/marine/tech, null, VENDOR_ITEM_REGULAR),
Expand Down Expand Up @@ -257,6 +258,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth_snowflake, list(
list("Labcoat", 12, /obj/item/clothing/suit/storage/labcoat, null, VENDOR_ITEM_REGULAR),
list("Labcoat, Researcher", 12, /obj/item/clothing/suit/storage/labcoat/researcher, null, VENDOR_ITEM_REGULAR),
list("Quartermaster Jacket", 12, /obj/item/clothing/suit/storage/RO, null, VENDOR_ITEM_REGULAR),
list("Bio Suit", 12, /obj/item/clothing/suit/storage/synthbio, null, VENDOR_ITEM_REGULAR),
list("USCM Poncho", 12, /obj/item/clothing/accessory/poncho, null, VENDOR_ITEM_REGULAR),

list("BACKPACK", 0, null, null, null),
Expand Down
2 changes: 2 additions & 0 deletions code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -747,6 +747,7 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r
RegisterSignal(H, COMSIG_HUMAN_EXTINGUISH, PROC_REF(wrapper_fizzle_camouflage))

camo_active = TRUE
ADD_TRAIT(H, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_BACK))
H.visible_message(SPAN_DANGER("[H] vanishes into thin air!"), SPAN_NOTICE("You activate your cloak's camouflage."), max_distance = 4)
playsound(H.loc, 'sound/effects/cloak_scout_on.ogg', 15, TRUE)
H.unset_interaction()
Expand Down Expand Up @@ -785,6 +786,7 @@ GLOBAL_LIST_EMPTY_TYPED(radio_packs, /obj/item/storage/backpack/marine/satchel/r
cloak_cooldown = world.time + 10 SECONDS

camo_active = FALSE
REMOVE_TRAIT(H, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_BACK))
H.visible_message(SPAN_DANGER("[H] shimmers into existence!"), SPAN_WARNING("Your cloak's camouflage has deactivated!"), max_distance = 4)
playsound(H.loc, 'sound/effects/cloak_scout_off.ogg', 15, TRUE)

Expand Down
26 changes: 26 additions & 0 deletions code/modules/clothing/suits/bio.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
flags_armor_protection = BODY_FLAG_HEAD|BODY_FLAG_FACE|BODY_FLAG_EYES
siemens_coefficient = 0.9

/obj/item/clothing/head/bio_hood/synth
desc = "A hood that protects the head and face from biological contaminants, synthetic compliant. Offers no real protection."
armor_bio = CLOTHING_ARMOR_NONE
armor_rad = CLOTHING_ARMOR_NONE
armor_internaldamage = CLOTHING_ARMOR_NONE

/obj/item/clothing/suit/bio_suit
name = "bio suit"
desc = "A suit that protects against biological contamination."
Expand All @@ -38,6 +44,26 @@
flags_inv_hide = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
siemens_coefficient = 0.9

/obj/item/clothing/suit/storage/synthbio
name = "bio suit"
desc = "Synthetic compliant bio-hazard suit. Intended to allow a synthetic to offer the illusion of infection control to humans. Has had most of the internal protective lining removed, allowing it to hold equipment and be lighter to move in."
icon_state = "bio"
item_state = "bio_suit"
allowed = list(
/obj/item/weapon/baton,
/obj/item/handcuffs,
/obj/item/device/binoculars,
/obj/item/attachable/bayonet,

/obj/item/device/flashlight,
/obj/item/device/healthanalyzer,
/obj/item/device/radio,
/obj/item/tool/crowbar,
/obj/item/tool/crew_monitor,
/obj/item/tool/pen,
/obj/item/storage/large_holster/machete,
/obj/item/device/motiondetector,
)

//Standard biosuit, orange stripe
/obj/item/clothing/head/bio_hood/general
Expand Down
4 changes: 3 additions & 1 deletion code/modules/cm_preds/yaut_bracers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,7 @@
return FALSE

cloaked = TRUE
ADD_TRAIT(M, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_HANDS))

RegisterSignal(M, COMSIG_HUMAN_EXTINGUISH, PROC_REF(wrapper_fizzle_camouflage))
RegisterSignal(M, COMSIG_HUMAN_PRE_BULLET_ACT, PROC_REF(bullet_hit))
Expand Down Expand Up @@ -617,7 +618,8 @@
cloak_malfunction = world.time + decloak_timer

cloaked = FALSE
log_game("[key_name_admin(usr)] has disabled their cloaking device.")
REMOVE_TRAIT(user, TRAIT_CLOAKED, TRAIT_SOURCE_EQUIPMENT(WEAR_HANDS))
log_game("[key_name_admin(user)] has disabled their cloaking device.")
user.visible_message(SPAN_WARNING("[user] shimmers into existence!"), SPAN_WARNING("Your cloaking device deactivates."))
playsound(user.loc, 'sound/effects/pred_cloakoff.ogg', 15, 1)
user.alpha = initial(user.alpha)
Expand Down
6 changes: 4 additions & 2 deletions code/modules/mob/living/carbon/xenomorph/castes/Lurker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@
if (LPA && istype(LPA))
LPA.knockdown = TRUE // pounce knocks down
LPA.freeze_self = TRUE
ADD_TRAIT(bound_xeno, TRAIT_CLOAKED, TRAIT_SOURCE_ABILITY("cloak"))
bound_xeno.stealth = TRUE
can_go_invisible = FALSE
invis_start_time = world.time
Expand All @@ -130,6 +131,7 @@
LPA.knockdown = FALSE // pounce no longer knocks down
LPA.freeze_self = FALSE
bound_xeno.stealth = FALSE
REMOVE_TRAIT(bound_xeno, TRAIT_CLOAKED, TRAIT_SOURCE_ABILITY("cloak"))

// SLIGHTLY hacky because we need to maintain lots of other state on the lurker
// whenever invisibility is on/off CD and when it's active.
Expand Down Expand Up @@ -166,8 +168,8 @@
return

var/mob/living/carbon/human/bumped_into = movable_atom
if(bumped_into.alpha < 100) //ignore invisible scouts and preds
if(HAS_TRAIT(bumped_into, TRAIT_CLOAKED)) //ignore invisible scouts and preds
return

to_chat(bound_xeno, SPAN_XENOHIGHDANGER("You bumped into someone and lost your invisibility!"))
lurker_invisibility_action.invisibility_off()
12 changes: 10 additions & 2 deletions code/modules/mob/mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,14 @@
if(max_distance) view_dist = max_distance
for(var/mob/M as anything in viewers(view_dist, src))
var/msg = message
if(self_message && M==src)
if(self_message && M == src)
msg = self_message
if(flags & CHAT_TYPE_TARGETS_ME)
flags = CHAT_TYPE_BEING_HIT

else if((M != src) && HAS_TRAIT(src, TRAIT_CLOAKED))
continue

M.show_message( msg, SHOW_MESSAGE_VISIBLE, blind_message, SHOW_MESSAGE_AUDIBLE, flags)
CHECK_TICK

Expand Down Expand Up @@ -183,10 +187,14 @@
// message is output to anyone who can see, e.g. "The [src] does something!"
// blind_message (optional) is what blind people will hear e.g. "You hear something!"
/atom/proc/visible_message(message, blind_message, max_distance, message_flags = CHAT_TYPE_OTHER)
if(HAS_TRAIT(src, TRAIT_CLOAKED))
return FALSE
var/view_dist = 7
if(max_distance) view_dist = max_distance
if(max_distance)
view_dist = max_distance
for(var/mob/M as anything in viewers(view_dist, src))
M.show_message(message, SHOW_MESSAGE_VISIBLE, blind_message, SHOW_MESSAGE_AUDIBLE, message_flags)
return TRUE

// Show a message to all mobs in earshot of this atom
// Use for objects performing only audible actions
Expand Down
4 changes: 0 additions & 4 deletions html/changelogs/AutoChangeLog-pr-4450.yml

This file was deleted.

4 changes: 0 additions & 4 deletions html/changelogs/AutoChangeLog-pr-4454.yml

This file was deleted.

4 changes: 0 additions & 4 deletions html/changelogs/AutoChangeLog-pr-4455.yml

This file was deleted.

4 changes: 0 additions & 4 deletions html/changelogs/AutoChangeLog-pr-4468.yml

This file was deleted.

4 changes: 0 additions & 4 deletions html/changelogs/AutoChangeLog-pr-4470.yml

This file was deleted.

4 changes: 0 additions & 4 deletions html/changelogs/AutoChangeLog-pr-4474.yml

This file was deleted.

23 changes: 23 additions & 0 deletions html/changelogs/archive/2023-09.yml
Original file line number Diff line number Diff line change
Expand Up @@ -310,3 +310,26 @@
- bugfix: Fixed intel squad "Unauthorized access detected"
realforest2001:
- rscadd: Gives survivors bank accounts.
2023-09-24:
BeagleGaming1:
- admin: Disabling round end delay has a confirmation
- rscadd: Added a mapping effect for prop guns
Morrow:
- bugfix: Fixed drag-n-drop nesting opening
Steelpoint:
- rscadd: Intel Officers will now default to using the Intel radio channel when
communicating.
Sylphily:
- rscadd: Added the ability for the IMP Ammo Rack to hold folding barricades.
Zonespace27:
- balance: Specialists now have separate pools of points for ammo and utility.
2023-09-25:
Steelpoint:
- rscadd: Synthetics may now vend biohazard suits for personal use. Synth compliant.
Zonespace27:
- balance: Cloaked mobs no longer give off visible messages
c4xmaniac2:
- balance: Comms areas around the east/west rivers expanded for easier sieges and
weedable now.
- maptweak: LV Comms now always spawn in Tcomms and one either on the east or west
river
Loading

0 comments on commit 2c85703

Please sign in to comment.