Skip to content

Commit

Permalink
Merge branch 'master' into not-ugly-goggles
Browse files Browse the repository at this point in the history
  • Loading branch information
irRegularGuy646 authored Sep 19, 2023
2 parents c7743ca + 8294dbd commit 71293c9
Show file tree
Hide file tree
Showing 37 changed files with 4,207 additions and 1,934 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/job.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#define SQUAD_MARINE_4 "Delta"
#define SQUAD_MARINE_5 "Echo"
#define SQUAD_MARINE_CRYO "Foxtrot"
#define SQUAD_MARINE_INTEL "Intel"
#define SQUAD_SOF "SOF"

// Job name defines
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/minimap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ GLOBAL_LIST_INIT(all_minimap_flags, bitfield2list(MINIMAP_FLAG_ALL))
#define MINIMAP_SQUAD_ECHO "#00b043"
#define MINIMAP_SQUAD_FOXTROT "#fe7b2e"
#define MINIMAP_SQUAD_SOF "#400000"
#define MINIMAP_SQUAD_INTEL "#053818"

#define MINIMAP_ICON_BACKGROUND_CIVILIAN "#7D4820"
#define MINIMAP_ICON_BACKGROUND_CIC "#3f3f3f"
Expand Down
4 changes: 4 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,10 @@
// Queen strain flags
#define QUEEN_NORMAL "Normal"

// Facehugger strain flags
#define FACEHUGGER_NORMAL "Normal"
#define FACEHUGGER_WATCHER "Watcher"

// Drone strain flags
#define DRONE_NORMAL "Normal"
#define DRONE_HEALER "Healer"
Expand Down
2 changes: 1 addition & 1 deletion code/game/jobs/job/command/auxiliary/intel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
allow_additional = 1
scaled = 1
supervisors = "the auxiliary support officer"
flags_startup_parameters = ROLE_ADD_TO_DEFAULT
flags_startup_parameters = ROLE_ADD_TO_DEFAULT|ROLE_ADD_TO_SQUAD
gear_preset = "USCM Intelligence Officer (IO) (Cryo)"
entry_message_body = "<a href='"+URL_WIKI_IO_GUIDE+"'>Your job is to assist the marines in collecting intelligence related</a> to the current operation to better inform command of their opposition. You are in charge of gathering any data disks, folders, and notes you may find on the operational grounds and decrypt them to grant the USCM additional resources."

Expand Down
29 changes: 27 additions & 2 deletions code/game/jobs/job/marine/squads.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
var/tracking_id = null //Used for the tracking subsystem
/// Maximum number allowed in a squad. Defaults to infinite
var/max_positions = -1
/// If uses the overlay
var/use_stripe_overlay = TRUE
/// Color for the squad marines gear overlays
var/equipment_color = "#FFFFFF"
/// The alpha for the armor overlay used by equipment color
Expand Down Expand Up @@ -108,6 +110,9 @@

var/minimap_color = MINIMAP_SQUAD_UNKNOWN

///Should we add the name of our squad in front of their name? Ex: Alpha Hospital Corpsman
var/prepend_squad_name_to_assignment = TRUE


/datum/squad/marine
name = "Root"
Expand Down Expand Up @@ -175,6 +180,23 @@
roundstart = FALSE
locked = TRUE

/datum/squad/marine/intel
name = SQUAD_MARINE_INTEL
use_stripe_overlay = FALSE
equipment_color = "#053818"
minimap_color = MINIMAP_SQUAD_INTEL
radio_freq = null

roundstart = FALSE
prepend_squad_name_to_assignment = FALSE

max_engineers = 0
max_medics = 0
max_specialists = 0
max_tl = 0
max_smartgun = 0
max_leaders = 0

/datum/squad/marine/sof
name = SQUAD_SOF
equipment_color = "#400000"
Expand Down Expand Up @@ -496,7 +518,10 @@
marines_list += M
M.assigned_squad = src //Add them to the squad
C.access += (src.access + extra_access) //Add their squad access to their ID
C.assignment = "[name] [assignment]"
if(prepend_squad_name_to_assignment)
C.assignment = "[name] [assignment]"
else
C.assignment = assignment

SEND_SIGNAL(M, COMSIG_SET_SQUAD)

Expand All @@ -505,7 +530,7 @@
C.name = "[C.registered_name]'s ID Card ([C.assignment])"

var/obj/item/device/radio/headset/almayer/marine/headset = locate() in list(M.wear_l_ear, M.wear_r_ear)
if(headset)
if(headset && radio_freq)
headset.set_frequency(radio_freq)
M.update_inv_head()
M.update_inv_wear_suit()
Expand Down
9 changes: 9 additions & 0 deletions code/game/jobs/role_authority.dm
Original file line number Diff line number Diff line change
Expand Up @@ -652,6 +652,15 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
if (S.roundstart && S.usable && S.faction == H.faction && S.name != "Root")
mixed_squads += S

//Deal with IOs first
if(H.job == JOB_INTEL)
var/datum/squad/intel_squad = get_squad_by_name(SQUAD_MARINE_INTEL)
if(!intel_squad || !istype(intel_squad)) //Something went horribly wrong!
to_chat(H, "Something went wrong with randomize_squad()! Tell a coder!")
return
intel_squad.put_marine_in_squad(H) //Found one, finish up
return

//Deal with non-standards first.
//Non-standards are distributed regardless of squad population.
//If the number of available positions for the job are more than max_whatever, it will break.
Expand Down
38 changes: 19 additions & 19 deletions code/game/machinery/vending/vendor_types/requisitions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@
/obj/structure/machinery/cm_vending/sorted/cargo_guns/populate_product_list(scale)
listed_products = list(
list("PRIMARY FIREARMS", -1, null, null),
list("M37A2 Pump Shotgun", round(scale * 10), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR),
list("M39 Submachinegun", round(scale * 15), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR),
list("M41A Pulse Rifle MK2", round(scale * 20), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR),
list("M37A2 Pump Shotgun", round(scale * 30), /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR),
list("M39 Submachinegun", round(scale * 60), /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR),
list("M41A Pulse Rifle MK2", round(scale * 60), /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR),
list("M4RA Battle Rifle", round(scale * 20), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR),

list("SIDEARMS", -1, null, null),
list("88 Mod 4 Combat Pistol", round(scale * 15), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 10), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 20), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", round(scale * 8), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
list("88 Mod 4 Combat Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 50), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", round(scale * 20), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),

list("RESTRICTED FIREARMS", -1, null, null),
list("VP78 Pistol", round(scale * 4), /obj/item/storage/box/guncase/vp78, VENDOR_ITEM_REGULAR),
Expand Down Expand Up @@ -220,17 +220,17 @@
/obj/structure/machinery/cm_vending/sorted/cargo_ammo/populate_product_list(scale)
listed_products = list(
list("REGULAR AMMUNITION", -1, null, null),
list("Box Of Buckshot Shells", round(scale * 2), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR),
list("Box Of Flechette Shells", round(scale * 2), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR),
list("Box Of Shotgun Slugs", round(scale * 2), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR),
list("M4RA Magazine (10x24mm)", round(scale * 20.8), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR),
list("M41A MK2 Magazine (10x24mm)", round(scale * 18), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR),
list("M39 HV Magazine (10x20mm)", round(scale * 17.1), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR),
list("M44 Speed Loader (.44)", round(scale * 18.1), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 20.5), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
list("Box Of Buckshot Shells", round(scale * 20), /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR),
list("Box Of Flechette Shells", round(scale * 8), /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR),
list("Box Of Shotgun Slugs", round(scale * 20), /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR),
list("M4RA Magazine (10x24mm)", round(scale * 30), /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR),
list("M41A MK2 Magazine (10x24mm)", round(scale * 50), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR),
list("M39 HV Magazine (10x20mm)", round(scale * 50), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR),
list("M44 Speed Loader (.44)", round(scale * 40), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),

list("ARMOR-PIERCING AMMUNITION", -1, null, null),
list("88 Mod 4 AP Magazine (9mm)", round(scale * 16.7), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR),
list("88 Mod 4 AP Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR),
list("M4RA AP Magazine (10x24mm)", round(scale * 15.7), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR),
list("M39 AP Magazine (10x20mm)", round(scale * 11.9), /obj/item/ammo_magazine/smg/m39/ap, VENDOR_ITEM_REGULAR),
list("M41A MK2 AP Magazine (10x24mm)", round(scale * 10.5), /obj/item/ammo_magazine/rifle/ap, VENDOR_ITEM_REGULAR),
Expand Down Expand Up @@ -259,9 +259,9 @@
list("M2C Box Magazine", round(scale * 2), /obj/item/ammo_magazine/m2c, VENDOR_ITEM_REGULAR),

list("SHOTGUN SHELL BOXES", -1, null, null),
list("Shotgun Shell Box (Buckshot x 100)", round(scale * 1), /obj/item/ammo_box/magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR),
list("Shotgun Shell Box (Flechette x 100)", round(scale * 1), /obj/item/ammo_box/magazine/shotgun/flechette, VENDOR_ITEM_REGULAR),
list("Shotgun Shell Box (Slugs x 100)", round(scale * 1), /obj/item/ammo_box/magazine/shotgun, VENDOR_ITEM_REGULAR),
list("Shotgun Shell Box (Buckshot x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR),
list("Shotgun Shell Box (Flechette x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun/flechette, VENDOR_ITEM_REGULAR),
list("Shotgun Shell Box (Slugs x 100)", round(scale * 2), /obj/item/ammo_box/magazine/shotgun, VENDOR_ITEM_REGULAR),
)

/obj/structure/machinery/cm_vending/sorted/cargo_ammo/stock(obj/item/item_to_stock, mob/user)
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/devices/scanners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -465,3 +465,4 @@ FORENSIC SCANNER
w_class = SIZE_SMALL
flags_atom = FPRINT
flags_equip_slot = SLOT_WAIST
inherent_traits = list(TRAIT_TOOL_TRADEBAND)
4 changes: 2 additions & 2 deletions code/modules/mob/living/carbon/human/update_icons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(istype(head, /obj/item/clothing/head/helmet/marine))
var/obj/item/clothing/head/helmet/marine/marine_helmet = head
if(assigned_squad && marine_helmet.flags_marine_helmet & HELMET_SQUAD_OVERLAY)
if(assigned_squad && assigned_squad.equipment_color)
if(assigned_squad && assigned_squad.equipment_color && assigned_squad.use_stripe_overlay)
var/leader = assigned_squad.squad_leader
var/image/helmet_overlay = image(marine_helmet.helmet_overlay_icon, icon_state = "std-helmet")
if(leader == src)
Expand Down Expand Up @@ -556,7 +556,7 @@ Applied by gun suicide and high impact bullet executions, removed by rejuvenate,
if(istype(wear_suit, /obj/item/clothing/suit/storage/marine))
var/obj/item/clothing/suit/storage/marine/marine_armor = wear_suit
if(marine_armor.flags_marine_armor & ARMOR_SQUAD_OVERLAY)
if(assigned_squad && assigned_squad.equipment_color)
if(assigned_squad && assigned_squad.equipment_color && assigned_squad.use_stripe_overlay)
var/leader = assigned_squad.squad_leader
var/image/squad_overlay = image(marine_armor.squad_overlay_icon, icon_state = "std-armor")
if(leader == src)
Expand Down
38 changes: 35 additions & 3 deletions code/modules/mob/living/carbon/xenomorph/castes/Facehugger.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,13 @@
PF.flags_can_pass_all = PASS_ALL^PASS_OVER_THROW_ITEM

/mob/living/carbon/xenomorph/facehugger/Life(delta_time)
if(stat != DEAD && !lying && !(mutation_type == FACEHUGGER_WATCHER) && !(locate(/obj/effect/alien/weeds) in get_turf(src)))
adjustBruteLoss(1)
return ..()
if(!client && !aghosted && away_timer > XENO_FACEHUGGER_LEAVE_TIMER)
// Become a npc once again
new /obj/item/clothing/mask/facehugger(loc, hivenumber)
qdel(src)
return
if(stat != DEAD && !lying && !(locate(/obj/effect/alien/weeds) in get_turf(src)))
adjustBruteLoss(1)
return ..()

/mob/living/carbon/xenomorph/facehugger/update_icons(is_pouncing)
Expand Down Expand Up @@ -217,3 +217,35 @@
. += "Lifetime Hugs: [total_facehugs] / [next_facehug_goal]"
else
. += "Lifetime Hugs: [total_facehugs]"


/datum/xeno_mutator/watcher
name = "STRAIN: Facehugger - Watcher"
description = "You lose your ability to hide in exchange to see further and the ability to no longer take damage outside of weeds. This enables you to stalk your host from a distance and wait for the perfect oppertunity to strike."
flavor_description = "No need to hide when you can see the danger."
individual_only = TRUE
caste_whitelist = list(XENO_CASTE_FACEHUGGER)
mutator_actions_to_remove = list(
/datum/action/xeno_action/onclick/xenohide,
)
mutator_actions_to_add = list(
/datum/action/xeno_action/onclick/toggle_long_range/runner,
)

cost = 1

keystone = TRUE

/datum/xeno_mutator/watcher/apply_mutator(datum/mutator_set/individual_mutators/mutator_set)
. = ..()
if(!.)
return

var/mob/living/carbon/xenomorph/facehugger/facehugger = mutator_set.xeno

facehugger.viewsize = 10
facehugger.layer = MOB_LAYER

facehugger.mutation_type = FACEHUGGER_WATCHER
mutator_update_actions(facehugger)
mutator_set.recalculate_actions(description, flavor_description)
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-4303.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "Huffie56"
delete-after: True
changes:
- balance: "made it so that req as double what a standard vendor as in ammo and guns."
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-4375.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "TheGamerdk, ihatethisengine"
delete-after: True
changes:
- rscadd: "IOs start in their own squad now"
5 changes: 5 additions & 0 deletions html/changelogs/AutoChangeLog-pr-4379.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
author: "c4xmaniac2"
delete-after: True
changes:
- mapadd: "Readds yard to Science Annex"
- maptweak: "Redid the yard loot to be more in line with current surv loot standards."
5 changes: 5 additions & 0 deletions html/changelogs/AutoChangeLog-pr-4386.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
author: "SpartanBobby, GSDPathe"
delete-after: True
changes:
- maptweak: "Changes to LV522 loot table surrounding metal spawns"
- maptweak: "Redectorates areas around LV522 that were underwhelming before"
12 changes: 12 additions & 0 deletions html/changelogs/archive/2023-09.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,3 +233,15 @@
- rscdel: Disables Shivas Snowball
Private Tristan:
- spellcheck: acid runners are now properly informed of their corrosive acid's strength.
2023-09-19:
Hopek:
- rscadd: 'New facehugger strain: Watcher. The Watcher loses their ability to hide
in exchange to see further and the ability to no longer take damage outside
of weeds.'
c4xmaniac2:
- balance: Moved 1/3 of all intel into the cave systems.
- maptweak: 1/3 of all Intel has been redistributed into the caves.
- maptweak: Nightmare inserts on the colony side and in the caves of LV now have
their intel distribution standardized.
realforest2001:
- bugfix: Fixes the CMB tradeband scanner not being able to do it's job.
Binary file modified icons/mob/xenos/facehugger.dmi
Binary file not shown.
Loading

0 comments on commit 71293c9

Please sign in to comment.