Skip to content

Commit

Permalink
Merge branch 'dev-sierra' into pouches
Browse files Browse the repository at this point in the history
  • Loading branch information
ddorou authored Jan 28, 2024
2 parents a183fd2 + 12f2cc5 commit a5c61a1
Show file tree
Hide file tree
Showing 259 changed files with 3,016 additions and 979 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cancel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 3
steps:
- uses: styfle/cancel-workflow-action@01ce38bf961b4e243a6342cbade0dbc8ba3f0432
- uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa
with:
workflow_id: 3545321
access_token: ${{ github.token }}
2 changes: 1 addition & 1 deletion .github/workflows/generate_documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: paths-filter
uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50
uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd
id: filter
with:
filters: .github/workflow-config/preflight-filters.yml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- name: paths-filter
uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50
uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd
id: filter
with:
filters: .github/workflow-config/preflight-filters.yml
Expand Down
1 change: 1 addition & 0 deletions baystation12.dme
Original file line number Diff line number Diff line change
Expand Up @@ -3368,5 +3368,6 @@
#include "mods\_master_files\maps\mapsystem\maps.dm"
#include "mods\_master_files\maps\sierra\pouches.dm"
#include "mods\_master_files\maps\sierra\sierra_ranks.dm"
#include "mods\_master_files\maps\sierra\items\rigs.dm"
#include "~code\global_init.dm"
// END_INCLUDE
7 changes: 3 additions & 4 deletions code/__defines/dna.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@
// Generic mutations:
#define MUTATION_COLD_RESISTANCE 1
#define MUTATION_XRAY 2
#define MUTATION_HULK 3
#define MUTATION_FERAL 3 // Smash objects instead of using them, and harder to grab.
#define MUTATION_CLUMSY 4
#define MUTATION_FAT 5
#define MUTATION_HUSK 6
#define MUTATION_LASER 7 // Harm intent - click anywhere to shoot lasers from eyes.
#define MUTATION_LASER 7 // Harm intent - click anywhere to shoot lasers from eyes.
#define MUTATION_HEAL 8 // Healing people with hands.
#define MUTATION_SPACERES 9 // Can't be harmed via pressure damage.
#define MUTATION_SKELETON 10
#define MUTATION_FERAL 11 // Smash objects instead of using them, and unable to use items

// Other Mutations:
#define mNobreath 100 // No need to breathe.
Expand Down Expand Up @@ -43,11 +42,11 @@
// Too much of a project to handle at the moment, TODO for later.
GLOBAL_VAR_INIT(BLINDBLOCK,0)
GLOBAL_VAR_INIT(DEAFBLOCK,0)
GLOBAL_VAR_INIT(HULKBLOCK,0)
GLOBAL_VAR_INIT(TELEBLOCK,0)
GLOBAL_VAR_INIT(FIREBLOCK,0)
GLOBAL_VAR_INIT(XRAYBLOCK,0)
GLOBAL_VAR_INIT(CLUMSYBLOCK,0)
GLOBAL_VAR_INIT(FERALBLOCK, 0)
GLOBAL_VAR_INIT(FAKEBLOCK,0)
GLOBAL_VAR_INIT(COUGHBLOCK,0)
GLOBAL_VAR_INIT(GLASSESBLOCK,0)
Expand Down
5 changes: 4 additions & 1 deletion code/__defines/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,10 @@
#define SPECIES_GRAVWORLDER "Grav-Adapted Human"
#define SPECIES_MULE "Mule"
#define SPECIES_MONKEY "Monkey"
#define SPECIES_NABBER "giant armoured serpentid"
#define SPECIES_NABBER "Giant Armoured Serpentid"
#define SPECIES_FARWA "Farwa"
#define SPECIES_NEAERA "Neaera"
#define SPECIES_STOK "Stok"

#define UNRESTRICTED_SPECIES list(SPECIES_HUMAN, SPECIES_DIONA, SPECIES_IPC, SPECIES_UNATHI, SPECIES_YEOSA, SPECIES_SKRELL, SPECIES_TRITONIAN, SPECIES_SPACER, SPECIES_VATGROWN, SPECIES_GRAVWORLDER, SPECIES_MULE)
#define RESTRICTED_SPECIES list(SPECIES_VOX, SPECIES_ALIEN, SPECIES_GOLEM)
Expand Down
5 changes: 4 additions & 1 deletion code/_helpers/turfs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,10 @@
new_turf.transport_properties_from(source)

for(var/obj/O in source)
if(O.simulated)
if (QDELETED(O))
testing("Failed to translate [O] to new turf as it was qdel'd.")
continue
if(O.simulated || HAS_FLAGS(O.movable_flags, MOVABLE_FLAG_EFFECTMOVE))
O.forceMove(new_turf)
else if(istype(O,/obj/effect))
var/obj/E = O
Expand Down
2 changes: 2 additions & 0 deletions code/_onclick/hud/radial.dm
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,8 @@ var/global/list/radial_menus = list()
/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE, no_repeat_close = FALSE, list/check_locs, use_labels = FALSE)
if(!user || !anchor || !length(choices))
return
if (istype(user.loc, /mob/living/exosuit))
anchor = user.loc
if(!uniqueid)
uniqueid = "defmenu_[any2ref(user)]_[any2ref(anchor)]"

Expand Down
2 changes: 0 additions & 2 deletions code/_onclick/item_attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -457,8 +457,6 @@ avoid code duplication. This includes items that may sometimes act as a standard
*/
/obj/item/proc/apply_hit_effect(mob/living/target, mob/living/user, hit_zone)
var/power = force
if (MUTATION_HULK in user.mutations && damtype == DAMAGE_BRUTE) //Repeat this check here because it is only used under use_weapon to check if it's even possible to damage the mob. Value not carried over here.
power *= 2
return target.hit_with_weapon(src, user, power, hit_zone)


Expand Down
8 changes: 3 additions & 5 deletions code/_onclick/other_mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* - `user` - The attacking mob.
* - `damage` (int) - The damage value.
* - `attack_verb` (string) - The verb/string used for attack messages.
* - `wallbreaker` (boolean) - Whether or not the attack is considered a 'wallbreaker' attack - I.e., hulk.
* - `wallbreaker` (boolean) - Whether or not the attack is considered a 'wallbreaker' attack.
* - `damtype` (string, one of `DAMAGE_*`) - The attack's damage type.
* - `armorcheck` (string) - TODO: Unused. Remove.
* - `dam_flags` (bitfield, any of `DAMAGE_FLAG_*`) - Damage flags associated with the attack.
Expand All @@ -17,7 +17,7 @@
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
user.do_attack_animation(src)
if (!can_damage_health(damage, damtype))
playsound(src, damage_hitsound, 50)
playsound(src, damage_hitsound, 50, TRUE)
user.visible_message(
SPAN_WARNING("\The [user] bonks \the [src] harmlessly!"),
SPAN_WARNING("You bonk \the [src] harmlessly!")
Expand All @@ -26,14 +26,12 @@
var/damage_flags = EMPTY_BITFIELD
if (wallbreaker)
SET_FLAGS(damage_flags, DAMAGE_FLAG_TURF_BREAKER)
playsound(src, damage_hitsound, 75)
playsound(src, damage_hitsound, 75, TRUE)
if (damage_health(damage, damtype, damage_flags, skip_can_damage_check = TRUE))
user.visible_message(
SPAN_DANGER("\The [user] smashes through \the [src]!"),
SPAN_DANGER("You smash through \the [src]!")
)
if (MUTATION_FERAL in user.mutations)
qdel(src)
else
user.visible_message(
SPAN_DANGER("\The [user] [attack_verb] \the [src]!"),
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/configuration.dm
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,8 @@

var/static/ghosts_can_possess_animals = FALSE

var/static/ghosts_can_possess_zombies = TRUE

var/static/delist_when_no_admins = FALSE

/// Whether map switching is allowed
Expand Down
3 changes: 3 additions & 0 deletions code/controllers/subsystems/initialization/robots.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ SUBSYSTEM_DEF(robots)
)

var/list/mmi_types_by_title = list(
// [SIERRA-ADD] - Allow to join as cyborg,
"cyborg" = /obj/item/device/mmi,
// [/SIERRA-ADD] ,
"robot" = /obj/item/organ/internal/posibrain,
"drone" = /obj/item/device/mmi/digital/robot,
"robot, flying" = /obj/item/organ/internal/posibrain,
Expand Down
2 changes: 1 addition & 1 deletion code/game/dna/dna2_helpers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
if(!H.should_have_organ(BP_HEART))
return
M.dna.check_integrity()
var/block = pick(GLOB.HULKBLOCK,GLOB.XRAYBLOCK,GLOB.FIREBLOCK,GLOB.TELEBLOCK,GLOB.NOBREATHBLOCK,GLOB.REMOTEVIEWBLOCK,GLOB.REGENERATEBLOCK,GLOB.INCREASERUNBLOCK,GLOB.REMOTETALKBLOCK,GLOB.MORPHBLOCK,GLOB.BLENDBLOCK,GLOB.NOPRINTSBLOCK,GLOB.SHOCKIMMUNITYBLOCK,GLOB.SMALLSIZEBLOCK)
var/block = pick(GLOB.FERALBLOCK,GLOB.XRAYBLOCK,GLOB.FIREBLOCK,GLOB.TELEBLOCK,GLOB.NOBREATHBLOCK,GLOB.REMOTEVIEWBLOCK,GLOB.REGENERATEBLOCK,GLOB.INCREASERUNBLOCK,GLOB.REMOTETALKBLOCK,GLOB.MORPHBLOCK,GLOB.BLENDBLOCK,GLOB.NOPRINTSBLOCK,GLOB.SHOCKIMMUNITYBLOCK,GLOB.SMALLSIZEBLOCK)
M.dna.SetSEState(block, 1)

// Random Appearance Mutation
Expand Down
45 changes: 7 additions & 38 deletions code/game/dna/genes/powers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@
/datum/dna/gene/basic/nobreath/New()
block = GLOB.NOBREATHBLOCK

/datum/dna/gene/basic/feral
name = "Feral"
activation_messages = list("You feel feral.")
mutation = MUTATION_FERAL

/datum/dna/gene/basic/feral/New()
block = GLOB.FERALBLOCK

/datum/dna/gene/basic/remoteview
name = "Remote Viewing"
Expand Down Expand Up @@ -122,12 +129,6 @@
block = GLOB.SMALLSIZEBLOCK


/datum/dna/gene/basic/midget/can_activate(mob/M,flags)
if(MUTATION_HULK in M.mutations)
return FALSE
return ..(M,flags)


/datum/dna/gene/basic/midget/activate(mob/M, connected, flags)
..(M,connected, flags)
M.pass_flags |= PASS_FLAG_TABLE
Expand All @@ -138,38 +139,6 @@
M.pass_flags &= ~PASS_FLAG_TABLE


/datum/dna/gene/basic/hulk
name = "Hulk"
activation_messages = list("Your muscles hurt.")
mutation = MUTATION_HULK


/datum/dna/gene/basic/hulk/New()
block = GLOB.HULKBLOCK


/datum/dna/gene/basic/hulk/can_activate(mob/M, flags)
if (mSmallsize in M.mutations)
return FALSE
return ..(M, flags)


/datum/dna/gene/basic/hulk/OnDrawUnderlays(mob/M, g, fat)
return "hulk_[fat ? fat : g]_s"


/datum/dna/gene/basic/hulk/OnMobLife(mob/living/carbon/human/M)
if(!istype(M))
return
if (M.health > 25)
return
M.mutations.Remove(MUTATION_HULK)
M.update_mutations()
to_chat(M, SPAN_WARNING("You suddenly feel very weak."))
M.emote("collapse")
M.Weaken(3)


/datum/dna/gene/basic/xray
name = "X-Ray Vision"
activation_messages = list("The walls suddenly disappear.")
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/changeling/changeling_powers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
changeling.isabsorbing = 0

T.death(0)
T.Drain()
T.ChangeToHusk()
return 1


Expand Down
18 changes: 9 additions & 9 deletions code/game/gamemodes/cult/cultify/de-cultify.dm
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
/turf/unsimulated/wall/cult/attackby(obj/item/I, mob/user)
/turf/unsimulated/wall/cult/use_tool(obj/item/I, mob/living/user, list/click_params)
if(istype(I, /obj/item/nullrod))
user.visible_message(SPAN_NOTICE("\The [user] touches \the [src] with \the [I], and it shifts."), SPAN_NOTICE("You touch \the [src] with \the [I], and it shifts."))
ChangeTurf(/turf/unsimulated/wall)
return
..()
return TRUE
return ..()

/turf/simulated/wall/cult/attackby(obj/item/I, mob/user)
/turf/simulated/wall/cult/use_tool(obj/item/I, mob/living/user, list/click_params)
if (istype(I, /obj/item/nullrod))
user.visible_message(
SPAN_NOTICE("\The [user] touches \the [src] with \the [I], and it shifts."),
SPAN_NOTICE("You touch \the [src] with \the [I], and it shifts.")
)
decultify_wall()
return
..()
return TRUE
return ..()

/turf/simulated/floor/cult/attackby(obj/item/I, mob/user)
/turf/simulated/floor/cult/use_tool(obj/item/I, mob/living/user, list/click_params)
if (istype(I, /obj/item/nullrod))
user.visible_message(
SPAN_NOTICE("\The [user] touches \the [src] with \the [I], and it shifts."),
SPAN_NOTICE("You touch \the [src] with \the [I], and it shifts.")
)
decultify_floor()
return
..()
return TRUE
return ..()

/turf/proc/decultify_wall()
var/turf/simulated/wall/cult/wall = src
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/setupgame.dm
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
// Standard muts, imported from older code above.
GLOB.BLINDBLOCK = getAssignedBlock("BLINDED", numsToAssign)
GLOB.DEAFBLOCK = getAssignedBlock("DEAFENED", numsToAssign)
GLOB.HULKBLOCK = getAssignedBlock("HULK", numsToAssign, DNA_HARD_BOUNDS)
GLOB.FERALBLOCK = getAssignedBlock("FERAL", numsToAssign, DNA_HARD_BOUNDS)
GLOB.TELEBLOCK = getAssignedBlock("TELE", numsToAssign, DNA_HARD_BOUNDS)
GLOB.FIREBLOCK = getAssignedBlock("FIRE", numsToAssign, DNA_HARDER_BOUNDS)
GLOB.XRAYBLOCK = getAssignedBlock("XRAY", numsToAssign, DNA_HARDER_BOUNDS)
Expand Down
6 changes: 0 additions & 6 deletions code/game/machinery/OpTable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,6 @@
updateUsrDialog()

/obj/machinery/optable/physical_attack_hand(mob/user)
if(MUTATION_HULK in user.mutations)
visible_message(SPAN_DANGER("\The [usr] destroys \the [src]!"))
src.set_density(0)
qdel(src)
return TRUE

if(!victim)
to_chat(user, SPAN_WARNING("There is nobody on \the [src]. It would be pointless to turn the suppressor on."))
return TRUE
Expand Down
8 changes: 4 additions & 4 deletions code/game/machinery/Sleeper.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@
if(filtering > 0)
if(beaker)
if(beaker.reagents.total_volume < beaker.reagents.maximum_volume)
var/pumped = 0
var/filter_speed = 0
for(var/datum/reagent/x in occupant.reagents.reagent_list)
occupant.reagents.trans_to_obj(beaker, pump_speed)
pumped++
filter_speed += x.filter_mod * x.volume / occupant.reagents.total_volume
occupant.reagents.trans_to_obj(beaker, pump_speed * filter_speed)
if(ishuman(occupant))
occupant.vessel.trans_to_obj(beaker, pumped + 1)
occupant.vessel.trans_to_obj(beaker, pump_speed * filter_speed)
else
toggle_filter()
if(pump > 0)
Expand Down
11 changes: 3 additions & 8 deletions code/game/machinery/_machines_base/machinery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -238,26 +238,21 @@
/obj/machinery/attack_hand(mob/user)
if((. = ..())) // Buckling, climbers, punching on harm; unlikely to return true.
return
if(MUTATION_FERAL in user.mutations)
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*2)
attack_generic(user, 10, "smashes")
return TRUE
if(!CanPhysicallyInteract(user))
return FALSE // The interactions below all assume physical access to the machine. If this is not the case, we let the machine take further action.
if(!user.IsAdvancedToolUser())
to_chat(user, SPAN_WARNING("You don't have the dexterity to do this!"))
return TRUE
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.getBrainLoss() >= 80)
visible_message(SPAN_WARNING("\The [H] stares cluelessly at \the [src]."))
return TRUE
if((. = component_attack_hand(user)))
return
return TRUE
if(wires && (. = wires.Interact(user)))
return
return TRUE
if((. = physical_attack_hand(user)))
return
return TRUE
if(CanUseTopic(user, DefaultTopicState()) > STATUS_CLOSE)
return interface_interact(user)

Expand Down
10 changes: 10 additions & 0 deletions code/game/machinery/doors/airlock.dm
Original file line number Diff line number Diff line change
Expand Up @@ -810,6 +810,16 @@ About the new airlock wires panel:
s.start()
return ..()

/obj/machinery/door/airlock/attack_hand(mob/user)
if (MUTATION_FERAL in user.mutations)
if (src.welded)
to_chat(user, SPAN_WARNING("You can't pry \the [src] open, it's welded shut!"))
return
if (src.locked)
to_chat(user, SPAN_WARNING("You can't pry \the [src] open, it's bolted tight!"))
return
return ..()

/obj/machinery/door/airlock/physical_attack_hand(mob/user)
if(!istype(usr, /mob/living/silicon))
if(src.isElectrified())
Expand Down
12 changes: 9 additions & 3 deletions code/game/machinery/doors/blast_door.dm
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,15 @@
/obj/machinery/door/blast/get_material_melting_point()
return 10000 // Blast doors are implicitly heavily fire resistant and are used for containing high-temperature areas like burn chambers.

/obj/machinery/door/blast/attack_hand(mob/user)
if (MUTATION_FERAL in user.mutations)
if ((!is_powered() || MACHINE_IS_BROKEN(src)) && density)
visible_message(SPAN_DANGER("\The [user] manages to pry \the [src] open!"))
return force_open()
return ..()

///If we are clicked with crowbar or wielded fire axe, try to manually open the door.
///This only works on broken doors or doors without power. Also allows repair with Plasteel.
// If we are clicked with crowbar or wielded fire axe, try to manually open the door.
// This only works on broken doors or doors without power. Also allows repair with Plasteel.
/obj/machinery/door/blast/use_tool(obj/item/C, mob/living/user, list/click_params)
if(isCrowbar(C) || (istype(C, /obj/item/material/twohanded/fireaxe) && C:wielded == 1))
if(((!is_powered()) || MACHINE_IS_BROKEN(src)) && !( operating ))
Expand Down Expand Up @@ -293,7 +299,7 @@

open_sound = 'sound/machines/shutters_open.ogg'
close_sound = 'sound/machines/shutters_close.ogg'
health_min_damage = 15
health_min_damage = 10
health_max = 500
explosion_resistance = 10
pry_mod = 0.55
Expand Down
Loading

0 comments on commit a5c61a1

Please sign in to comment.