Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Rhials committed Jun 9, 2024
2 parents 7064a74 + 6461c90 commit 330c16d
Show file tree
Hide file tree
Showing 61 changed files with 4,919 additions and 39 deletions.
4,215 changes: 4,215 additions & 0 deletions _maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion _maps/RandomRuins/SpaceRuins/anomaly_research.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@
dir = 6
},
/obj/structure/table/reinforced,
/obj/item/reactive_armour_shell,
/obj/item/reactive_armor_shell,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/misc/anomaly_research)
Expand Down
5 changes: 1 addition & 4 deletions _maps/map_files/IceBoxStation/IceBoxStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -48099,9 +48099,6 @@
/obj/item/healthanalyzer,
/turf/open/floor/iron/white/textured,
/area/station/security/medical)
"otC" = (
/turf/open/genturf,
/area/icemoon/surface/outdoors/nospawn)
"otG" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/blue{
Expand Down Expand Up @@ -272458,7 +272455,7 @@ wNO
aaX
wNO
wNO
otC
bln
hHG
hHG
hHG
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/cooldowns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@

// item cooldowns
#define COOLDOWN_SIGNALLER_SEND "cooldown_signaller_send"
#define COOLDOWN_TOOL_SOUND "cooldown_tool_sound"

//circuit cooldowns
#define COOLDOWN_CIRCUIT_SOUNDEMITTER "circuit_soundemitter"
Expand Down
2 changes: 1 addition & 1 deletion code/__DEFINES/tools.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
// If delay between the start and the end of tool operation is less than MIN_TOOL_SOUND_DELAY,
// tool sound is only played when op is started. If not, it's played twice.
#define MIN_TOOL_SOUND_DELAY 20

#define MIN_TOOL_OPERATING_DELAY 40 //minimum delay for operating sound. Prevent overlaps and overhand sound.
/// Return when an item interaction is successful.
/// This cancels the rest of the chain entirely and indicates success.
#define ITEM_INTERACT_SUCCESS (1<<0) // Same as TRUE, as most tool (legacy) tool acts return TRUE on success
Expand Down
15 changes: 7 additions & 8 deletions code/controllers/subsystem/dynamic/dynamic.dm
Original file line number Diff line number Diff line change
Expand Up @@ -376,11 +376,11 @@ SUBSYSTEM_DEF(dynamic)
/// Generate the advisory level depending on the shown threat level.
/datum/controller/subsystem/dynamic/proc/generate_advisory_level()
var/advisory_string = ""
if (prob(PULSAR_REPORT_CHANCE))
if(HAS_TRAIT(SSstation, STATION_TRAIT_BANANIUM_SHIPMENTS))
advisory_string += "Advisory Level: <b>Clown Planet</b></center><BR>"
advisory_string += "Your sector's advisory level is Clown Planet! Our bike horns have picked up on a large bananium stash. Clowns show a large influx of clowns on your station. We highly advise you to slip any threats to keep Honkotrasen assets within the Banana Sector. The Department of Intelligence advises defending chemistry from any clowns that are trying to make baldium or space lube."
return advisory_string
if(prob(PULSAR_REPORT_CHANCE))
for(var/datum/station_trait/our_trait as anything in shuffle(SSstation.station_traits))
advisory_string += our_trait.get_pulsar_message()
if(length(advisory_string))
return advisory_string

advisory_string += "Advisory Level: <b>Pulsar Star</b></center><BR>"
advisory_string += "Your sector's advisory level is Pulsar Star. A large, unknown electromagnetic field has stormed through nearby surveillance equipment, causing major data loss. Partial data was recovered and showed no credible threats to Nanotrasen assets within the Spinward Sector; however, the Department of Intelligence advises maintaining high alert against potential threats due to the lack of complete data."
Expand Down Expand Up @@ -662,9 +662,6 @@ SUBSYSTEM_DEF(dynamic)
if (initial(ruleset_type.weight) == 0)
continue

if(!(initial(ruleset_type.ruleset_category) & GLOB.dynamic_ruleset_categories))
continue

var/ruleset = new ruleset_type
configure_ruleset(ruleset)
rulesets += ruleset
Expand Down Expand Up @@ -944,6 +941,8 @@ SUBSYSTEM_DEF(dynamic)
ruleset.restricted_roles |= ruleset.protected_roles
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
ruleset.restricted_roles |= JOB_ASSISTANT
if(!(ruleset.ruleset_category & GLOB.dynamic_ruleset_categories))
ruleset.requirements = list(101,101,101,101,101,101,101,101,101,101)

/// Get station traits and call for their config
/datum/controller/subsystem/dynamic/proc/configure_station_trait_costs()
Expand Down
3 changes: 3 additions & 0 deletions code/datums/ai/movement/_ai_movement.dm
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
if(!(pawn_mob.mobility_flags & MOBILITY_MOVE))
can_move = FALSE

if(HAS_TRAIT(pawn, TRAIT_NO_TRANSFORM))
can_move = FALSE

return can_move

///Anything to do before moving; any checks if the pawn should be able to move should be placed in allowed_to_move() and called by this proc
Expand Down
2 changes: 1 addition & 1 deletion code/datums/announcers/intern_announcer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,4 @@
ANNOUNCER_SHUTTLERECALLED = 'sound/ai/intern/shuttlerecalled.ogg',
ANNOUNCER_SPANOMALIES = 'sound/ai/intern/spanomalies.ogg')

custom_alert_message = "<br><span class='alert'>Please stand by for an important message from our new intern.</span><br>"
custom_alert_message = "<span class='alert'>Please stand by for an important message from our new intern.</span><br>"
4 changes: 2 additions & 2 deletions code/datums/components/profound_fisher.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@
if(!do_after(living_parent, 10 SECONDS, target = target))
qdel(lure)
return
var/reward_loot = pick_weight(fish_spot.fish_table)
var/reward_loot = fish_spot.roll_reward(our_rod, parent)
if(ispath(reward_loot))
new reward_loot(get_turf(living_parent))
fish_spot.dispense_reward(reward_loot, parent, target)
qdel(lure)

/obj/item/fishing_rod/mob_fisher
Expand Down
6 changes: 6 additions & 0 deletions code/datums/ruins/icemoon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,12 @@
description = "3 Peaks Radio, where the 2000's live forever."
suffix = "icemoon_underground_frozen_comms.dmm"

/datum/map_template/ruin/icemoon/underground/comms_agent
name = "Icemoon Listening Post"
id = "icemoon_comms_agent"
description = "Radio signals are being detected and the source is this completely innocent pile of snow."
suffix = "icemoon_underground_comms_agent.dmm"

//TODO: Bottom-Level ONLY Spawns after Refactoring Related Code
/datum/map_template/ruin/icemoon/underground/plasma_facility
name = "Ice-Ruin Abandoned Plasma Facility"
Expand Down
4 changes: 4 additions & 0 deletions code/datums/station_traits/_station_trait.dm
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,7 @@ GLOBAL_LIST_EMPTY(lobby_station_traits)
var/datum/hud/using_hud = hud_owner.hud_used
using_hud?.show_hud(using_hud?.hud_version)
lobby_buttons = list()

/// Called when overriding a pulsar star command report message.
/datum/station_trait/proc/get_pulsar_message()
return
11 changes: 10 additions & 1 deletion code/datums/station_traits/negative_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,11 @@
event_control_path = /datum/round_event_control/ion_storm
weight_multiplier = 2

/datum/station_trait/random_event_weight_modifier/ion_storms/get_pulsar_message()
var/advisory_string = "Advisory Level: <b>ERROR</b></center><BR>"
advisory_string += scramble_message_replace_chars("Your sector's advisory level is ERROR. An electromagnetic field has stormed through nearby surveillance equipment, causing major data loss. Partial data was recovered and showed no credible threats to Nanotrasen assets within the Spinward Sector; however, the Department of Intelligence advises maintaining high alert against potential threats due to the lack of complete data.", 35)
return advisory_string

/datum/station_trait/random_event_weight_modifier/rad_storms
name = "Radiation Stormfront"
report_message = "A radioactive stormfront is passing through your station's system. Expect an increased likelihood of radiation storms passing over your station, as well the potential for multiple radiation storms to occur during your shift."
Expand Down Expand Up @@ -719,7 +724,11 @@
weight = 3
show_in_report = TRUE
report_message = "It looks like the storm is not gonna calm down anytime soon, stay safe out there."

storm_type = /datum/weather/snow_storm/forever_storm

/datum/station_trait/storm/foreverstorm/get_pulsar_message()
var/advisory_string = "Advisory Level: <b>Ice Giant</b></center><BR>"
advisory_string += "The ongoing blizzard has interfered with our surveillance equipment, and we cannot provide an accurate threat summary at this time. We advise you to stay safe and avoid traversing the area around the station."
return advisory_string

#undef GLOW_NEBULA
10 changes: 10 additions & 0 deletions code/datums/station_traits/neutral_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
report_message = "Rumors has it that the clown planet has been sending support packages to clowns in this system."
trait_to_give = STATION_TRAIT_BANANIUM_SHIPMENTS

/datum/station_trait/bananium_shipment/get_pulsar_message()
var/advisory_string = "Advisory Level: <b>Clown Planet</b></center><BR>"
advisory_string += "Your sector's advisory level is Clown Planet! Our bike horns have picked up on a large bananium stash. Clowns show a large influx of clowns on your station. We highly advise you to slip any threats to keep Honkotrasen assets within the Banana Sector. The Department of Intelligence advises defending chemistry from any clowns that are trying to make baldium or space lube."
return advisory_string

/datum/station_trait/unnatural_atmosphere
name = "Unnatural atmospherical properties"
trait_type = STATION_TRAIT_NEUTRAL
Expand Down Expand Up @@ -122,6 +127,11 @@
. = ..()
SSstation.announcer = /datum/centcom_announcer/intern

/datum/station_trait/announcement_intern/get_pulsar_message()
var/advisory_string = "Advisory Level: <b>(TITLE HERE)</b></center><BR>"
advisory_string += "(Copy/Paste the summary provided by the Threat Intelligence Office in this field. You shouldn't have any trouble with this just make sure to replace this message before hitting the send button. Also, make sure there's coffee ready for the meeting at 06:00 when you're done.)"
return advisory_string

/datum/station_trait/announcement_medbot
name = "Announcement \"System\""
trait_type = STATION_TRAIT_NEUTRAL
Expand Down
12 changes: 11 additions & 1 deletion code/datums/station_traits/positive_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,11 @@
weight_multiplier = 3
max_occurrences_modifier = 10 //lotta cows

/datum/station_trait/random_event_weight_modifier/wise_cows/get_pulsar_message()
var/advisory_string = "Advisory Level: <b>Cow Planet</b></center><BR>" //We're gonna go fast and we're gonna go far.
advisory_string += "Your sector's advisory level is Cow Planet. We don't really know what this one means -- the model we use to create these threat reports hasn't produced this result before. Watch out for cows, I guess? Good luck!"
return advisory_string

/datum/station_trait/bright_day
name = "Bright Day"
report_message = "The stars shine bright and the clouds are scarcer than usual. It's a bright day here on the Ice Moon's surface."
Expand Down Expand Up @@ -354,9 +359,14 @@
/// Spawns assistants with some gear, either gimmicky or functional. Maybe, one day, it will inspire an assistant to do something productive or fun
/datum/station_trait/assistant_gimmicks
name = "Geared Assistants Pilot"
report_message = "The Nanotrassen Assistant Affairs division is performing a pilot to see if different assistant equipments help improve productivity!"
report_message = "The Nanotrassen Assistant Affairs division is performing a pilot to see if different assistant equipment helps improve productivity!"
trait_type = STATION_TRAIT_POSITIVE
weight = 3
trait_to_give = STATION_TRAIT_ASSISTANT_GIMMICKS
show_in_report = TRUE
blacklist = list(/datum/station_trait/colored_assistants)

/datum/station_trait/random_event_weight_modifier/assistant_gimmicks/get_pulsar_message()
var/advisory_string = "Advisory Level: <b>Grey Sky</b></center><BR>"
advisory_string += "Your sector's advisory level is Grey Sky. Our sensors detect abnormal activity among the assistants assigned to your station. We advise you to closely monitor the Tool Storage, Bridge, Tech Storage, and Brig for gathering crowds or petty thievery."
return advisory_string
2 changes: 1 addition & 1 deletion code/datums/weather/weather_types/radiation_storm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
protected_areas = list(/area/station/maintenance, /area/station/ai_monitored/turret_protected/ai_upload, /area/station/ai_monitored/turret_protected/ai_upload_foyer,
/area/station/ai_monitored/turret_protected/aisat/maint, /area/station/ai_monitored/command/storage/satellite,
/area/station/ai_monitored/turret_protected/ai, /area/station/commons/storage/emergency/starboard, /area/station/commons/storage/emergency/port,
/area/shuttle, /area/station/security/prison/safe, /area/station/security/prison/toilet, /area/icemoon/underground)
/area/shuttle, /area/station/security/prison/safe, /area/station/security/prison/toilet, /area/icemoon/underground, /area/ruin/comms_agent/maint)
target_trait = ZTRAIT_STATION

immunity_type = TRAIT_RADSTORM_IMMUNE
Expand Down
8 changes: 8 additions & 0 deletions code/game/area/areas/ruins/icemoon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@
/area/ruin/powered/mailroom
name = "\improper Abandoned Post Office"

/area/ruin/comms_agent
name = "\improper Listening Post"
sound_environment = SOUND_ENVIRONMENT_CITY

/area/ruin/comms_agent/maint
name = "\improper Listening Post Maintenance"
sound_environment = SOUND_AREA_TUNNEL_ENCLOSED

/area/ruin/plasma_facility/commons
name = "\improper Abandoned Plasma Facility Commons"
sound_environment = SOUND_AREA_STANDARD_STATION
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/rechargestation.dm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
req_access = list(ACCESS_ROBOTICS)
state_open = TRUE
circuit = /obj/item/circuitboard/machine/cyborgrecharger
occupant_typecache = list(/mob/living/silicon/robot, /mob/living/carbon/human)
occupant_typecache = list(/mob/living/silicon/robot, /mob/living/carbon/human, /mob/living/circuit_drone)
processing_flags = NONE
var/recharge_speed
var/repairs
Expand Down
18 changes: 18 additions & 0 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
var/hitsound
///Played when the item is used, for example tools
var/usesound
///Played when item is used for long progress
var/operating_sound
///Used when yate into a mob
var/mob_throw_hit_sound
///Sound used when equipping the item into a valid slot
Expand Down Expand Up @@ -1123,6 +1125,9 @@
// Create a callback with checks that would be called every tick by do_after.
var/datum/callback/tool_check = CALLBACK(src, PROC_REF(tool_check_callback), user, amount, extra_checks)

if(delay >= MIN_TOOL_OPERATING_DELAY)
play_tool_operating_sound(target, volume)

if(!do_after(user, delay, target=target, extra_checks=tool_check))
return
else
Expand Down Expand Up @@ -1165,6 +1170,19 @@

playsound(target, played_sound, volume, TRUE)

///Play item's operating sound
/obj/item/proc/play_tool_operating_sound(atom/target, volume=50)
if(target && operating_sound && volume)
var/played_sound = operating_sound

if(islist(operating_sound))
played_sound = pick(operating_sound)

if(!TIMER_COOLDOWN_FINISHED(src, COOLDOWN_TOOL_SOUND))
return
playsound(target, played_sound, volume, TRUE)
TIMER_COOLDOWN_START(src, COOLDOWN_TOOL_SOUND, 4 SECONDS) //based on our longest sound clip

/// Used in a callback that is passed by use_tool into do_after call. Do not override, do not call manually.
/obj/item/proc/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks)
SHOULD_NOT_OVERRIDE(TRUE)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/robot/robot_upgrades.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
to_chat(borg, span_alert("Upgrade mounting error! No suitable hardpoint detected."))
to_chat(user, span_warning("There's no mounting point for the module!"))
return FALSE
if(!allow_duplicates && (locate(type) in borg.contents))
if(!allow_duplicates && (locate(type) in borg.upgrades))
to_chat(borg, span_alert("Upgrade mounting error! Hardpoint already occupied!"))
to_chat(user, span_warning("The mounting point for the module is already occupied!"))
return FALSE
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/tools/crowbar.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
usesound = 'sound/items/crowbar.ogg'
operating_sound = 'sound/items/crowbar_prying.ogg'
obj_flags = CONDUCTS_ELECTRICITY
slot_flags = ITEM_SLOT_BELT
force = 5
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/tools/screwdriver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
attack_verb_simple = list("stab")
hitsound = 'sound/weapons/bladeslice.ogg'
usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg')
operating_sound = 'sound/items/screwdriver_operating.ogg'
tool_behaviour = TOOL_SCREWDRIVER
toolspeed = 1
armor_type = /datum/armor/item_screwdriver
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/tools/wirecutters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
attack_verb_simple = list("pinch", "nip")
hitsound = 'sound/items/wirecutter.ogg'
usesound = 'sound/items/wirecutter.ogg'
operating_sound = 'sound/items/wirecutter_cut.ogg'
drop_sound = 'sound/items/handling/wirecutter_drop.ogg'
pickup_sound = 'sound/items/handling/wirecutter_pickup.ogg'
tool_behaviour = TOOL_WIRECUTTER
Expand Down
1 change: 1 addition & 0 deletions code/game/objects/items/tools/wrench.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
demolition_mod = 1.25
w_class = WEIGHT_CLASS_SMALL
usesound = 'sound/items/ratchet.ogg'
operating_sound = list('sound/items/ratchet_fast.ogg', 'sound/items/ratchet_slow.ogg')
custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*1.5)
drop_sound = 'sound/items/handling/wrench_drop.ogg'
pickup_sound = 'sound/items/handling/wrench_pickup.ogg'
Expand Down
8 changes: 5 additions & 3 deletions code/modules/admin/verbs/borgpanel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,19 @@ ADMIN_VERB(borg_panel, R_ADMIN, "Show Borg Panel", ADMIN_VERB_NO_DESCRIPTION, AD
borg.fully_replace_character_name(borg.real_name,new_name)
if ("toggle_upgrade")
var/upgradepath = text2path(params["upgrade"])
var/obj/item/borg/upgrade/installedupgrade = locate(upgradepath) in borg
var/obj/item/borg/upgrade/installedupgrade = locate(upgradepath) in borg.upgrades
if (installedupgrade)
message_admins("[key_name_admin(user)] removed the [installedupgrade] upgrade from [ADMIN_LOOKUPFLW(borg)].")
log_silicon("[key_name(user)] removed the [installedupgrade] upgrade from [key_name(borg)].")
qdel(installedupgrade) // see [mob/living/silicon/robot/on_upgrade_deleted()].
else
var/obj/item/borg/upgrade/upgrade = new upgradepath(borg)
upgrade.action(borg, user)
borg.upgrades += upgrade
message_admins("[key_name_admin(user)] added the [upgrade] borg upgrade to [ADMIN_LOOKUPFLW(borg)].")
log_silicon("[key_name(user)] added the [upgrade] borg upgrade to [key_name(borg)].")
if(upgrade.action(borg, user))
borg.add_to_upgrades(upgrade)
else
qdel(upgrade)
if ("toggle_radio")
var/channel = params["channel"]
if (channel in borg.radio.channels) // We're removing a channel
Expand Down
4 changes: 4 additions & 0 deletions code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,10 @@ GLOBAL_LIST_EMPTY_TYPED(air_alarms, /obj/machinery/airalarm)
if(allow_link_change)
disconnect_sensor()

if ("lock")
togglelock(usr)
return TRUE

update_appearance()

return TRUE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,16 @@
if(machine_stat & (NOPOWER|BROKEN))
to_chat(user, span_warning("It does nothing!"))
else
if(HAS_SILICON_ACCESS(user))
locked = !locked
return
if(src.allowed(usr) && !wires.is_cut(WIRE_IDSCAN))
locked = !locked
to_chat(user, span_notice("You [ locked ? "lock" : "unlock"] the air alarm interface."))
if(!locked)
ui_interact(user)
else
to_chat(user, span_danger("Access denied."))
return

/obj/machinery/airalarm/emag_act(mob/user, obj/item/card/emag/emag_card)
if(obj_flags & EMAGGED)
Expand Down
3 changes: 2 additions & 1 deletion code/modules/client/client_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
return TRUE
if(src.last_message_count >= SPAM_TRIGGER_WARNING)
//"auto-ban" sends the message that the cold and uncaring gamecode has been designed to quiash you like a bug in short measure should you continue, and it's quite intentional that the user isn't told exactly what that entails.
to_chat(src, span_danger("You are nearing the auto-ban limit for identical messages."))
to_chat(src, span_userdanger("You are nearing the auto-ban limit for identical messages."))
mob.balloon_alert(mob, "stop spamming!")
return FALSE
else
last_message = message
Expand Down
8 changes: 4 additions & 4 deletions code/modules/clothing/suits/reactive_armour.dm
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/obj/item/reactive_armour_shell
name = "reactive armour shell"
desc = "An experimental suit of armour, awaiting installation of an anomaly core."
/obj/item/reactive_armor_shell
name = "reactive armor shell"
desc = "An experimental suit of armor, awaiting installation of an anomaly core."
icon_state = "reactiveoff"
icon = 'icons/obj/clothing/suits/armor.dmi'
w_class = WEIGHT_CLASS_BULKY

/obj/item/reactive_armour_shell/attackby(obj/item/weapon, mob/user, params)
/obj/item/reactive_armor_shell/attackby(obj/item/weapon, mob/user, params)
..()
var/static/list/anomaly_armour_types = list(
/obj/effect/anomaly/grav = /obj/item/clothing/suit/armor/reactive/repulse,
Expand Down
Loading

0 comments on commit 330c16d

Please sign in to comment.