Skip to content

Commit

Permalink
Merge branch 'Monkestation:master' into the-art-e-facts-update
Browse files Browse the repository at this point in the history
  • Loading branch information
V2LenKagamine authored Sep 1, 2024
2 parents 75d80a8 + e7e998a commit 7ec30ef
Show file tree
Hide file tree
Showing 44 changed files with 306 additions and 47 deletions.
1 change: 1 addition & 0 deletions code/game/objects/items/storage/backpack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -678,6 +678,7 @@
desc = "A large duffel bag containing a C-20r, some magazines, and a cheap looking suppressor."

/obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents()
new /obj/item/ammo_box/magazine/smgm45(src)
new /obj/item/ammo_box/magazine/smgm45(src)
new /obj/item/ammo_box/magazine/smgm45(src)
new /obj/item/gun/ballistic/automatic/c20r(src)
Expand Down
4 changes: 4 additions & 0 deletions code/modules/reagents/chemistry/equilibrium.dm
Original file line number Diff line number Diff line change
Expand Up @@ -336,13 +336,15 @@
//Calculate how much product to make and how much reactant to remove factors..
for(var/reagent in reaction.required_reagents)
holder.remove_reagent(reagent, (delta_chem_factor * reaction.required_reagents[reagent]), safety = TRUE)
/* monkestation removal: we don't use ph or purity
//Apply pH changes
var/pH_adjust
if(reaction.reaction_flags & REACTION_PH_VOL_CONSTANT)
pH_adjust = ((delta_chem_factor * reaction.required_reagents[reagent])/target_vol)*(reaction.H_ion_release*h_ion_mod)
else //Default adds pH independant of volume
pH_adjust = (delta_chem_factor * reaction.required_reagents[reagent])*(reaction.H_ion_release*h_ion_mod)
holder.adjust_specific_reagent_ph(reagent, pH_adjust)
monkestation end */

var/step_add
for(var/product in reaction.results)
Expand All @@ -351,13 +353,15 @@
//Default handiling
holder.add_reagent(product, step_add, null, cached_temp, purity, override_base_ph = TRUE)

/* monkestation removal: we don't use ph or purity
//Apply pH changes
var/pH_adjust
if(reaction.reaction_flags & REACTION_PH_VOL_CONSTANT)
pH_adjust = (step_add/target_vol)*(reaction.H_ion_release*h_ion_mod)
else
pH_adjust = step_add*(reaction.H_ion_release*h_ion_mod)
holder.adjust_specific_reagent_ph(product, pH_adjust)
MONKESTATION END */
reacted_vol += step_add
total_step_added += step_add

Expand Down
10 changes: 9 additions & 1 deletion code/modules/reagents/chemistry/holder.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1249,7 +1249,7 @@
else
. += reagent.volume
total_volume = .
recalculate_sum_ph()
// recalculate_sum_ph() // monkestation edit: we don't use ph or purity

/**
* Applies the relevant expose_ proc for every reagent in this holder
Expand Down Expand Up @@ -1484,9 +1484,11 @@
* Arguments:
* * value - How much to adjust the base pH by
*/
/* monkestation removal: we don't use ph or purity
/datum/reagents/proc/adjust_all_reagents_ph(value, lower_limit = 0, upper_limit = 14)
for(var/datum/reagent/reagent as anything in reagent_list)
reagent.ph = clamp(reagent.ph + value, lower_limit, upper_limit)
monkestation end */

/*
* Adjusts the base pH of all of the listed types
Expand All @@ -1497,11 +1499,13 @@
* * input_reagents_list - list of reagent objects to adjust
* * value - How much to adjust the base pH by
*/
/* monkestation removal: we don't use ph or purity
/datum/reagents/proc/adjust_specific_reagent_list_ph(list/input_reagents_list, value, lower_limit = 0, upper_limit = 14)
for(var/datum/reagent/reagent as anything in input_reagents_list)
if(!reagent) //We can call this with missing reagents.
continue
reagent.ph = clamp(reagent.ph + value, lower_limit, upper_limit)
monkestation end */

/*
* Adjusts the base pH of a specific type
Expand All @@ -1514,15 +1518,18 @@
* * lower_limit - how low the pH can go
* * upper_limit - how high the pH can go
*/
/* monkestation removal: we don't use ph or purity
/datum/reagents/proc/adjust_specific_reagent_ph(input_reagent, value, lower_limit = 0, upper_limit = 14)
var/datum/reagent/reagent = get_reagent(input_reagent)
if(!reagent) //We can call this with missing reagents.
return FALSE
reagent.ph = clamp(reagent.ph + value, lower_limit, upper_limit)
monkestation end */

/*
* Updates the reagents datum pH based off the volume weighted sum of the reagent_list's reagent pH
*/
/* monkestation removal: we don't use ph or purity
/datum/reagents/proc/recalculate_sum_ph()
if(!reagent_list || !total_volume) //Ensure that this is true
ph = CHEMICAL_NORMAL_PH
Expand All @@ -1532,6 +1539,7 @@
total_ph += (reagent.ph * reagent.volume)
//Keep limited
ph = clamp(total_ph/total_volume, 0, 14)
*/

/**
* Outputs a log-friendly list of reagents based on an external reagent list.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will decrease by 0.4
var/strength = 30

/* monkestation removal: we don't use ph or purity
//Consumes self on addition and shifts ph
/datum/reagent/reaction_agent/acidic_buffer/intercept_reagents_transfer(datum/reagents/target, amount)
. = ..()
Expand All @@ -42,6 +43,7 @@
target.my_atom.audible_message(span_warning("The beaker fizzes as the ph changes!"))
playsound(target.my_atom, 'sound/chemistry/bufferadd.ogg', 50, TRUE)
holder.remove_reagent(type, amount)
monkestation end */

/datum/reagent/reaction_agent/basic_buffer
name = "Strong Basic Buffer"
Expand All @@ -54,6 +56,7 @@
///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will increase by 0.4
var/strength = 30

/* monkestation removal: we don't use ph or purity
/datum/reagent/reaction_agent/basic_buffer/intercept_reagents_transfer(datum/reagents/target, amount)
. = ..()
if(!.)
Expand All @@ -68,6 +71,7 @@
target.my_atom.audible_message(span_warning("The beaker froths as the ph changes!"))
playsound(target.my_atom, 'sound/chemistry/bufferadd.ogg', 50, TRUE)
holder.remove_reagent(type, amount)
monkestation end */

//purity testor/reaction agent prefactors

Expand Down
2 changes: 2 additions & 0 deletions code/modules/reagents/chemistry/recipes/cat2_medicines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,10 @@
var/datum/reagent/oxy = holder.has_reagent(/datum/reagent/oxygen)
if(oxy)
holder.remove_reagent(/datum/reagent/oxygen, 0.25)
/* monkestation removal: we don't use ph or purity
else
holder.adjust_all_reagents_ph(-0.05*step_reaction_vol)//pH drifts faster
monkestation end */

//Sleepytime for chem
/datum/chemical_reaction/medicine/tirimol/overheated(datum/reagents/holder, datum/equilibrium/equilibrium, impure = FALSE)
Expand Down
1 change: 1 addition & 0 deletions code/modules/unit_tests/_unit_tests.dm
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@
#include "json_savefile_importing.dm"
#include "keybinding_init.dm"
#include "knockoff_component.dm"
#include "language_key_conflicts.dm"
#include "leash.dm"
#include "lesserform.dm"
#include "limbsanity.dm"
Expand Down
15 changes: 15 additions & 0 deletions code/modules/unit_tests/language_key_conflicts.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/// This test ensures that multiple languages aren't mapped to the same prefix key.
/datum/unit_test/language_key_conflicts

/datum/unit_test/language_key_conflicts/Run()
var/list/used_keys = list()
for(var/datum/language/language as anything in subtypesof(/datum/language))
var/name = language::name
var/key = language::key
if(!key)
continue
if(used_keys[key])
var/datum/language/conflicting_language = used_keys[key]
TEST_FAIL("[name] ([language]) uses the '[key]' prefix, which is also used by [conflicting_language::name] ([conflicting_language])!")
else
used_keys[key] = language
2 changes: 1 addition & 1 deletion code/modules/uplink/uplink_items/nukeops.dm
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \
24-round magazine and is compatible with suppressors."
item = /obj/item/gun/ballistic/automatic/c20r
cost = 13
cost = 10
surplus = 40
purchasable_from = UPLINK_NUKE_OPS

Expand Down
15 changes: 15 additions & 0 deletions code/modules/vending/autodrobe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@
/obj/item/clothing/under/costume/worldchampiongi = 1,
/obj/item/clothing/head/milkmanhat = 2,
/obj/item/clothing/under/costume/milkman = 2,
/obj/item/clothing/shoes/bb_slippers = 1,
/obj/item/clothing/head/bb_wig = 1,
/obj/item/clothing/under/costume/bb_dress = 1,
//Monkestation Addition end
),
),
Expand All @@ -88,6 +91,14 @@
/obj/item/clothing/suit/costume/shrine_maiden = 1,
/obj/item/gohei = 1,
/obj/item/clothing/under/costume/skeleton = 1,
//Monkestation Addition start
/obj/item/clothing/shoes/costume_2021/infinity_shoes = 5,
/obj/item/clothing/under/costume/infinity_under = 5,
/obj/item/clothing/suit/infinity_jacket = 5,
/obj/item/clothing/gloves/infinity_gloves = 5,
/obj/item/clothing/suit/thekiller_robe = 1,
/obj/item/clothing/head/thekiller_head = 1,
//Monkestation Addition end
),
),
list(
Expand Down Expand Up @@ -227,6 +238,10 @@
/obj/item/clothing/suit/shipwreckedsuit = 2,
/obj/item/clothing/head/kingofbugshelmet = 2,
/obj/item/clothing/suit/kingofbugssuit = 2,
/obj/item/clothing/shoes/crueltysquad_shoes = 2, // MONKESTATION EDIT ADDITION
/obj/item/clothing/under/costume/crueltysquad_under = 2, // MONKESTATION EDIT ADDITION
/obj/item/clothing/glasses/crueltysquad_glasses = 2, // MONKESTATION EDIT ADDITION
/obj/item/clothing/gloves/crueltysquad_gloves = 2, // MONKESTATION EDIT ADDITION
),
),
)
Expand Down
1 change: 1 addition & 0 deletions code/modules/vending/clothesmate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
/obj/item/clothing/under/dress/sailor = 1,
/obj/item/clothing/under/dress/redeveninggown = 1,
/obj/item/clothing/suit/apron/purple_bartender = 2,
/obj/item/clothing/under/costume/citizen_uniform = 4,
),
),

Expand Down
2 changes: 2 additions & 0 deletions code/modules/vending/security.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
/obj/item/grenade/stingbang = 1,
/obj/item/watertank/pepperspray = 2,
/obj/item/storage/belt/holster/energy = 4,
/obj/item/clothing/head/helmet/civilprotection_helmet = 1, //monkestation edit
/obj/item/clothing/suit/armor/civilprotection_vest = 1, //monkestation edit
/obj/item/clothing/head/guardmanhelmet = 1, //monkestation edit: Guardman
/obj/item/clothing/under/guardmanuniform = 1, //monkestation edit: Guardman
/obj/item/clothing/suit/armor/guardmanvest = 1, //monkestation edit: Guardman
Expand Down
7 changes: 6 additions & 1 deletion code/modules/vending/wardrobes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@
/obj/item/clothing/under/rank/security/brig_physician/skirt = 3, //Monkestation edit
/obj/item/clothing/suit/toggle/labcoat/brig_physician = 3, //Monkestation edit
/obj/item/clothing/shoes/sneakers/secred = 3, //Monkestation edit
/obj/item/clothing/under/civilprotection_uniform = 1, //monkestation edit
/obj/item/clothing/gloves/civilprotection_gloves = 1,
/obj/item/clothing/shoes/civilprotection_boots = 1, //monkestation edit
)
premium = list(
/obj/item/clothing/under/rank/security/officer/formal = 3,
Expand All @@ -50,7 +53,9 @@
/obj/item/clothing/suit/armor/secduster/cargo = 2,
/obj/item/clothing/head/helmet/hat/cowboy/cargo = 2,
/obj/item/clothing/suit/armor/secduster/science = 2,
/obj/item/clothing/head/helmet/hat/cowboy/science = 2
/obj/item/clothing/head/helmet/hat/cowboy/science = 2,
/obj/item/clothing/head/cop_mascot = 1, // MONKESTATION EDIT ADDITION
/obj/item/clothing/under/costume/cop_mascot = 1, // MONKESTATION EDIT ADDITION
)
refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe
payment_department = ACCOUNT_SEC
Expand Down
8 changes: 0 additions & 8 deletions html/changelogs/AutoChangeLog-pr-2872.yml

This file was deleted.

7 changes: 0 additions & 7 deletions html/changelogs/AutoChangeLog-pr-2945.yml

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

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

This file was deleted.

27 changes: 27 additions & 0 deletions html/changelogs/archive/2024-08.yml
Original file line number Diff line number Diff line change
Expand Up @@ -387,3 +387,30 @@
- qol: make the cart hold 2.5x more water
ThePooba:
- bugfix: now you can buy the worst gun in the game from your uplink for your henchmen
2024-08-31:
Absolucy:
- bugfix: Ghost messages are no longer bolded for speakers on another z-level.
- rscadd: Added an "event groups" mechanic to event/storyteller logic.
- rscadd: Events in the same group will all have a shared cooldown, and some groups
have a set maximum amount of times they can run.
- rscadd: The more times events in a group have been ran, the cooldown will become
more biased towards the upper bound of the possible cooldown time with each
run.
- rscadd: As an example, the "Anomalies" event group has a cooldown between 10 to
25 minutes.
- sound: Spitting sounds now respect the volume mixer, and can't be heard from the
next room over.
SirNightKnight:
- rscadd: Nanotrasen has launched a new program to incentivize delivering mail.
Mail tokens are now found in every letter and can be returned to Central Command
for a decent bit of credits.
- qol: The supplying company has further genetically modified their tobacco seeds
to remove nutriment for an easier smoking experience.
- rscadd: Nanotrasen has approved Assistants signing up as Test Subjects. Peace
to the Intern Union!
- bugfix: The smoking pipe and cobpipe don't default to an error texture when lit.
- bugfix: Adjusted the smoking pipe texture to look better.
Wisemonster:
- balance: Removed the access requirements from the maint shutters leading to Blueshifts
north-west and north-east upper maints.
- balance: Reduced the stage 1 hunger symptom nutrition drain from 25 to 10
18 changes: 18 additions & 0 deletions html/changelogs/archive/2024-09.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
2024-09-01:
Absolucy:
- bugfix: The Blah-Sucker and Ashtongue languages no longer conflict over the ",l"
prefix, as Ashtongue now uses ",a"
BoltonsHead:
- rscadd: the Policeman Mascot Head and Policeman Mascot Suit to the Secdrobe, where
you can purchase 2 in the premium section for 100 credits.
- rscadd: four more costumes! Alongside it is the Cruelty Squad main character clothing
to the autodrobe,
- rscadd: Infinity Jersey, wristbands, shorts, and sneakers to the autodrobe,
- rscadd: BB's wig, dress, and slippers to the autodrobe,
- rscadd: and The Killer's robe and head to the autodrobe.
- rscadd: Metrocop uniform to sectech drobe.
- rscadd: Citizen uniform to clothesmate.
SirNightKnight:
- bugfix: Made stamina a lil less wonky
ThePooba:
- balance: gchanged some nukeops gun prices
30 changes: 19 additions & 11 deletions monkestation/code/datums/stamina_container.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
var/decrement = 0
///Are we regenerating right now?
var/is_regenerating = TRUE
//unga bunga
var/process_stamina = TRUE

///cooldowns
///how long until we can lose stamina again
Expand All @@ -35,17 +37,23 @@
return ..()

/datum/stamina_container/proc/update(seconds_per_tick)
if(!is_regenerating)
if(!COOLDOWN_FINISHED(src, paused_stamina))
return
is_regenerating = TRUE

if(seconds_per_tick)
current = min(current + (regen_rate*seconds_per_tick), maximum)
if(seconds_per_tick && decrement)
current = max(current + (-decrement*seconds_per_tick), 0)
loss = maximum - current
loss_as_percent = loss ? (loss == maximum ? 0 : loss / maximum * 100) : 0
if(process_stamina == TRUE)
if(!is_regenerating)
if(!COOLDOWN_FINISHED(src, paused_stamina))
return
is_regenerating = TRUE

if(seconds_per_tick)
current = min(current + (regen_rate*seconds_per_tick), maximum)
if(seconds_per_tick && decrement)
current = max(current + (-decrement*seconds_per_tick), 0)
loss = maximum - current
loss_as_percent = loss ? (loss == maximum ? 0 : loss / maximum * 100) : 0

if(seconds_per_tick && current == maximum)
process_stamina = FALSE
else if(!(current == maximum))
process_stamina = TRUE

parent.on_stamina_update()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@
/datum/language/ashtongue
name = "Ashtongue"
desc = "A language derived from Draconic, altered and morphed into a strange tongue by the enigmatic will of the Necropolis, a half-successful attempt at patterning its own alien communication methods onto mundane races. It's become nigh-incomprehensible to speakers of the original language."
key = "l"
key = "a"
flags = TONGUELESS_SPEECH
space_chance = 70
syllables = list(
Expand Down
Loading

0 comments on commit 7ec30ef

Please sign in to comment.