Skip to content

Commit

Permalink
Merge branch 'SkyRatMaster' into upstreammaint
Browse files Browse the repository at this point in the history
  • Loading branch information
RogueStationAI committed Aug 29, 2024
2 parents 66cbc24 + 64f5a86 commit e126668
Show file tree
Hide file tree
Showing 14 changed files with 259 additions and 213 deletions.
358 changes: 179 additions & 179 deletions _maps/RandomZLevels/snowdin.dmm

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion code/__DEFINES/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,6 @@
ACCESS_PHARMACY, \
ACCESS_PLUMBING, \
ACCESS_PSYCHOLOGY, \
ACCESS_QM, \
ACCESS_RESEARCH, \
ACCESS_ROBOTICS, \
ACCESS_SCIENCE, \
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/id_access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ SUBSYSTEM_DEF(id_access)
desc_by_access["[ACCESS_VIROLOGY]"] = "Virology"
desc_by_access["[ACCESS_PSYCHOLOGY]"] = "Psychology"
desc_by_access["[ACCESS_CMO]"] = "CMO Office"
desc_by_access["[ACCESS_QM]"] = "Quartermaster"
desc_by_access["[ACCESS_QM]"] = "QM Office"
desc_by_access["[ACCESS_SURGERY]"] = "Surgery"
desc_by_access["[ACCESS_THEATRE]"] = "Theatre"
desc_by_access["[ACCESS_RESEARCH]"] = "Science"
Expand Down
2 changes: 1 addition & 1 deletion code/datums/looping_sounds/_looping_sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* A datum for sounds that need to loop, with a high amount of configurability.
*/
/datum/looping_sound
/// (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end.
/// (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. In a list, path must have also be assigned a value or it will be assigned 0 and not play.
var/mid_sounds
/// The length of time to wait between playing mid_sounds.
var/mid_length
Expand Down
2 changes: 1 addition & 1 deletion code/datums/looping_sounds/machinery_sounds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@
start_sound = 'sound/machines/computer/computer_start.ogg'
start_length = 7.2 SECONDS
start_volume = 10
mid_sounds = list('sound/machines/computer/computer_mid1.ogg', 'sound/machines/computer/computer_mid2.ogg')
mid_sounds = list('sound/machines/computer/computer_mid1.ogg' = 1, 'sound/machines/computer/computer_mid2.ogg' = 1)
mid_length = 1.8 SECONDS
end_sound = 'sound/machines/computer/computer_end.ogg'
end_volume = 10
Expand Down
9 changes: 9 additions & 0 deletions code/game/objects/effects/anomalies/_anomalies.dm
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,15 @@

/obj/effect/anomaly/proc/anomalyNeutralize()
new /obj/effect/particle_effect/fluid/smoke/bad(loc)
SSblackbox.record_feedback(
"nested tally",
"anomaly_defused",
1,
list(
"[type]",
immortal ? "immortal" : "[round((death_time - world.time) / 10)]ds time left",
)
)

if(drops_core)
if(isnull(anomaly_core))
Expand Down
6 changes: 3 additions & 3 deletions code/game/objects/items/storage/holsters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@

/obj/item/storage/belt/holster/detective/full/PopulateContents()
generate_items_inside(list(
/obj/item/gun/ballistic/revolver/c38/detective = 1,
/obj/item/ammo_box/c38 = 2,
/obj/item/gun/ballistic/revolver/c38/detective = 1,
), src)

/obj/item/storage/belt/holster/detective/full/ert
Expand All @@ -126,8 +126,8 @@

/obj/item/storage/belt/holster/detective/full/ert/PopulateContents()
generate_items_inside(list(
/obj/item/gun/ballistic/automatic/pistol/m1911 = 1,
/obj/item/ammo_box/magazine/m45 = 2,
/obj/item/gun/ballistic/automatic/pistol/m1911 = 1,
),src)

/obj/item/storage/belt/holster/chameleon
Expand Down Expand Up @@ -197,8 +197,8 @@

/obj/item/storage/belt/holster/nukie/cowboy/full/PopulateContents()
generate_items_inside(list(
/obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1,
/obj/item/ammo_box/a357 = 2,
/obj/item/gun/ballistic/revolver/syndicate/cowboy/nuclear = 1,
), src)


Expand Down
1 change: 1 addition & 0 deletions code/modules/antagonists/voidwalker/voidwalker_species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
TRAIT_ADVANCEDTOOLUSER,
TRAIT_NO_BLOOD_OVERLAY,
TRAIT_NO_THROWING,
TRAIT_GENELESS,
)
changesource_flags = MIRROR_BADMIN

Expand Down
6 changes: 6 additions & 0 deletions code/modules/mob/living/carbon/carbon_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,12 @@

/// Randomise a body part and organ of this mob
/mob/living/carbon/proc/bioscramble(scramble_source)
if(!(mob_biotypes & MOB_ORGANIC))
return FALSE

if (HAS_TRAIT(src, TRAIT_GENELESS))
return FALSE

if (run_armor_check(attack_flag = BIO, absorb_text = "Your armor protects you from [scramble_source]!") >= 100)
return FALSE

Expand Down
21 changes: 12 additions & 9 deletions code/modules/reagents/chemistry/holder/holder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -344,26 +344,29 @@
stack_trace("invalid reagent path passed to convert reagent [source_reagent_typepath]")
return FALSE

var/reagent_amount
var/reagent_purity
var/reagent_ph
var/reagent_amount = 0
var/reagent_purity = 0
var/reagent_ph = 0
if(include_source_subtypes)
reagent_ph = ph
var/weighted_purity
var/list/reagent_type_list = typecacheof(source_reagent_typepath)
for(var/datum/reagent/reagent as anything in reagent_list)
if(reagent.type in reagent_type_list)
if(is_type_in_typecache(reagent, reagent_type_list))
weighted_purity += reagent.volume * reagent.purity
reagent_amount += reagent.volume
remove_reagent(reagent.type, reagent.volume * multiplier)
reagent_purity = weighted_purity / reagent_amount
else
var/datum/reagent/source_reagent = has_reagent(source_reagent_typepath)
reagent_amount = source_reagent.volume
reagent_purity = source_reagent.purity
reagent_ph = source_reagent.ph
remove_reagent(source_reagent_typepath, reagent_amount)
add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph)
if(istype(source_reagent))
reagent_amount = source_reagent.volume
reagent_purity = source_reagent.purity
reagent_ph = source_reagent.ph
remove_reagent(source_reagent_typepath, reagent_amount)

if(reagent_amount > 0)
add_reagent(target_reagent_typepath, reagent_amount * multiplier, reagtemp = chem_temp, added_purity = reagent_purity, added_ph = reagent_ph)

/// Removes all reagents
/datum/reagents/proc/clear_reagents()
Expand Down
19 changes: 19 additions & 0 deletions code/modules/reagents/chemistry/recipes/others.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,13 @@
results = list(/datum/reagent/consumable/salt = 2)
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) // That's what I said! Sodium Chloride!
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD
required_other = TRUE

/datum/chemical_reaction/sodiumchloride/pre_reaction_other_checks(datum/reagents/holder)
. = ..()
if(holder.has_reagent(/datum/reagent/consumable/liquidelectricity) || holder.has_reagent(/datum/reagent/consumable/liquidelectricity/enriched))
return FALSE


/datum/chemical_reaction/stable_plasma
results = list(/datum/reagent/stable_plasma = 1)
Expand Down Expand Up @@ -600,6 +607,18 @@
results = list(/datum/reagent/oxygen = 2.5, /datum/reagent/hydrogen = 5)
required_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 1, /datum/reagent/water = 5)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL

//salt electrolysis
/datum/chemical_reaction/saltelectrolysis
results = list(/datum/reagent/chlorine = 2.5, /datum/reagent/sodium = 2.5)
required_reagents = list(/datum/reagent/consumable/salt = 5)
required_catalysts = list(/datum/reagent/consumable/liquidelectricity = 1)
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL

/datum/chemical_reaction/saltelectrolysis/enriched
required_catalysts = list(/datum/reagent/consumable/liquidelectricity/enriched = 1)


//butterflium
/datum/chemical_reaction/butterflium
required_reagents = list(/datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/omnizine = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/consumable/nutriment = 1)
Expand Down
21 changes: 21 additions & 0 deletions html/changelogs/archive/2024-08.yml
Original file line number Diff line number Diff line change
Expand Up @@ -812,3 +812,24 @@
the IDMA Force has now succesfully repelled the attack and has shifted focus
toward trying to identify the suspect involved in this attack
- bugfix: weird suppresor overlay shenanigan
2024-08-28:
Odairu:
- balance: No more hands in army crawl (goodbye gbp)
SkyratBot:
- bugfix: Bioscrambler anomalies no longer affect inorganic species
- spellcheck: Fixed a typo on snowdin shuttle transi(s)t consoles
- rscadd: Added salt electrolysis reaction
projectkepler-ru:
- bugfix: eland not being restricted
- bugfix: battle rifle stillbeing puchasable normally
2024-08-29:
Melbert:
- bugfix: Juicing and grinding should break less
SkyratBot:
- qol: revolver in roundstart holsters is on the last slot and not on first
Vekter:
- bugfix: Fixed an issue causing Quartermaster office access to show in the wrong
area on Plexagon Access Management.
- bugfix: Fixed an inconsistency in the naming for QM Office access.
grungussuss:
- bugfix: after 4 years, computer sound loop now works properly
19 changes: 3 additions & 16 deletions modular_skyrat/master_files/code/datums/components/prone_mob.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,25 @@
if(!isliving(parent))
return COMPONENT_INCOMPATIBLE
source = parent
parent.add_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING), type)
parent.add_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING, TRAIT_HANDS_BLOCKED), type)
parent.add_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING), type)
passtable_on(parent, type)
source.layer = PROJECTILE_HIT_THRESHHOLD_LAYER

/datum/component/prone_mob/RegisterWithParent()
RegisterSignals(parent, list(COMSIG_MOVABLE_REMOVE_PRONE_STATE, COMSIG_LIVING_GET_PULLED), PROC_REF(stop_army_crawl))
RegisterSignals(parent, list(COMSIG_MOB_ATTACK_HAND, COMSIG_MOB_ITEM_ATTACK), PROC_REF(check_attack))
RegisterSignal(parent, COMSIG_LIVING_TRY_PULL, PROC_REF(check_pull))

/datum/component/prone_mob/UnregisterFromParent()
UnregisterSignal(parent, list(
COMSIG_LIVING_GET_PULLED,
COMSIG_MOB_ATTACK_HAND,
COMSIG_MOB_ITEM_ATTACK,
COMSIG_LIVING_GET_PULLED,
COMSIG_LIVING_TRY_PULL
COMSIG_LIVING_TRY_PULL,
))
return ..()

/datum/component/prone_mob/proc/check_attack(mob/living/source)
SIGNAL_HANDLER
return COMPONENT_CANCEL_ATTACK_CHAIN

/datum/component/prone_mob/proc/check_pull(mob/living/source)
SIGNAL_HANDLER
return COMSIG_LIVING_CANCEL_PULL

/datum/component/prone_mob/proc/stop_army_crawl(mob/living/source)
SIGNAL_HANDLER
source = parent
parent.remove_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING), type)
parent.remove_traits(list(TRAIT_PRONE, TRAIT_FLOORED, TRAIT_NO_THROWING, TRAIT_HANDS_BLOCKED), type)
passtable_off(parent, type)
source.layer = MOB_LAYER
qdel(src)
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@
/datum/armament_entry/company_import/sol_defense/sidearm/eland
item_type = /obj/item/gun/ballistic/revolver/sol
cost = PAYCHECK_COMMAND * 4
restricted = TRUE

//You can still buy it from cargo side
//If cargo decides to agree with sec on a compromise then good job
Expand Down Expand Up @@ -131,14 +132,14 @@
cost = PAYCHECK_COMMAND * 10
contraband = TRUE
//Begone
*/
/datum/armament_entry/company_import/sol_defense/longarm/infanterie
item_type = /obj/item/gun/ballistic/automatic/sol_rifle
cost = PAYCHECK_COMMAND * 14
contraband = TRUE
/* These one are simply rediculous, but we'll keep it there incase someone has idea
These one are simply rediculous, but we'll keep it there incase someone has idea
/datum/armament_entry/company_import/sol_defense/longarm/outomaties
item_type = /obj/item/gun/ballistic/automatic/sol_rifle/machinegun
cost = PAYCHECK_COMMAND * 23
Expand Down

0 comments on commit e126668

Please sign in to comment.