Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/NithaIsTired/Bubbz into g…
Browse files Browse the repository at this point in the history
…aspfix
  • Loading branch information
NithaIsTired committed Feb 2, 2024
2 parents 5bf173e + 0da1336 commit 91f150a
Show file tree
Hide file tree
Showing 50 changed files with 362 additions and 63 deletions.
68 changes: 34 additions & 34 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -213,40 +213,40 @@ jobs:
steps:
- run: echo Alternate tests passed.

# compare_screenshots:
# if: "!contains(github.event.head_commit.message, '[ci skip]') && always()"
# needs: [run_all_tests, run_alternate_tests]
# name: Compare Screenshot Tests
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v3
# # If we ever add more artifacts, this is going to break, but it'll be obvious.
# - name: Download screenshot tests
# uses: actions/download-artifact@v3
# with:
# path: artifacts
# - name: ls -R
# run: ls -R artifacts
# - name: Setup screenshot comparison
# run: npm i
# working-directory: tools/screenshot-test-comparison
# - name: Run screenshot comparison
# run: node tools/screenshot-test-comparison/index.js artifacts code/modules/unit_tests/screenshots artifacts/screenshot_comparisons
# # workflow_run does not give you the PR it ran on,
# # even through the thing literally named "matching pull requests".
# # However, in GraphQL, you can check if the check suite was ran
# # by a specific PR, so trusting the (user controlled) action here is okay,
# # as long as we check it later in show_screenshot_test_results
# - name: Save PR ID
# if: failure() && github.event.pull_request
# run: |
# echo ${{ github.event.pull_request.number }} > artifacts/screenshot_comparisons/pull_request_number.txt
# - name: Upload bad screenshots
# if: failure()
# uses: actions/upload-artifact@v3
# with:
# name: bad-screenshots
# path: artifacts/screenshot_comparisons
compare_screenshots:
if: "!contains(github.event.head_commit.message, '[ci skip]') && always()"
needs: [run_all_tests, run_alternate_tests]
name: Compare Screenshot Tests
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
# If we ever add more artifacts, this is going to break, but it'll be obvious.
- name: Download screenshot tests
uses: actions/download-artifact@v3
with:
path: artifacts
- name: ls -R
run: ls -R artifacts
- name: Setup screenshot comparison
run: npm i
working-directory: tools/screenshot-test-comparison
- name: Run screenshot comparison
run: node tools/screenshot-test-comparison/index.js artifacts code/modules/unit_tests/screenshots artifacts/screenshot_comparisons
# workflow_run does not give you the PR it ran on,
# even through the thing literally named "matching pull requests".
# However, in GraphQL, you can check if the check suite was ran
# by a specific PR, so trusting the (user controlled) action here is okay,
# as long as we check it later in show_screenshot_test_results
- name: Save PR ID
if: failure() && github.event.pull_request
run: |
echo ${{ github.event.pull_request.number }} > artifacts/screenshot_comparisons/pull_request_number.txt
- name: Upload bad screenshots
if: failure()
uses: actions/upload-artifact@v3
with:
name: bad-screenshots
path: artifacts/screenshot_comparisons

test_windows:
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/~~bubber_defines/economy.dm
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
//Defines that set what kind of civilian bounties should be applied mid-round.
#define CIV_JOB_SMITH 21 //By making this higher we avoid having to maintain this value if more bounties are added upstream
#define CIV_JOB_PRISONER 22 //Basically restricted assistant bounties
2 changes: 1 addition & 1 deletion code/modules/antagonists/malf_ai/malf_ai_modules.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/obj/machinery/portable_atmospherics/canister,
)))

GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module) - /datum/ai_module/destructive/nuke_station) //BUBBERSTATION CHANGE: REMOVES NUKE STATION ROUNDSTART MODULE
GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module))

/// The malf AI action subtype. All malf actions are subtypes of this.
/datum/action/innate/ai
Expand Down
1 change: 1 addition & 0 deletions code/modules/asset_cache/assets/paper.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
//BUBBERSTATION ADDITION: START - Bubberstation Stamp Icons
"stamp-merged" = 'icons/stamp_icons/large_stamp-merged.png',
"stamp-closed" = 'icons/stamp_icons/large_stamp-closed.png',
"stamp-crow" = 'icons/stamp_icons/crow-stamp.png',
//BUBBERSTATION ADDITION: END - Bubberstation Stamp Icons

"stamp-clown" = 'icons/stamp_icons/large_stamp-clown.png',
Expand Down
2 changes: 2 additions & 0 deletions code/modules/cargo/bounty.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@
//BUBBER EDIT START
if(CIV_JOB_SMITH)
chosen_type = pick(subtypesof(/datum/bounty/item/blacksmith))
if(CIV_JOB_PRISONER)
chosen_type = pick(subtypesof(/datum/bounty/item/prisoner))
//BUBBER EDIT END
bounty_ref = new chosen_type
if(bounty_ref.can_get())
Expand Down
1 change: 1 addition & 0 deletions code/modules/jobs/job_types/prisoner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
spawn_positions = 2
supervisors = "the security team"
exp_granted_type = EXP_TYPE_CREW
bounty_types = CIV_JOB_PRISONER
paycheck = PAYCHECK_LOWER
config_tag = "PRISONER"

Expand Down
12 changes: 11 additions & 1 deletion code/modules/mob/living/carbon/life.dm
Original file line number Diff line number Diff line change
Expand Up @@ -490,13 +490,23 @@
if(stat == DEAD)
if(reagents && (reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || reagents.has_reagent(/datum/reagent/cryostylane))) // No organ decay if the body contains formaldehyde.
return
var/rot_count = 0 //BUBBERSTATION CHANGE: MIASMA ORGAN ROT
for(var/obj/item/organ/internal/organ in organs)
// On-death is where organ decay is handled
if(organ?.owner) // organ + owner can be null due to reagent metabolization causing organ shuffling
organ.on_death(seconds_per_tick, times_fired)
rot_count += organ.on_death(seconds_per_tick, times_fired) //BUBBERSTATION ADDITION: MIASMA_COUNT. NOTE THIS ISN'T CALLED ON ROBOTIC ORGANS.
// We need to re-check the stat every organ, as one of our others may have revived us
if(stat != DEAD)
break
//BUBBERSTATION CHANGE START: MIASMA ORGAN ROT
if(rot_count > 0) //This is going to be weird if there are mechanics that cause an organ to heal if you're dead, but at least this saves performance.
var/turf/organ_turf = get_turf(src) //We don't check the loc because of lockers. Stasis bodybags would prevent this from running anyways.
if(isopenturf(organ_turf) && !isspaceturf(organ_turf)) //Only spawn miasma on floor turfs and not in space turfs.
var/turf/open/open_turf = organ_turf
if(!open_turf.planetary_atmos) //Don't spawn miasma when there is open air to the sky.
var/miasma_to_spawn = (rot_count/(6*100))*30 //There are about 6 rottable organs in each mob, all with 100 health. If a person is 100% rotted, they should spawn 30 moles of miasma. (A 1x1 tile has 104 moles of oxygen+nitrogen).
open_turf.atmos_spawn_air("[GAS_MIASMA]=[miasma_to_spawn];[TURF_TEMPERATURE(src.bodytemperature)]")
//BUBBERSTATION CHANGE END: MIASMA
return

// NOTE: organs_slot is sorted by GLOB.organ_process_order on insertion
Expand Down
5 changes: 3 additions & 2 deletions code/modules/surgery/organs/internal/_internal_organ.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,13 @@
if(owner)
if(owner.bodytemperature > T0C)
var/air_temperature_factor = min((owner.bodytemperature - T0C) / 20, 1)
apply_organ_damage(decay_factor * maxHealth * seconds_per_tick * air_temperature_factor)
return -apply_organ_damage(decay_factor * maxHealth * seconds_per_tick * air_temperature_factor)
else
var/datum/gas_mixture/exposed_air = return_air()
if(exposed_air && exposed_air.temperature > T0C)
var/air_temperature_factor = min((exposed_air.temperature - T0C) / 20, 1)
apply_organ_damage(decay_factor * maxHealth * seconds_per_tick * air_temperature_factor)
return -apply_organ_damage(decay_factor * maxHealth * seconds_per_tick * air_temperature_factor)


/// Called once every life tick on every organ in a carbon's body
/// NOTE: THIS IS VERY HOT. Be careful what you put in here
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1036.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "xXPawnStarrXx"
delete-after: True
changes:
- rscadd: "Added new bounties for inmates."
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1041.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "theselfish"
delete-after: True
changes:
- rscadd: "Donator item."
5 changes: 5 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1043.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
author: "BurgerBB"
delete-after: True
changes:
- rscdel: " Removes the ability for Seedlings to have multiple harvests."
- balance: "Sets Evil Seedling TC cost to 2 (From 8),"
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1044.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "theselfish"
delete-after: True
changes:
- rscadd: "Donator stamp."
7 changes: 7 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1054.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
author: "pixelkitty286"
delete-after: True
changes:
- rscadd: "Door sounds from Citrp"
- qol: "Better door sounds"
- sound: "added door sound files in modular sounds folder"
- code_imp: "Disabled skyrat's door sound over rides in airlock.dm"
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1085.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "nikothedude"
delete-after: True
changes:
- spellcheck: "The nobility dresscoat has been reflavored to not be nobility"
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1096.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "ReturnToZender"
delete-after: True
changes:
- server: "cleans up some relay names"
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1099.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "NithaIsTired"
delete-after: True
changes:
- rscadd: "Synths now scream in agony when they die."
7 changes: 7 additions & 0 deletions html/changelogs/AutoChangeLog-pr-1101.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
author: "Swiftfeather"
delete-after: True
changes:
- rscdel: "Door sounds from Citrp"
- qol: "better door sounds"
- sound: "changed sound back to better original airlock sound"
- code_imp: "re enables skyrat's door sound override"
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-860.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "BurgerBB"
delete-after: True
changes:
- rscadd: "Organs that rot now create miasma. Note that miasma emissions will stop once the organ is fully decayed."
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-865.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "BurgerBB"
delete-after: True
changes:
- balance: "The Crab17 uplink item cannot spawn in surplus crates, nor can it be discounted."
6 changes: 6 additions & 0 deletions html/changelogs/AutoChangeLog-pr-988.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
author: "Majkl-J"
delete-after: True
changes:
- rscadd: "Secmed huds are now available for security medics"
- rscadd: "Secmed headset upgraded into a bowman"
- image: "Icons for secmed huds and secmed headset"
4 changes: 4 additions & 0 deletions html/changelogs/AutoChangeLog-pr-993.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
author: "nevimer"
delete-after: True
changes:
- rscadd: "Malf AI Doomsday now makes a tidal wave of explosions from APC's."
Binary file added icons/stamp_icons/crow-stamp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 8 additions & 8 deletions modular_zubbers/code/__DEFINES/send2relay.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
#define SYDNEY_RELAY "byond://sydney.bubberstation.org:3000"
#define SINGAPORE_RELAY "byond://singapore.bubberstation.org:3000"
#define EU_RELAY "byond://germany.bubberstation.org:3000"
#define NO_RELAY "byond://game.bubberstation.org:3000"
#define NO_RELAY "byond://direct.bubberstation.org:3000"

/client/verb/go2relay()
var/list/static/relays = list(
US_EAST_RELAY = "Connect to US-East (Virginia)",
US_WEST_RELAY = "Connect to US-West (Oregon)",
SYDNEY_RELAY = "Connect to Sydney, Australia",
SINGAPORE_RELAY = "Connect to Singapore, Singapore",
EU_RELAY = "Connect to Europe (Germany, Alternative)",
NO_RELAY = "No Relay",
US_EAST_RELAY = "Connect to Eastern US (Virginia)",
US_WEST_RELAY = "Connect to Western US (Oregon)",
SYDNEY_RELAY = "Connect to Australia (Sydney)",
SINGAPORE_RELAY = "Connect to Singapore (Singapore)",
EU_RELAY = "Connect to Germany (Frankfurt)",
NO_RELAY = "No Relay (Direct Connect)",
)
var/choice = tgui_input_list(usr, "Which relay do you wish to use?", "Relay choice", relays)
var/choice = tgui_input_list(usr, "Which relay do you wish to use?", "Relay Select", relays)
if(choice)
usr << link(choice)
sleep(1 SECONDS)
Expand Down
12 changes: 12 additions & 0 deletions modular_zubbers/code/modules/antagonists/malf/doomsday.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/obj/machinery/doomsday_device/trigger_doomsday()
var/list/bombable = SSmapping.levels_by_trait(ZTRAIT_STATION)
for(var/obj/machinery/power/apc/power in world)
if(power.z == locate(power.z) in bombable)
explosion(power, light_impact_range = 15, explosion_cause = src, adminlog = TRUE)
sleep(1)
to_chat(world, span_bold("You hear a series of explosions!"))
SSticker.force_ending = FORCE_END_ROUND

/proc/test_doomsday()
var/obj/machinery/doomsday_device/device = new()
device.trigger_doomsday()
105 changes: 105 additions & 0 deletions modular_zubbers/code/modules/cargo/bounties/prisoner.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/datum/bounty/item/prisoner/soap
name = "Soap"
description = "One of the janitors lost theirs, send them some."
reward = CARGO_CRATE_VALUE * 4
required_count = 2
wanted_types = list(/obj/item/soap = TRUE)

/datum/bounty/item/prisoner/baseball_bat
name = "Baseball Bat"
description = "Baseball fever is going on at CentCom! Be a dear and ship them some baseball bats, so that management can live out their childhood dream."
reward = CARGO_CRATE_VALUE * 4
required_count = 5
wanted_types = list(/obj/item/melee/baseball_bat = TRUE)

/datum/bounty/item/prisoner/monkey_hide
name = "Monkey Hide"
description = "One of the scientists at CentCom is interested in testing products on monkey skin. Your mission is to acquire monkey's hide and ship it."
reward = CARGO_CRATE_VALUE * 3
wanted_types = list(/obj/item/stack/sheet/animalhide/monkey = TRUE)

/datum/bounty/item/prisoner/poppy
name = "Poppies"
description = "Stop asking questions, send the flowers, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 2
required_count = 3
wanted_types = list(/obj/item/food/grown/poppy = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/lilly
name = "Lillies"
description = "Stop asking questions, send the flowers, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 3
wanted_types = list(/obj/item/food/grown/poppy/lily = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/geranium
name = "Geraniums"
description = "Stop asking questions, send the flowers, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 3
wanted_types = list(/obj/item/food/grown/poppy/geranium = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/tomatoes
name = "Tomatoes"
description = "Stop asking questions, send the fruits, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 5
wanted_types = list(/obj/item/food/grown/tomato = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/carrots
name = "Carrots"
description = "Stop asking questions, send the fruits, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 5
wanted_types = list(/obj/item/food/grown/carrot = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/onion
name = "Onions"
description = "Stop asking questions, send the fruits, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 5
wanted_types = list(/obj/item/food/grown/onion = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/apples
name = "Apples"
description = "Stop asking questions, send the fruits, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 5
wanted_types = list(/obj/item/food/grown/apple = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/grapes
name = "Grapes"
description = "Stop asking questions, send the fruits, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 5
wanted_types = list(/obj/item/food/grown/grapes = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/corn
name = "Ears of Corn"
description = "Stop asking questions, send the fruits, get paid. INMATE!"
reward = CARGO_CRATE_VALUE * 3
required_count = 5
wanted_types = list(/obj/item/food/grown/corn = TRUE)
include_subtypes = FALSE

/datum/bounty/item/prisoner/monkey_cubes
name = "Monkey Cubes"
description = "Due to a recent genetics accident, Central Command is in serious need of monkeys. Your mission is to ship monkey cubes."
reward = CARGO_CRATE_VALUE * 4
required_count = 3
wanted_types = list(/obj/item/food/monkeycube = TRUE)

/datum/bounty/item/prisoner/paper_bin
name = "Paper Bins"
description = "Our accounting division is all out of paper. We need a new shipment immediately."
reward = CARGO_CRATE_VALUE * 5
required_count = 5
wanted_types = list(/obj/item/paper_bin = TRUE)
6 changes: 6 additions & 0 deletions modular_zubbers/code/modules/hydroponics/plant_genes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
/datum/plant_gene/trait/backfire
mutability_flags = PLANT_GENE_GRAFTABLE //Making this mutatable causes bugs and linters to fail.

/datum/plant_gene/trait/repeated_harvest/New(...)
seed_blacklist += /obj/item/seeds/seedling
seed_blacklist += /obj/item/seeds/seedling/evil
. = ..()


/*
* Returns the formatted name of the plant gene.
*
Expand Down
Loading

0 comments on commit 91f150a

Please sign in to comment.