Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/cmss13-devs/cmss13
Browse files Browse the repository at this point in the history
  • Loading branch information
BeagleGaming1 committed Jul 23, 2023
2 parents 16fd442 + 277ab77 commit c438267
Show file tree
Hide file tree
Showing 36 changed files with 153 additions and 86 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/ci_suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
run_linters:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Run Linters
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
concurrency:
group: run_linters-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
compile_all_maps:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Compile Maps
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Restore BYOND cache
Expand All @@ -80,7 +80,7 @@ jobs:
find_all_maps:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Find Maps to Test
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
outputs:
maps: ${{ steps.map_finder.outputs.maps }}
alternate_tests: ${{ steps.alternate_test_finder.outputs.alternate_tests }}
Expand Down Expand Up @@ -138,7 +138,7 @@ jobs:
if: "!contains(github.event.head_commit.message, '[ci skip]') && needs.find_all_maps.outputs.alternate_tests != '[]'"
name: Check Alternate Tests
needs: [run_alternate_tests]
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- run: echo Alternate tests passed.

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/compile_changelogs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
compile:
name: "Compile changelogs"
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps"
id: value_holder
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/conflicts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
types: [ready_for_review, opened, synchronize, reopened]
jobs:
triage:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- uses: eps1lon/[email protected]
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generate_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
jobs:
generate_documentation:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
concurrency: gen-docs
steps:
- uses: actions/checkout@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/run_approval.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: Automatic Approve Workflows
on:
schedule:
schedule:
- cron: "*/10 * * * *"
jobs:
automatic-approve:
name: Automatic Approve Workflows
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- name: Automatic Approve
uses: mheap/automatic-approve-action@v1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/run_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
type: string
jobs:
run_unit_tests:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Restore BYOND cache
Expand All @@ -27,7 +27,7 @@ jobs:
run: |
sudo dpkg --add-architecture i386
sudo apt update || true
sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386
sudo apt install -o APT::Immediate-Configure=false zlib1g-dev:i386 libssl-dev:i386
bash tools/ci/install_rust_g.sh
- name: Configure version
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
stale:

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- uses: actions/stale@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update_changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
jobs:
update-changelog:
concurrency: changelog
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps"
id: value_holder
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update_tgs_dmapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
update-dmapi:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
name: Update the TGS DMAPI
steps:
- name: Clone
Expand Down
10 changes: 10 additions & 0 deletions code/controllers/subsystem/minimap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,16 @@ SUBSYSTEM_DEF(minimaps)
else
return UI_CLOSE

/datum/tacmap/xeno/ui_status(mob/user)
if(!isxeno(user))
return UI_CLOSE

var/mob/living/carbon/xenomorph/xeno = user
if(!xeno.hive?.living_xeno_queen?.ovipositor)
return UI_CLOSE

return UI_INTERACTIVE

/datum/tacmap_holder
var/map_ref
var/atom/movable/screen/minimap/map
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/vending/cm_vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1182,6 +1182,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list(
sleep(15)

vendor.stat &= ~IN_USE
vendor.icon_state = initial(vendor.icon_state)
vendor.update_icon()

/proc/vendor_successful_vend_one(obj/structure/machinery/cm_vending/vendor, prod_type, mob/living/carbon/human/user, turf/target_turf, insignas_override)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/vending/vendor_types/crew/medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_researcher, list(

list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null),
list("Gloves", 0, /obj/item/clothing/gloves/latex, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/almayer/doc, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Headset", 0, /obj/item/device/radio/headset/almayer/research, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY),
list("Medical HUD Glasses", 0, /obj/item/clothing/glasses/hud/health, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_MANDATORY),
list("Reagent Scanner HUD Goggles", 0, /obj/item/clothing/glasses/science, MARINE_CAN_BUY_GLASSES, VENDOR_ITEM_RECOMMENDED),

Expand Down
5 changes: 5 additions & 0 deletions code/game/objects/items/devices/radio/encryptionkey.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@
icon_state = "med_key"
channels = list(RADIO_CHANNEL_MEDSCI = TRUE)

/obj/item/device/encryptionkey/medres
name = "Research Radio Encryption Key"
icon_state = "med_key"
channels = list(RADIO_CHANNEL_MEDSCI = TRUE, RADIO_CHANNEL_INTEL = TRUE)

// MARINE MILITARY POLICE

/obj/item/device/encryptionkey/cmpcom
Expand Down
6 changes: 6 additions & 0 deletions code/game/objects/items/devices/radio/headset.dm
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,12 @@
icon_state = "med_headset"
initial_keys = list(/obj/item/device/encryptionkey/med)

/obj/item/device/radio/headset/almayer/research
name = "researcher radio headset"
desc = "A headset used by medbay's skilled researchers. Channels are as follows: :m - medical, :t - intel."
icon_state = "med_headset"
initial_keys = list(/obj/item/device/encryptionkey/medres)

/obj/item/device/radio/headset/almayer/ct
name = "supply radio headset"
desc = "Used by the lowly Cargo Technicians of the USCM, light weight and portable. To access the supply channel, use :u."
Expand Down
39 changes: 27 additions & 12 deletions code/game/objects/items/reagent_containers/blood_pack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
#define BLOOD_BAG_TAKING 0

/obj/item/reagent_container/blood
name = "BloodPack"
desc = "Contains blood used for transfusion."
name = "blood pack"
desc = "A blood pack. Contains fluids, typically used for transfusions."
icon = 'icons/obj/items/bloodpack.dmi'
icon_state = "empty"
icon_state = "bloodpack"
volume = 300
matter = list("plastic" = 500)
flags_atom = CAN_BE_SYRINGED
Expand All @@ -20,7 +20,7 @@
/obj/item/reagent_container/blood/Initialize()
. = ..()
if(blood_type != null)
name = "BloodPack [blood_type]"
name = "[blood_type] blood pack"
reagents.add_reagent("blood", initial(volume), list("viruses" = null, "blood_type" = blood_type, "resistances" = null))
update_icon()

Expand All @@ -29,10 +29,26 @@

/obj/item/reagent_container/blood/update_icon()
var/percent = round((reagents.total_volume / volume) * 100)
switch(percent)
if(0 to 9) icon_state = "empty"
if(10 to 50) icon_state = "half"
if(51 to INFINITY) icon_state = "full"
overlays = null
underlays = null

if(blood_type)
overlays += image('icons/obj/items/bloodpack.dmi', src, blood_type)

if(reagents && reagents.total_volume)
var/image/filling = image('icons/obj/items/reagentfillings.dmi', src, "[icon_state]10")

switch(percent)
if(1 to 9) filling.icon_state = "[icon_state]5"
if(10 to 19) filling.icon_state = "[icon_state]10"
if(20 to 39) filling.icon_state = "[icon_state]25"
if(40 to 64) filling.icon_state = "[icon_state]50"
if(65 to 79) filling.icon_state = "[icon_state]75"
if(80 to 90) filling.icon_state = "[icon_state]80"
if(91 to INFINITY) filling.icon_state = "[icon_state]100"

filling.color = mix_color_from_reagents(reagents.reagent_list)
underlays += filling

/obj/item/reagent_container/blood/proc/update_beam()
if(current_beam)
Expand Down Expand Up @@ -132,7 +148,7 @@
connected_to.visible_message("[src] breaks free of [connected_to]!", "[src] is pulled out of you!")
connected_to.apply_damage(3, BRUTE, pick("r_arm", "l_arm"))
if(connected_to.pain.feels_pain)
connected_to.emote("scream")
connected_to.emote("pain")
connected_to.active_transfusions -= src
connected_to.base_pixel_x = 0
connected_to = null
Expand Down Expand Up @@ -173,9 +189,8 @@
blood_type = "O-"

/obj/item/reagent_container/blood/empty
name = "Empty BloodPack"
desc = "Seems pretty useless... Maybe if there were a way to fill it?"
icon_state = "empty"
name = "empty blood pack"
desc = "An empty blood pack. Sorry, vampires, no luck here."

#undef BLOOD_BAG_INJECTING
#undef BLOOD_BAG_TAKING
3 changes: 2 additions & 1 deletion code/game/objects/items/storage/surgical_tray.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
icon_state = "surgical_tray"
flags_atom = FPRINT|CONDUCT
w_class = SIZE_LARGE //Should not fit in backpacks
storage_slots = 13
storage_slots = 14
max_storage_space = 24
use_sound = "toolbox"
matter = list("plastic" = 3000)
Expand All @@ -31,6 +31,7 @@
new /obj/item/tool/surgery/FixOVein(src)
new /obj/item/stack/nanopaste(src)
new /obj/item/tool/surgery/surgical_line(src)
new /obj/item/tool/surgery/synthgraft(src)

/obj/item/storage/surgical_tray/update_icon()
if(!contents.len)
Expand Down
34 changes: 17 additions & 17 deletions code/game/objects/items/tools/maintenance_tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -219,41 +219,43 @@
toggle(TRUE)


/obj/item/tool/weldingtool/attack(mob/M, mob/user)
/obj/item/tool/weldingtool/attack(mob/target, mob/user)

if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/limb/S = H.get_limb(user.zone_selected)
if(ishuman(target))
var/mob/living/carbon/human/human = target
var/obj/limb/limb = human.get_limb(user.zone_selected)

if (!S) return
if(!(S.status & (LIMB_ROBOT|LIMB_SYNTHSKIN)) || user.a_intent != INTENT_HELP)
if (!limb) return
if(!(limb.status & (LIMB_ROBOT|LIMB_SYNTHSKIN)) || user.a_intent != INTENT_HELP)
return ..()

if(user.action_busy)
return
var/self_fixing = FALSE

if(H.species.flags & IS_SYNTHETIC && M == user)
if(human.species.flags & IS_SYNTHETIC && target == user)
self_fixing = TRUE

if(S.brute_dam && welding)
if(limb.brute_dam && welding)
remove_fuel(1,user)
if(self_fixing)
user.visible_message(SPAN_WARNING("\The [user] begins fixing some dents on their [S.display_name]."), \
SPAN_WARNING("You begin to carefully patch some dents on your [S.display_name] so as not to void your warranty."))
user.visible_message(SPAN_WARNING("\The [user] begins fixing some dents on their [limb.display_name]."), \
SPAN_WARNING("You begin to carefully patch some dents on your [limb.display_name] so as not to void your warranty."))
if(!do_after(user, 30, INTERRUPT_ALL, BUSY_ICON_FRIENDLY))
return

S.heal_damage(15, 0, TRUE)
H.pain.recalculate_pain()
H.UpdateDamageIcon()
user.visible_message(SPAN_WARNING("\The [user] patches some dents on \the [H]'s [S.display_name] with \the [src]."), \
SPAN_WARNING("You patch some dents on \the [H]'s [S.display_name] with \the [src]."))
limb.heal_damage(15, 0, TRUE)
human.pain.recalculate_pain()
human.UpdateDamageIcon()
user.visible_message(SPAN_WARNING("\The [user] patches some dents on \the [human]'s [limb.display_name] with \the [src]."), \
SPAN_WARNING("You patch some dents on \the [human]'s [limb.display_name] with \the [src]."))
return
else
to_chat(user, SPAN_WARNING("Nothing to fix!"))

else
if(ismob(target))
remove_fuel(1)
return ..()

/obj/item/tool/weldingtool/afterattack(obj/target, mob/user, proximity)
Expand All @@ -274,8 +276,6 @@
tank.explode()
return
if (welding)
remove_fuel(1)

if(isliving(target))
var/mob/living/L = target
L.IgniteMob()
Expand Down
3 changes: 2 additions & 1 deletion code/modules/clothing/under/ties.dm
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@
new /obj/item/device/multitool(src)

/obj/item/storage/internal/accessory/surg_vest
storage_slots = 13
storage_slots = 14
can_hold = list(
/obj/item/tool/surgery,
/obj/item/stack/medical/advanced/bruise_pack,
Expand Down Expand Up @@ -569,6 +569,7 @@
new /obj/item/tool/surgery/FixOVein(src)
new /obj/item/stack/nanopaste(src)
new /obj/item/tool/surgery/surgical_line(src)
new /obj/item/tool/surgery/synthgraft(src)

/obj/item/clothing/accessory/storage/surg_vest
name = "surgical webbing vest"
Expand Down
15 changes: 15 additions & 0 deletions code/modules/cm_marines/dropship_ammo.dm
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,21 @@
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(fire_spread), impact, create_cause_data(initial(name), source_mob), 6, 60, 30, "#EE6515"), 0.5 SECONDS) //Color changed into napalm's color to better convey how intense the fire actually is.
QDEL_IN(src, 0.5 SECONDS)

/obj/structure/ship_ammo/rocket/thermobaric
name = "\improper BLU-200 'Dragons Breath'"
desc = "The BLU-200 Dragons Breath a thermobaric fuel-air bomb. The aerosolized fuel mixture creates a vacuum when ignited causing serious damage to those in its way."
icon_state = "fatty"
ammo_id = "f"
travelling_time = 50
point_cost = 300
fire_mission_delay = 4

/obj/structure/ship_ammo/rocket/thermobaric/detonate_on(turf/impact)
impact.ceiling_debris_check(3)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(fire_spread), impact, create_cause_data(initial(name), source_mob), 4, 25, 50, "#c96500"), 0.5 SECONDS) //Very intense but the fire doesn't last very long
for(var/mob/living/carbon/victim in orange(5, impact))
victim.throw_atom(impact, 3, 15, src, TRUE) // Implosion throws affected towards center of vacuum
QDEL_IN(src, 0.5 SECONDS)


//minirockets
Expand Down
2 changes: 1 addition & 1 deletion code/modules/gear_presets/uscm_medical.dm
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
back_item = /obj/item/storage/backpack/marine

new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/doc(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/research(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET)

Expand Down
Loading

0 comments on commit c438267

Please sign in to comment.