diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 5631aa5e166..83dec12ede0 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -41,7 +41,6 @@
#define COMSIG_GLOB_AI_MINION_RALLY "!ai_minion_rally"
#define COMSIG_GLOB_HIVE_TARGET_DRAINED "!hive_target_drained"
-
/// Sent when a marine dropship enters transit level
#define COMSIG_GLOB_DROPSHIP_TRANSIT "!dropship_transit"
///Sent when xenos launch a hijacked dropship
@@ -156,7 +155,6 @@
/// Called when the player replies. From /client/proc/cmd_admin_pm().
#define COMSIG_ADMIN_HELP_REPLIED "admin_help_replied"
-
// /area signals
#define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M)
#define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M)
@@ -164,7 +162,6 @@
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
-
#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params, mob/user)
#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob)
#define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob)
@@ -183,7 +180,6 @@
#define COMSIG_DBLCLICK_ALT "dblclick_alt"
#define COMSIG_DBLCLICK_CTRL "dblclick_ctrl"
-
// /client signals
#define COMSIG_CLIENT_MOUSEDOWN "client_mousedown" //from base of client/MouseDown(): (/client, object, location, control, params)
#define COMSIG_CLIENT_MOUSEUP "client_mouseup" //from base of client/MouseUp(): (/client, object, location, control, params)
@@ -261,7 +257,6 @@
///Called right before the atom changes the value of light_flags to a different one, from base atom/set_light_flags(): (new_value)
#define COMSIG_ATOM_SET_LIGHT_FLAGS "atom_set_light_flags"
-
// /atom/movable signals
#define COMSIG_MOVABLE_PRE_MOVE "movable_pre_move" //from base of atom/movable/Move(): (/atom, new_loc, direction)
#define COMPONENT_MOVABLE_BLOCK_PRE_MOVE (1<<0)
@@ -404,7 +399,6 @@
#define COMSIG_HELMET_MODULE_ATTACHING "helmet_module_attaching"
#define COMSIG_HELMET_MODULE_DETACHED "helmet_module_detached"
-
// /obj/item/weapon/gun signals
#define COMSIG_GUN_FIRE "gun_fire"
#define COMSIG_MOB_GUN_FIRE "mob_gun_fire"
@@ -623,7 +617,7 @@
///from /mob/living/proc/attack_alien_harm(mob/living/carbon/xenomorph/X, dam_bonus, set_location, random_location, no_head, no_crit, force_intent)
#define COMSIG_XENOMORPH_ATTACK_LIVING "xenomorph_attack_living"
#define COMSIG_XENOMORPH_BONUS_APPLIED (1<<0)
-///from /mob/living/carbon/xenomorph/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+///from /mob/living/carbon/xenomorph/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
///only on INTENT_HARM, INTENT_DISARM, IF it does damaage
#define COMSIG_XENOMORPH_ATTACK_HOSTILE_XENOMORPH "xenomorph_attack_xenomorph"
@@ -898,36 +892,12 @@
#define COMSIG_XENOABILITY_SCATTER_SPIT "xenoability_scatter_spit"
-/* RUTGMC DELETION, WIDOW DELETION
-#define COMSIG_XENOABILITY_WEB_SPIT "xenoability_web_spit"
-#define COMSIG_XENOABILITY_BURROW "xenoability_burrow"
-#define COMSIG_XENOABILITY_LEASH_BALL "xenoability_leash_ball"
-#define COMSIG_XENOABILITY_CREATE_SPIDERLING "xenoability_create_spiderling"
-#define COMSIG_XENOABILITY_CREATE_SPIDERLING_USING_CC "xenoability_create_spiderling_using_cc"
-#define COMSIG_XENOABILITY_ATTACH_SPIDERLINGS "xenoability_attach_spiderlings"
-#define COMSIG_XENOABILITY_CANNIBALISE_SPIDERLING "xenoability_cannibalise_spiderling"
-#define COMSIG_XENOABILITY_WEB_HOOK "xenoability_web_hook"
-#define COMSIG_XENOABILITY_SPIDERLING_MARK "xenoability_spiderling_mark"
-*/
-
#define COMSIG_XENOABILITY_PSYCHIC_SHIELD "xenoability_psychic_shield"
#define COMSIG_XENOABILITY_TRIGGER_PSYCHIC_SHIELD "xenoability_trigger_psychic_shield"
#define COMSIG_XENOABILITY_PSYCHIC_BLAST "xenoability_psychic_blast"
#define COMSIG_XENOABILITY_TOGGLE_WARLOCK_ZOOM "xenoability_toggle_warlock_zoom"
#define COMSIG_XENOABILITY_PSYCHIC_CRUSH "xenoability_psychic_crush"
-/* RU TGMC EDIT
-#define COMSIG_XENOABILITY_TENDRILS "xenoability_tendrils"
-#define COMSIG_XENOABILITY_ORGANICBOMB "xenoability_puppeteerorganicbomb"
-#define COMSIG_XENOABILITY_PUPPET "xenoability_puppet"
-#define COMSIG_XENOABILITY_REFURBISHHUSK "xenoability_refurbishhusk"
-#define COMSIG_XENOABILITY_DREADFULPRESENCE "xenoability_dreadfulpresence"
-#define COMSIG_XENOABILITY_PINCUSHION "xenoability_pincushion"
-#define COMSIG_XENOABILITY_FLAY "xenoability_flay"
-#define COMSIG_XENOABILITY_SENDORDERS_RADIAL "xenoability_sendorders_radial"
-#define COMSIG_XENOABILITY_ATTACKORDER "xenoability_attackorder"
-#define COMSIG_XENOABILITY_RECALLORDER "xenoability_recallorder"
-#define COMSIG_XENOABILITY_BESTOWBLESSINGS "xenoability_giveblessings"
-RU TGMC EDIT */
+
#define COMSIG_XENOABILITY_BANELING_EXPLODE "xenoability_baneling_explode"
#define COMSIG_XENOABILITY_BEHEMOTH_ROLL "xenoability_behemoth_roll"
@@ -974,7 +944,6 @@ RU TGMC EDIT */
#define COMSIG_KB_DEFENDORDER "keybind_defendorder"
#define COMSIG_KB_RETREATORDER "keybind_retreatorder"
-
// human modules signals for keybindings
#define COMSIG_KB_VALI_CONFIGURE "keybinding_vali_configure"
#define COMSIG_KB_VALI_HEAL "keybinding_vali_heal"
@@ -1014,7 +983,6 @@ RU TGMC EDIT */
/*******Non-Signal Component Related Defines*******/
-
// /datum/action signals
#define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action)
#define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0)
@@ -1053,19 +1021,6 @@ RU TGMC EDIT */
///Called from base of /datum/controller/subsystem/spatial_grid/proc/exit_cell: (/atom/movable)
#define SPATIAL_GRID_CELL_EXITED(contents_type) "spatial_grid_cell_exited_[contents_type]"
-/* RUTGMC DELETION, WIDOW DELETION
-// widow spiderling signals
-#define COMSIG_SPIDERLING_MARK "spiderling_mark"
-#define COMSIG_SPIDERLING_RETURN "spiderling_return"
-#define COMSIG_SPIDERLING_GUARD "spiderling_guard"
-#define COMSIG_SPIDERLING_UNGUARD "spiderling_unguard"
-*/
-/* RU TGMC EDIT
-//puppet
-#define COMSIG_PUPPET_CHANGE_ORDER "puppetchangeorder"
-#define COMSIG_PUPPET_CHANGE_ALL_ORDER "puppetglobalorder"
-RU TGMC EDIT */
-
/// Xeno signals
#define COMSIG_XENOABILITY_TEARING_TAIL "xenoability_tearing_tail"
#define COMSIG_XENOABILITY_PANTHER_POUNCE "xenoability_panther_pounce"
diff --git a/code/_onclick/xeno.dm b/code/_onclick/xeno.dm
index abb2327d679..15604f5c097 100644
--- a/code/_onclick/xeno.dm
+++ b/code/_onclick/xeno.dm
@@ -14,11 +14,9 @@
GLOB.round_statistics.xeno_unarmed_attacks++
SSblackbox.record_feedback("tally", "round_statistics", 1, "xeno_unarmed_attacks")
-
-/atom/proc/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/atom/proc/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
return
-
/mob/living/carbon/xenomorph/larva/UnarmedAttack(atom/A, has_proximity, modifiers)
if(lying_angle)
return FALSE
@@ -30,8 +28,6 @@
/atom/proc/attack_larva(mob/living/carbon/xenomorph/larva/L)
return
-
-
/mob/living/carbon/xenomorph/hivemind/UnarmedAttack(atom/A, has_proximity, modifiers)
if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED))
return
@@ -40,8 +36,6 @@
/atom/proc/attack_hivemind(mob/living/carbon/xenomorph/hivemind/attacker)
return
-
-
/mob/living/carbon/xenomorph/facehugger/UnarmedAttack(atom/A, has_proximity, modifiers)
if(lying_angle)
return FALSE
@@ -58,5 +52,5 @@
GLOB.round_statistics.xeno_unarmed_attacks++
SSblackbox.record_feedback("tally", "round_statistics", 1, "xeno_unarmed_attacks")
-/atom/proc/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/atom/proc/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
return
diff --git a/code/datums/gamemodes/campaign/missions/base_rescue.dm b/code/datums/gamemodes/campaign/missions/base_rescue.dm
index d1c53b6c19c..4cba8278dd5 100644
--- a/code/datums/gamemodes/campaign/missions/base_rescue.dm
+++ b/code/datums/gamemodes/campaign/missions/base_rescue.dm
@@ -103,7 +103,6 @@
map_text_broadcast(attacking_faction, message_to_play, "[color] override broadcast", /atom/movable/screen/text/screen_text/picture/potrait/unknown)
map_text_broadcast(defending_faction, message_to_play, "[color] override broadcast", /atom/movable/screen/text/screen_text/picture/potrait/unknown)
-
/obj/effect/landmark/campaign_structure/weapon_x
name = "weapon X spawner"
icon = 'icons/obj/structures/campaign/tall_structures.dmi'
@@ -145,8 +144,8 @@
else
icon_state = "[initial(icon_state)]_open"
-/obj/structure/weapon_x_pod/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X != occupant)
+/obj/structure/weapon_x_pod/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker != occupant)
return
release_occupant()
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index 064a44e7e77..a419ab7e60a 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -7,22 +7,17 @@
density = TRUE
anchored = FALSE
-
/obj/effect/beam
name = "beam"
var/def_zone
allow_pass_flags = PASS_LOW_STRUCTURE
-
/obj/effect/begin
name = "begin"
icon = 'icons/obj/stationobjs.dmi'
icon_state = "begin"
anchored = TRUE
-
-
-
/obj/effect/list_container
name = "list container"
@@ -90,19 +85,15 @@
GLOB.fog_blockers -= src
return ..()
-
/obj/effect/forcefield/fog/attack_hand(mob/living/user)
to_chat(user, span_notice("You peer through the fog, but it's impossible to tell what's on the other side..."))
return TRUE
+/obj/effect/forcefield/fog/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ return attack_hand(xeno_attacker)
-/obj/effect/forcefield/fog/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- return attack_hand(X)
-
-
-/obj/effect/forcefield/fog/attack_animal(M)
- return attack_hand(M)
-
+/obj/effect/forcefield/fog/attack_animal(animal_attacker)
+ return attack_hand(animal_attacker)
/obj/effect/forcefield/fog/CanAllowThrough(atom/movable/mover, turf/target)
. = ..()
@@ -171,7 +162,6 @@
icon_state = "supplypod_selector"
layer = FLY_LAYER
-
/obj/effect/dummy/lighting_obj
name = "lighting fx obj"
desc = "Tell a coder if you're seeing this."
@@ -193,17 +183,14 @@
if(_duration)
QDEL_IN(src, _duration)
-
/obj/effect/dummy/lighting_obj/moblight
name = "mob lighting fx"
-
/obj/effect/dummy/lighting_obj/moblight/Initialize(mapload, _color, _range, _power, _duration)
. = ..()
if(!ismob(loc))
return INITIALIZE_HINT_QDEL
-
//Makes a tile fully lit no matter what
/obj/effect/fullbright
icon = 'icons/effects/alphacolors.dmi'
diff --git a/code/game/objects/effects/spawners/random/misc_item.dm b/code/game/objects/effects/spawners/random/misc_item.dm
index d92513cf1a4..b4e840237bc 100644
--- a/code/game/objects/effects/spawners/random/misc_item.dm
+++ b/code/game/objects/effects/spawners/random/misc_item.dm
@@ -146,8 +146,7 @@
icon_state = "random_gnome"
spawn_loot_chance = 15
loot = list(
- /obj/item/toy/plush/gnome = 25,
- /obj/item/toy/plush/gnome/living = 1,
+ /obj/item/toy/plush/gnome
)
/obj/effect/spawner/random/misc/gnome/fiftyfifty
diff --git a/code/game/objects/effects/weeds.dm b/code/game/objects/effects/weeds.dm
index 627fa347c9b..8f8bc4e368b 100644
--- a/code/game/objects/effects/weeds.dm
+++ b/code/game/objects/effects/weeds.dm
@@ -19,7 +19,6 @@
plane = FLOOR_PLANE
max_integrity = 25
ignore_weed_destruction = TRUE
-
var/obj/alien/weeds/node/parent_node
///The color variant of the sprite
var/color_variant = NORMAL_COLOR
@@ -152,10 +151,8 @@
vehicle.last_move_time += WEED_SLOWDOWN
return
-//RU TGMC EDIT
if(HAS_TRAIT(crosser, TRAIT_SUPER_STRONG))
return
-//RU TGMC EDIT
if(isxeno(crosser))
var/mob/living/carbon/xenomorph/X = crosser
@@ -172,10 +169,8 @@
if(victim.lying_angle)
return
-
victim.next_move_slowdown += WEED_SLOWDOWN
-
/obj/alien/weeds/resting
name = "resting weeds"
desc = "This looks almost comfortable."
@@ -234,11 +229,11 @@
return ..()
return window.attackby(I, user, params)
-/obj/alien/weeds/weedwall/window/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/alien/weeds/weedwall/window/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
var/obj/structure/window = locate(window_type) in loc
if(!window)
return ..()
- return window.attack_alien(X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+ return window.attack_alien(xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
/obj/alien/weeds/weedwall/window/frame
window_type = /obj/structure/window_frame
@@ -330,10 +325,8 @@
vehicle.last_move_time += WEED_SLOWDOWN
return
-//RU TGMC EDIT
if(HAS_TRAIT(crosser, TRAIT_SUPER_STRONG))
return
-//RU TGMC EDIT
if(!ishuman(crosser))
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 95a67e5bce0..67b154ccaf9 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -12,12 +12,9 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
allow_pass_flags = PASS_LOW_STRUCTURE
flags_atom = PREVENT_CONTENTS_EXPLOSION
resistance_flags = PROJECTILE_IMMUNE
-
var/image/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite
///The iconstate that the items use for blood on blood.dmi when drawn on the mob.
var/blood_sprite_state
-
-
var/item_state = null //if you don't want to use icon_state for onmob inhand/belt/back/ear/suitstorage/glove sprite.
//e.g. most headsets have different icon_state but they all use the same sprite when shown on the mob's ears.
//also useful for items with many icon_state values when you don't want to make an inhand sprite for each value.
@@ -28,30 +25,23 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
///Byond tick delay between right click alternate attacks
var/attack_speed_alternate = 11
var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
-
var/sharp = FALSE // whether this item cuts
var/edge = FALSE // whether this item is more likely to dismember
var/pry_capable = FALSE //whether this item can be used to pry things open.
var/heat = 0 //whether this item is a source of heat, and how hot it is (in Kelvin).
-
var/hitsound = null
var/w_class = WEIGHT_CLASS_NORMAL
var/flags_item = NONE //flags for item stuff that isn't clothing/equipping specific.
var/flags_equip_slot = NONE //This is used to determine on which slots an item can fit.
-
//Since any item can now be a piece of clothing, this has to be put here so all items share it.
var/flags_inventory = NONE //This flag is used for various clothing/equipment item stuff
var/flags_inv_hide = NONE //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc.
-
var/obj/item/master = null
-
var/flags_armor_protection = NONE //see setup.dm for appropriate bit flags
var/flags_heat_protection = NONE //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
var/flags_cold_protection = NONE //flags which determine which body parts are protected from cold. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
-
var/max_heat_protection_temperature //Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by flags_heat_protection flags
var/min_cold_protection_temperature //Set this variable to determine down to which temperature (IN KELVIN) the item protects against cold damage. 0 is NOT an acceptable number due to if(varname) tests!! Keep at null to disable protection. Only protects areas set by flags_cold_protection flags
-
///list of /datum/action's that this item has.
var/list/actions
///list of paths of action datums to give to the item on Initialize().
@@ -61,10 +51,8 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit)
var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
var/breakouttime = 0
-
///list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
var/list/species_exception = null
-
var/list/allowed = null //suit storage stuff.
///name used for message when binoculars/scope is used
var/zoomdevicename = null
@@ -76,10 +64,8 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
var/zoom_viewsize = 5 //RU TGMC EDIT
///if you can move with the zoom on, only works if zoom_view_size is 7 otherwise CRASH() is called due to maptick performance reasons.
var/zoom_allow_movement = FALSE
-
var/datum/embedding_behavior/embedding
var/mob/living/embedded_into
-
///How long it takes to equip this item yoursef
var/equip_delay_self = 0 SECONDS
/// How long it takes to unequip this item yourself
@@ -88,14 +74,10 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
var/equip_delay_other = 2 SECONDS
///How long an item takes to remove from another person
var/strip_delay = 4 SECONDS
-
var/reach = 1
-
/// Species-specific sprites, concept stolen from Paradise//vg/. Ex: sprite_sheets = list("Combat Robot" = 'icons/mob/species/robot/backpack.dmi') If index term exists and icon_override is not set, this sprite sheet will be used.
var/list/sprite_sheets = null
-
//** These specify item/icon overrides for _slots_
-
///>Lazylist< that overrides the default item_state for particular slots.
var/list/item_state_slots
///>LazyList< Used to specify the icon file to be used when the item is worn in a certain slot. icon_override or sprite_sheets are set they will take precendence over this, assuming they apply to the slot in question.
@@ -122,18 +104,12 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
var/inhand_x_offset = 0
///Worn inhand overlay will be shifted by this along y axis
var/inhand_y_offset = 0
-
var/flags_item_map_variant = NONE
-
//TOOL RELATED VARS
var/tool_behaviour = FALSE
var/toolspeed = 1
var/usesound = null
-
var/active = FALSE
-
-
-
//Coloring vars
///Some defines to determine if the item is allowed to be recolored.
var/colorable_allowed = NONE
@@ -143,13 +119,9 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
var/list/icon_state_variants = list()
///Current variant selected.
var/current_variant
-
///Current hair concealing option selected.
var/current_hair_concealment
-
-
-
/obj/item/Initialize(mapload)
if(species_exception)
@@ -202,11 +174,9 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
GLOB.cryoed_item_list -= src
return ..()
-
/obj/item/proc/update_item_state(mob/user)
item_state = "[initial(icon_state)][flags_item & WIELDED ? "_w" : ""]"
-
//user: The mob that is suiciding
//damagetype: The type of damage the item will inflict on the user
//BRUTELOSS = 1
@@ -217,7 +187,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
/obj/item/proc/suicide_act(mob/user)
return
-
/obj/item/verb/move_to_top()
set name = "Move To Top"
set category = "Object"
@@ -252,7 +221,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
return
return interact(user)
-
/obj/item/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -283,7 +251,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
user.dropItemToGround(src)
dropped(user)
-
/obj/item/update_icon_state()
. = ..()
if(current_variant)
@@ -331,7 +298,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
else if(S.can_be_inserted(src))
S.handle_item_insertion(src, FALSE, user)
-
/obj/item/attackby_alternate(obj/item/I, mob/user, params)
. = ..()
if(.)
@@ -340,7 +306,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
return
alternate_color_item(I, user)
-
/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language)
return ITALICS | REDUCE_RANGE
@@ -397,12 +362,10 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
/obj/item/proc/on_exit_storage(obj/item/storage/S as obj)
return
-
///called when this item is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
/obj/item/proc/on_enter_storage(obj/item/storage/S as obj)
return
-
///called when "found" in pockets and storage items. Returns 1 if the search should end.
/obj/item/proc/on_found(mob/finder as mob)
return
@@ -440,7 +403,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
if(slowdown)
human_user.add_movespeed_modifier(type, TRUE, 0, (flags_item & IMPEDE_JETPACK) ? SLOWDOWN_IMPEDE_JETPACK : NONE, TRUE, slowdown)
-
///Called when an item is removed from an equipment slot. The loc should still be in the unequipper.
/obj/item/proc/unequipped(mob/unequipper, slot)
SHOULD_CALL_PARENT(TRUE)
@@ -461,7 +423,6 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
if(slowdown)
human_unequipper.remove_movespeed_modifier(type)
-
//sometimes we only want to grant the item's action if it's equipped in a specific slot.
/obj/item/proc/item_action_slot_check(mob/user, slot)
return TRUE
@@ -710,7 +671,7 @@ GLOBAL_DATUM_INIT(welding_sparks_prepdoor, /mutable_appearance, mutable_appearan
if(MAP_ARMOR_STYLE_JUNGLE)
if(flags_item_map_variant & ITEM_JUNGLE_VARIANT)
if(colorable_allowed & PRESET_COLORS_ALLOWED)
- greyscale_colors = ARMOR_PALETTE_BLACK //RUTGMC edit - black instead of default drab
+ greyscale_colors = ARMOR_PALETTE_BLACK
else if(colorable_allowed & ICON_STATE_VARIANTS_ALLOWED)
current_variant = JUNGLE_VARIANT
else
@@ -1006,21 +967,15 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
if(-1)
to_chat(user, span_danger("Your eyes itch and burn severely."))
-
-
-
-
//This proc is here to prevent Xenomorphs from picking up objects (default attack_hand behaviour)
//Note that this is overriden by every proc concerning a child of obj unless inherited
-/obj/item/attack_alien(mob/living/carbon/xenomorph/X, isrightclick = FALSE)
+/obj/item/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, isrightclick = FALSE)
return FALSE
-
/obj/item/proc/update_action_button_icons()
for(var/datum/action/A AS in actions)
A.update_button_icon()
-
/obj/item/proc/extinguish(atom/target, mob/user)
if (reagents.total_volume < 1)
to_chat(user, span_warning("\The [src]'s water reserves are empty."))
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index dc82a3451be..c00dd31701e 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -1,5 +1,4 @@
//Also contains /obj/structure/closet/bodybag because I doubt anyone would think to look for bodybags in /object/structures
-
/obj/item/bodybag
name = "body bag"
desc = "A folded bag designed for the storage and transportation of cadavers."
@@ -9,7 +8,6 @@
var/unfoldedbag_path = /obj/structure/closet/bodybag
var/obj/structure/closet/bodybag/unfoldedbag_instance = null
-
/obj/item/bodybag/Initialize(mapload, unfoldedbag)
. = ..()
unfoldedbag_instance = unfoldedbag
@@ -23,11 +21,9 @@
QDEL_NULL(unfoldedbag_instance)
return ..()
-
/obj/item/bodybag/attack_self(mob/user)
deploy_bodybag(user, user.loc)
-
/obj/item/bodybag/afterattack(atom/target, mob/user, proximity)
if(!proximity || !isturf(target) || target.density)
return
@@ -37,7 +33,6 @@
return
deploy_bodybag(user, target)
-
/obj/item/bodybag/proc/deploy_bodybag(mob/user, atom/location)
if(QDELETED(unfoldedbag_instance))
unfoldedbag_instance = new unfoldedbag_path(location, src)
@@ -47,7 +42,6 @@
user.temporarilyRemoveItemFromInventory(src)
moveToNullspace()
-
/obj/structure/closet/bodybag
name = "body bag"
var/bag_name = "body bag"
@@ -70,7 +64,6 @@
var/obj/structure/bed/roller/roller_buckled //the roller bed this bodybag is attached to.
var/mob/living/bodybag_occupant
-
/obj/structure/closet/bodybag/Initialize(mapload, foldedbag)
. = ..()
foldedbag_instance = foldedbag
@@ -88,13 +81,11 @@
UnregisterSignal(src, COMSIG_ATOM_ACIDSPRAY_ACT, PROC_REF(acidspray_act))
return ..()
-
/obj/structure/closet/bodybag/is_buckled()
if(roller_buckled)
return roller_buckled
return ..()
-
/obj/structure/closet/bodybag/proc/update_name()
if(opened)
name = bag_name
@@ -104,7 +95,6 @@
else
name = "[bag_name] (empty)"
-
/obj/structure/closet/bodybag/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -128,7 +118,6 @@
name = "body bag"
overlays.Cut()
-
/obj/structure/closet/bodybag/closet_special_handling(mob/living/mob_to_stuff) // overriding this
if(!ishuman(mob_to_stuff))
return FALSE //Only humans.
@@ -138,7 +127,6 @@
return FALSE //We don't want to store those that can be revived.
return TRUE
-
/obj/structure/closet/bodybag/close()
. = ..()
if(.)
@@ -150,14 +138,12 @@
return TRUE
return FALSE
-
/obj/structure/closet/bodybag/open()
. = ..()
if(bodybag_occupant)
bodybag_occupant = null
update_name()
-
/obj/structure/closet/bodybag/MouseDrop(over_object, src_location, over_location)
. = ..()
if(over_object != usr || !Adjacent(usr) || roller_buckled)
@@ -172,7 +158,6 @@
usr.put_in_hands(foldedbag_instance)
moveToNullspace()
-
/obj/structure/closet/bodybag/Move(NewLoc, direct)
if (roller_buckled && roller_buckled.loc != NewLoc) //not updating position
if (!roller_buckled.anchored)
@@ -182,13 +167,11 @@
else
return ..()
-
/obj/structure/closet/bodybag/forceMove(atom/destination)
if(roller_buckled)
roller_buckled.unbuckle_bodybag()
return ..()
-
/obj/structure/closet/bodybag/update_icon()
if(!opened)
icon_state = icon_closed
@@ -198,16 +181,15 @@
else
icon_state = icon_opened
-
-/obj/structure/closet/bodybag/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/closet/bodybag/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(opened)
return FALSE // stop xeno closing things
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- bodybag_occupant?.attack_alien(X)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ bodybag_occupant?.attack_alien(xeno_attacker)
open()
- X.visible_message(span_danger("\The [X] slashes \the [src] open!"), \
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] slashes \the [src] open!"), \
span_danger("We slash \the [src] open!"), null, 5)
return TRUE
@@ -256,7 +238,6 @@
balloon_alert(bodybag_occupant, "smoke forces you out")
open() //Get out
-
/obj/item/storage/box/bodybags
name = "body bags"
desc = "This box contains body bags."
@@ -265,7 +246,6 @@
spawn_type = /obj/item/bodybag
spawn_number = 7
-
/obj/item/bodybag/cryobag
name = "stasis bag"
desc = "A folded, reusable bag designed to prevent additional damage to an occupant."
@@ -274,7 +254,6 @@
unfoldedbag_path = /obj/structure/closet/bodybag/cryobag
var/used = FALSE
-
/obj/structure/closet/bodybag/cryobag
name = "stasis bag"
bag_name = "stasis bag"
@@ -282,7 +261,6 @@
icon = 'icons/obj/cryobag.dmi'
foldedbag_path = /obj/item/bodybag/cryobag
-
/obj/structure/closet/bodybag/cryobag/attackby(obj/item/I, mob/user, params)
if(!istype(I, /obj/item/healthanalyzer))
return ..()
@@ -295,7 +273,6 @@
J.attack(bodybag_occupant, user) // yes this is awful -spookydonut // TODO
return TRUE
-
/obj/structure/closet/bodybag/cryobag/open()
if(bodybag_occupant)
REMOVE_TRAIT(bodybag_occupant, TRAIT_STASIS, STASIS_BAG_TRAIT)
@@ -303,13 +280,11 @@
bodybag_occupant.record_time_in_stasis()
return ..()
-
/obj/structure/closet/bodybag/cryobag/closet_special_handling(mob/living/mob_to_stuff) // overriding this
if(!ishuman(mob_to_stuff))
return FALSE //Humans only.
return TRUE
-
/obj/structure/closet/bodybag/cryobag/close()
. = ..()
if(bodybag_occupant)
@@ -323,7 +298,6 @@
visible_message(span_notice("\The [src] rejects the corpse."))
open()
-
/obj/structure/closet/bodybag/cryobag/examine(mob/living/user)
. = ..()
if(!ishuman(bodybag_occupant))
@@ -339,7 +313,6 @@
. += "Scan from [medical_record.fields["last_scan_time"]]"
break
-
/obj/structure/closet/bodybag/cryobag/Topic(href, href_list)
. = ..()
if(.)
@@ -359,14 +332,12 @@
popup.open(FALSE)
break
-
/obj/item/trash/used_stasis_bag
name = "used stasis bag"
icon = 'icons/obj/cryobag.dmi'
icon_state = "bodybag_used"
desc = "It's been ripped open. You will need to find a machine capable of recycling it."
-
//MARINE SNIPER TARPS
/obj/item/bodybag/tarp
@@ -397,13 +368,11 @@
unfoldedbag_instance.close()
return TRUE
-
/obj/item/bodybag/tarp/snow
icon = 'icons/obj/bodybag.dmi'
icon_state = "snowtarp_folded"
unfoldedbag_path = /obj/structure/closet/bodybag/tarp/snow
-
/obj/structure/closet/bodybag/tarp
name = "\improper V1 thermal-dampening tarp"
bag_name = "V1 thermal-dampening tarp"
@@ -418,7 +387,6 @@
closet_stun_delay = 0.5 SECONDS //Short delay to prevent ambushes from being too degenerate.
var/serial_number //Randomized serial number used to stop point macros and such.
-
/obj/structure/closet/bodybag/tarp/close()
. = ..()
if(!opened && bodybag_occupant)
@@ -428,7 +396,6 @@
bodybag_occupant.alpha = 0
RegisterSignals(bodybag_occupant, list(COMSIG_MOB_DEATH, COMSIG_PREQDELETED), PROC_REF(on_bodybag_occupant_death))
-
/obj/structure/closet/bodybag/tarp/open()
anchored = FALSE
if(alpha != initial(alpha))
@@ -440,7 +407,6 @@
bodybag_occupant.alpha = initial(bodybag_occupant.alpha)
return ..()
-
/obj/structure/closet/bodybag/tarp/closet_special_handling(mob/living/mob_to_stuff) // overriding this
if(!ishuman(mob_to_stuff))
return FALSE //Humans only.
@@ -448,16 +414,13 @@
return FALSE
return TRUE
-
/obj/structure/closet/bodybag/tarp/proc/on_bodybag_occupant_death(mob/source, gibbing)
SIGNAL_HANDLER
open()
-
/obj/structure/closet/bodybag/tarp/update_name()
return //Shouldn't be revealing who's inside.
-
/obj/structure/closet/bodybag/tarp/MouseDrop(over_object, src_location, over_location)
. = ..()
var/obj/item/bodybag/tarp/folded_tarp = foldedbag_instance
@@ -465,7 +428,6 @@
folded_tarp.serial_number = serial_number //Set the serial number
folded_tarp.name = "\improper [serial_number] [initial(folded_tarp.name)]" //Set the name with the serial number
-
/obj/structure/closet/bodybag/tarp/snow
icon_state = "snowtarp_closed"
icon_closed = "snowtarp_closed"
diff --git a/code/game/objects/items/explosives/mine.dm b/code/game/objects/items/explosives/mine.dm
index a7b08bf830b..36a4b860316 100644
--- a/code/game/objects/items/explosives/mine.dm
+++ b/code/game/objects/items/explosives/mine.dm
@@ -164,15 +164,15 @@ Stepping directly on the mine will also blow it up
return TRUE
/// Alien attacks trigger the explosive to instantly detonate
-/obj/item/explosive/mine/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/item/explosive/mine/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(triggered) //Mine is already set to go off
return
- if(X.a_intent == INTENT_HELP)
+ if(xeno_attacker.a_intent == INTENT_HELP)
return
- X.visible_message(span_danger("[X] has slashed [src]!"), \
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] has slashed [src]!"), \
span_danger("We slash [src]!"))
playsound(loc, 'sound/weapons/slice.ogg', 25, 1)
INVOKE_ASYNC(src, PROC_REF(trigger_explosion))
diff --git a/code/game/objects/items/flashlight.dm b/code/game/objects/items/flashlight.dm
index b5d8d37b88a..ad8a892b23f 100644
--- a/code/game/objects/items/flashlight.dm
+++ b/code/game/objects/items/flashlight.dm
@@ -40,12 +40,12 @@
update_action_button_icons()
update_icon()
-/obj/item/flashlight/attack_alien(mob/living/carbon/xenomorph/X, isrightclick = FALSE)
- if(turn_light(X, FALSE) != CHECKS_PASSED)
+/obj/item/flashlight/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, isrightclick = FALSE)
+ if(turn_light(xeno_attacker, FALSE) != CHECKS_PASSED)
return
playsound(loc, "alien_claw_metal", 25, 1)
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- to_chat(X, span_warning("We disable the metal thing's lights.") )
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ to_chat(xeno_attacker, span_warning("We disable the metal thing's lights.") )
/obj/item/flashlight/update_icon_state()
. = ..()
@@ -83,14 +83,12 @@
to_chat(user, span_notice("Use a screwdriver on [F] to change it back."))
qdel(src) //Delete da old flashlight
-
/obj/item/flashlight/attack(mob/living/M, mob/living/user)
if(light_on && user.zone_selected == BODY_ZONE_PRECISE_EYES)
if((user.getBrainLoss() >= 60) && prob(50)) //too dumb to use flashlight properly
return ..() //just hit them in the head
-
var/mob/living/carbon/human/H = M //mob has protective eyewear
if(ishuman(M) && ((H.head && H.head.flags_inventory & COVEREYES) || (H.wear_mask && H.wear_mask.flags_inventory & COVEREYES) || (H.glasses && H.glasses.flags_inventory & COVEREYES)))
to_chat(user, span_notice("You're going to need to remove that [(H.head && H.head.flags_inventory & COVEREYES) ? "helmet" : (H.wear_mask && H.wear_mask.flags_inventory & COVEREYES) ? "mask": "glasses"] first."))
@@ -115,7 +113,6 @@
else
return ..()
-
/obj/item/flashlight/pen
name = "penlight"
desc = "A pen-sized light, used by medical staff."
@@ -174,12 +171,12 @@
if(!usr.stat)
attack_self(usr)
-/obj/item/flashlight/lamp/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/item/flashlight/lamp/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- X.do_attack_animation(src, ATTACK_EFFECT_SMASH)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_SMASH)
playsound(loc, 'sound/effects/metalhit.ogg', 20, TRUE)
- X.visible_message(span_danger("\The [X] smashes [src]!"), \
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] smashes [src]!"), \
span_danger("We smash [src]!"), null, 5)
deconstruct(FALSE)
@@ -195,7 +192,6 @@
light_on = TRUE //Bio-luminesence has one setting, on.
raillight_compatible = FALSE
-
/obj/item/flashlight/slime/attack_self(mob/user)
return //Bio-luminescence does not toggle.
diff --git a/code/game/objects/items/reagent_containers/food/cans.dm b/code/game/objects/items/reagent_containers/food/cans.dm
index d1670b2e7a2..d21119a3934 100644
--- a/code/game/objects/items/reagent_containers/food/cans.dm
+++ b/code/game/objects/items/reagent_containers/food/cans.dm
@@ -3,11 +3,10 @@
init_reagent_flags = NONE
var/canopened = FALSE
-/obj/item/reagent_containers/food/drinks/cans/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/reagent_containers/food/drinks/cans/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
-
+ attack_hand(xeno_attacker)
/obj/item/reagent_containers/food/drinks/cans/attack_self(mob/user as mob)
if(canopened == FALSE)
diff --git a/code/game/objects/items/reagent_containers/food/drinks/bottle.dm b/code/game/objects/items/reagent_containers/food/drinks/bottle.dm
index abbdd3e56ce..a7af13fd465 100644
--- a/code/game/objects/items/reagent_containers/food/drinks/bottle.dm
+++ b/code/game/objects/items/reagent_containers/food/drinks/bottle.dm
@@ -1,9 +1,6 @@
-
-
///////////////////////////////////////////////Alchohol bottles! -Agouri //////////////////////////
//Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem
//Bottles now weaken and break when smashed on people's heads. - Giacom
-
/obj/item/reagent_containers/food/drinks/bottle
amount_per_transfer_from_this = 10
volume = 100
@@ -38,7 +35,6 @@
if(user.a_intent != INTENT_HARM || !isGlass)
return ..()
-
force = 15 //Smashing bottles over someoen's head hurts.
var/datum/limb/affecting = user.zone_selected //Find what the player is aiming at
@@ -74,10 +70,10 @@
//Finally, smash the bottle. This kills (del) the bottle.
smash(target, user)
-/obj/item/reagent_containers/food/drinks/bottle/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/reagent_containers/food/drinks/bottle/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
+ attack_hand(xeno_attacker)
/obj/item/reagent_containers/food/drinks/bottle/gin
name = "\improper Griffeater Gin"
diff --git a/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm b/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm
index 6ba09eadadd..cf87c859245 100644
--- a/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm
+++ b/code/game/objects/items/reagent_containers/food/drinks/drinkingglass.dm
@@ -1,5 +1,3 @@
-
-
/obj/item/reagent_containers/food/drinks/drinkingglass
name = "glass"
desc = "Your standard drinking glass."
@@ -611,10 +609,10 @@
center_of_mass = list("x"=16, "y"=10)
return
-/obj/item/reagent_containers/food/drinks/drinkingglass/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/reagent_containers/food/drinks/drinkingglass/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
+ attack_hand(xeno_attacker)
// for /obj/machinery/vending/sovietsoda
/obj/item/reagent_containers/food/drinks/drinkingglass/soda
diff --git a/code/game/objects/items/reagent_containers/food/snacks.dm b/code/game/objects/items/reagent_containers/food/snacks.dm
index bb02d0a3d91..a874b400d33 100644
--- a/code/game/objects/items/reagent_containers/food/snacks.dm
+++ b/code/game/objects/items/reagent_containers/food/snacks.dm
@@ -4,13 +4,13 @@
desc = "yummy"
icon = 'icons/obj/items/food/food.dmi'
icon_state = null
+ center_of_mass = list("x"=15, "y"=15)
var/bitesize = 1
var/bitecount = 0
var/trash = null
var/slice_path
var/slices_num
var/package = FALSE
- center_of_mass = list("x"=15, "y"=15)
var/list/tastes // for example list("crisps" = 2, "salt" = 1)
/obj/item/reagent_containers/food/snacks/create_reagents(max_vol, new_flags, list/init_reagents, data)
@@ -47,10 +47,10 @@
/obj/item/reagent_containers/food/snacks/attack_self(mob/user as mob)
return
-/obj/item/reagant_containers/food/snacks/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/reagant_containers/food/snacks/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
+ attack_hand(xeno_attacker)
/obj/item/reagent_containers/food/snacks/attack(mob/M, mob/user, def_zone)
if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
@@ -97,12 +97,9 @@
return
var/rgt_list_text = get_reagent_list_text()
-
log_combat(user, M, "fed", src, "Reagents: [rgt_list_text]")
-
balloon_alert_to_viewers("forces [M] to eat")
-
if(reagents) //Handle ingestion of the reagent.
playsound(M.loc,'sound/items/eatfood.ogg', 15, 1)
if(reagents.total_volume)
@@ -170,7 +167,6 @@
if(reagents.total_volume <= 0)
qdel(src)
-
/obj/item/reagent_containers/food/snacks/sliceable/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -200,7 +196,6 @@
qdel(src)
return TRUE
-
/obj/item/reagent_containers/food/snacks/Destroy()
for(var/i in contents)
var/atom/movable/AM = i
@@ -229,22 +224,8 @@
//N.emote("nibbles away at the [src]")
N.health = min(N.health + 1, N.maxHealth)
-////////////////////////////////////////////////////////////////////////////////
-/// FOOD END
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-
-
-
-
-
-
-
-
//////////////////////////////////////////////////
-////////////////////////////////////////////Snacks
+///////////////////Snacks/////////////////////////
//////////////////////////////////////////////////
//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created
// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
@@ -272,7 +253,6 @@
///obj/item/reagent_containers/food/snacks/burger/xeno/Initialize(mapload) //Absolute pathing for procs, please.
// . = ..() //Calls the parent proc, don't forget to add this.
-
/obj/item/reagent_containers/food/snacks/honeycomb
name = "honeycomb"
icon_state = "honeycomb"
@@ -297,7 +277,6 @@
list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 3, /datum/reagent/medicine/tricordrazine = 1, /datum/reagent/iron = 5) //Honk
bitesize = 2
-
/obj/item/reagent_containers/food/snacks/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Cannot be stored in a detective's hat, alas."
@@ -423,9 +402,7 @@
list_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("chalky wheat" = 1)
-
/obj/item/reagent_containers/food/snacks/organ
-
name = "organ"
desc = "It's good for you."
icon = 'icons/obj/items/organs.dmi'
@@ -433,12 +410,10 @@
filling_color = "#E00D34"
bitesize = 3
-
/obj/item/reagent_containers/food/snacks/organ/Initialize(mapload)
list_reagents = list(/datum/reagent/consumable/nutriment = rand(3,5), /datum/reagent/toxin = rand(1,3))
return ..()
-
/obj/item/reagent_containers/food/snacks/worm
name = "worm"
icon = 'icons/obj/items/items.dmi'
@@ -693,12 +668,11 @@
icon_state = "popcorn"
icon = 'icons/obj/items/food/packaged.dmi'
trash = /obj/item/trash/popcorn
- var/unpopped = 0
filling_color = "#FFFAD4"
list_reagents = list(/datum/reagent/consumable/nutriment = 2)
bitesize = 0.1 //this snack is supposed to be eating during looooong time. And this it not dinner food! --rastaf0
tastes = list("popcorn" = 3, "butter" = 1)
-
+ var/unpopped = 0
/obj/item/reagent_containers/food/snacks/popcorn/Initialize(mapload)
. = ..()
@@ -710,7 +684,6 @@
unpopped = max(0, unpopped-1)
return ..()
-
/obj/item/reagent_containers/food/snacks/sosjerky
name = "Scaredy's Private Reserve Beef Jerky"
icon_state = "sosjerky"
@@ -842,9 +815,9 @@
icon_state = "monkeycube"
bitesize = 12
filling_color = "#ADAC7F"
- var/monkey_type = /mob/living/carbon/human/species/monkey
list_reagents = list(/datum/reagent/consumable/nutriment = 10)
tastes = list("the jungle" = 1, "bananas" = 1)
+ var/monkey_type = /mob/living/carbon/human/species/monkey
/obj/item/reagent_containers/food/snacks/monkeycube/examine(mob/user)
. = ..()
@@ -902,13 +875,11 @@
new monkey_type(T)
qdel(src)
-
/obj/item/reagent_containers/food/snacks/monkeycube/wrapped
desc = "Still wrapped in some paper."
icon_state = "monkeycubewrap"
package = TRUE
-
/obj/item/reagent_containers/food/snacks/monkeycube/farwacube
name = "farwa cube"
monkey_type = /mob/living/carbon/human/species/monkey/farwa
@@ -917,7 +888,6 @@
name = "farwa cube"
monkey_type = /mob/living/carbon/human/species/monkey/farwa
-
/obj/item/reagent_containers/food/snacks/monkeycube/stokcube
name = "stok cube"
monkey_type = /mob/living/carbon/human/species/monkey/stok
@@ -926,7 +896,6 @@
name = "stok cube"
monkey_type = /mob/living/carbon/human/species/monkey/stok
-
/obj/item/reagent_containers/food/snacks/monkeycube/neaeracube
name = "neaera cube"
monkey_type = /mob/living/carbon/human/species/monkey/naera
@@ -1303,7 +1272,6 @@
balloon_alert(user, "cuts and rolls strips into balls")
qdel(src)
-
/obj/item/reagent_containers/food/snacks/cutlet
name = "cutlet"
desc = "A tasty meat slice."
@@ -1313,7 +1281,6 @@
list_reagents = list(/datum/reagent/consumable/nutriment = 2)
tastes = list("meat" = 1)
-
/obj/item/reagent_containers/food/snacks/rawmeatball
name = "raw meatball"
desc = "A raw meatball."
@@ -1343,7 +1310,6 @@
bitesize = 2
list_reagents = list(/datum/reagent/consumable/nutriment = 3)
-
/obj/item/reagent_containers/food/snacks/rawsticks
name = "raw potato sticks"
desc = "Raw fries, not very tasty."
@@ -1399,7 +1365,6 @@
list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sodiumchloride = 0.5)
var/variation = null
-
/obj/item/reagent_containers/food/snacks/upp/Initialize(mapload)
if(!variation)
variation = pick("fish","rice")
@@ -1409,7 +1374,6 @@
tastes = list("dried [pick("carp", "shark", "tuna", "fish")]" = 1, "[pick("potatoes", "borsch", "borshch", "bortsch", "hardtack")]" = 1)
if("rice")
tastes = list("[pick("rice", "rye", "starch")]" = 1, "[pick("sawdust", "beans", "chicken")]" = 1)
-
return ..()
/obj/item/reagent_containers/food/snacks/upp/attack_self(mob/user as mob)
@@ -1445,7 +1409,6 @@
//no taste, default to "something indescribable"
list_reagents = list(/datum/reagent/consumable/nutriment = 3)
-
/obj/item/reagent_containers/food/snacks/kepler_crisps
name = "Kepler Crisps"
desc = "'They're disturbingly good!' Now with 0% trans fat."
@@ -1472,7 +1435,6 @@
icon_state = "[initial(icon_state)]-o"
package = FALSE
-
/obj/item/reagent_containers/food/snacks/wrapped/booniebars
name = "Boonie Bars"
desc = "Two delicious bars of minty chocolate. \"Sometimes things are just... out of reach.\""
@@ -1542,7 +1504,7 @@
return ..()
/obj/item/reagent_containers/food/snacks/packaged_meal/attack_self(mob/user as mob)
- if (package)
+ if(package)
balloon_alert(user, "opens package")
playsound(loc,'sound/effects/pageturn2.ogg', 15, 1)
name = "\improper" + flavor
@@ -1568,7 +1530,6 @@
icon_state = "dessert"
list_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/sugar = 1)
-
/obj/item/reagent_containers/food/snacks/lollipop
name = "lollipop"
desc = "A delicious lollipop."
diff --git a/code/game/objects/items/reagent_containers/syringes.dm b/code/game/objects/items/reagent_containers/syringes.dm
index f919b6c787d..bdbf7038c12 100644
--- a/code/game/objects/items/reagent_containers/syringes.dm
+++ b/code/game/objects/items/reagent_containers/syringes.dm
@@ -229,7 +229,7 @@
var/hit_area = affecting.display_name
var/mob/living/carbon/human/H = target
- if((user != target) && !H.check_shields(COMBAT_TOUCH_ATTACK, 14, "melee"))
+ if((user != target) && !H.check_shields(COMBAT_TOUCH_ATTACK, 14, MELEE))
return
if (target != user && !prob(target.modify_by_armor(100, MELEE, penetration, target_zone)))
diff --git a/code/game/objects/items/tools/flame_tools.dm b/code/game/objects/items/tools/flame_tools.dm
index a06edf3ce0d..cfd33b2c409 100644
--- a/code/game/objects/items/tools/flame_tools.dm
+++ b/code/game/objects/items/tools/flame_tools.dm
@@ -132,7 +132,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(heat)
return
heat = 1000
- damtype = "burn"
+ damtype = BURN
icon_state = "match_lit"
set_light_on(TRUE)
diff --git a/code/game/objects/items/tools/kitchen_tools.dm b/code/game/objects/items/tools/kitchen_tools.dm
index d13bfea7b9b..9103ee1baff 100644
--- a/code/game/objects/items/tools/kitchen_tools.dm
+++ b/code/game/objects/items/tools/kitchen_tools.dm
@@ -1,15 +1,3 @@
-/* Kitchen tools
-* Contains:
-* Utensils
-* Spoons
-* Forks
-* Knives
-* Kitchen knives
-* Butcher's cleaver
-* Rolling Pins
-* Trays
-*/
-
/obj/item/tool/kitchen
icon = 'icons/obj/items/kitchen_tools.dmi'
item_icons = list(
@@ -60,10 +48,10 @@
else
..()
-/obj/item/tool/kitchen/utensil/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/tool/kitchen/utensil/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
+ attack_hand(xeno_attacker)
/obj/item/tool/kitchen/utensil/fork
name = "fork"
@@ -232,7 +220,6 @@
var/mob/living/carbon/human/H = M ///////////////////////////////////// /Let's have this ready for later.
-
if(!(user.zone_selected == ("eyes" || "head"))) //////////////hitting anything else other than the eyes
if(prob(33))
src.add_mob_blood(H)
@@ -240,7 +227,6 @@
if (istype(location, /turf))
location.add_mob_blood(H) ///Plik plik, the sound of blood
-
log_combat(user, M, "attacked", src)
if(prob(15))
@@ -257,9 +243,6 @@
visible_message(span_danger("[user] slams [M] with the tray!"))
return
-
-
-
if(ishuman(M) && ((H.head && (H.head.flags_inventory & COVEREYES) ) || (H.wear_mask && (H.wear_mask.flags_inventory & COVEREYES) ) || (H.glasses && (H.glasses.flags_inventory & COVEREYES) )))
to_chat(M, span_warning("You get slammed in the face with the tray, against your mask!"))
if(prob(33))
@@ -331,6 +314,7 @@
= =
===============~~~~~================================~~~~~====================
*/
+
/obj/item/tool/kitchen/tray/proc/calc_carry()
// calculate the weight of the items on the tray
var/val = 0 // value to return
diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm
index e25b26fdc7f..786dfd86bc0 100644
--- a/code/game/objects/items/toys/toys.dm
+++ b/code/game/objects/items/toys/toys.dm
@@ -1,20 +1,3 @@
-/* Toys!
-* Contains:
-* Balloons
-* Fake telebeacon
-* Fake singularity
-* Toy mechs
-* Crayons
-* Snap pops
-* Water flower
-* Dolls
-* Inflatable duck
-* Other things
-*/
-
-
-//recreational items
-
/obj/item/toy
icon = 'icons/obj/items/toy.dmi'
item_icons = list(
@@ -25,11 +8,10 @@
throw_range = 20
force = 0
-/obj/item/toy/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/toy/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
-
+ attack_hand(xeno_attacker)
/*
* Balloons
@@ -58,7 +40,6 @@
desc = "A translucent balloon with some form of liquid sloshing around in it."
update_icon()
-
/obj/item/toy/balloon/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -79,10 +60,8 @@
desc = "A translucent balloon with some form of liquid sloshing around in it."
to_chat(user, span_notice("You fill the balloon with the contents of [I]."))
I.reagents.trans_to(src, 10)
-
update_icon()
-
/obj/item/toy/balloon/throw_impact(atom/hit_atom)
. = ..()
if(!.)
@@ -137,8 +116,6 @@
icon = 'icons/obj/singularity.dmi'
icon_state = "singularity_s1"
-
-
/*
* Crayons
*/
@@ -248,7 +225,6 @@
else
src.empty = 0
-
var/obj/effect/decal/D = new/obj/effect/decal/(get_turf(src))
D.name = "water"
D.icon = 'icons/obj/items/chemistry.dmi'
@@ -274,8 +250,6 @@
. = ..()
. += "[reagents.total_volume] units of water left!"
-
-
/*
* Mech prizes
*/
@@ -320,7 +294,6 @@
desc = "Mini-Mecha action figure! Collect them all! 4/11."
icon_state = "gygaxtoy"
-
/obj/item/toy/prize/durand
name = "toy durand"
desc = "Mini-Mecha action figure! Collect them all! 5/11."
@@ -364,7 +337,6 @@
icon = 'icons/obj/clothing/belts.dmi'
flags_equip_slot = ITEM_SLOT_BELT
-
/obj/item/toy/beach_ball
name = "beach ball"
icon_state = "beachball"
@@ -379,7 +351,6 @@
user.drop_held_item()
throw_at(target, throw_range, throw_speed, user)
-
/obj/item/toy/dice
name = "d6"
desc = "A dice with six sides."
@@ -411,8 +382,6 @@
span_notice("You throw [src]. It lands on a [result]. [comment]"), \
span_notice("You hear [src] landing on a [result]. [comment]"))
-
-
/obj/item/toy/bikehorn
name = "bike horn"
desc = "A horn off of a bicycle."
@@ -425,7 +394,6 @@
throw_range = 15
attack_verb = list("HONKED")
-
/obj/item/toy/bikehorn/Initialize(mapload)
. = ..()
AddComponent(/datum/component/squeak, 'sound/items/bikehorn.ogg', 50)
@@ -532,10 +500,6 @@
item_state = "rounyplush"
attack_verb = list("slashes", "bites", "pounces")
-#define HIGH_GNOME_MOVE_RANGE 40
-#define STANDARD_GNOME_PIPE_CHANCE 50
-#define GNOME_EXCLUSION_RANGE 21 //20 is the max view of a ghost
-
/obj/item/toy/plush/gnome
name = "gnome"
desc = "A mythological creature that guarded Terra's garden. You wonder why it is here."
@@ -547,214 +511,6 @@
. = ..()
AddComponent(/datum/component/squeak, 'sound/items/gnome.ogg', 50)
-/obj/item/toy/plush/gnome/living
- resistance_flags = UNACIDABLE
- ///how far the gnome should choose for teleportation purposes
- var/gnome_move_range = 5
- ///how many failed teleports we've done
- var/teleport_retries = 0
- ///sanity cap to prevent gnome spending too much time calculating possible teleport areas, it's theoretically possible to store the gnome in an impossible area so we need to check this
- var/max_tries = 50
- ///list for keeping track of the mobs around us
- var/mob/possible_mobs = list()
- ///list for keeping track of items in current gnome turf
- var/turf/targetturf
- ///used for determining if a gnome is in the pipe network
- var/pipe_mode = FALSE
- ///how likely are we to enter a pipe
- var/pipe_mode_chance = STANDARD_GNOME_PIPE_CHANCE
- ///hold an int that determines what the interval a gnome acts
- var/gnome_act_timer
- ///original gnome spawn location, used as an emergency backup
- var/gnome_origin
-
-/obj/item/toy/plush/gnome/living/Initialize(mapload)
- . = ..()
- gnome_origin = get_turf(src)
- addtimer(CALLBACK(src, PROC_REF(gnome_act)), 5 MINUTES)
- RegisterSignal(src, COMSIG_MOVABLE_SHUTTLE_CRUSH, PROC_REF(shuttle_crush))
-
-///root proc for handling gnome AI routines
-/obj/item/toy/plush/gnome/living/proc/gnome_act()
- ///targetturf stores our position at the start of routine in all. teleport_routine uses it as a baseline for determining where to find teleport locations also
- targetturf = get_turf(src)
- gnome_act_timer = rand(4,8) MINUTES
- pipe_mode_chance = STANDARD_GNOME_PIPE_CHANCE
- if(prob(10))
- do_flavor_actions(targetturf) //flavor actions don't take being watched into account
- addtimer(CALLBACK(src, PROC_REF(gnome_act)), gnome_act_timer)
- return
- possible_mobs = list()
- for(var/mob/nearbymob in range(GNOME_EXCLUSION_RANGE, src)) //all mobs are included except animals, this means that AIs and ghosts will block gnome movement
- if(isanimal(nearbymob))
- continue
- if(isobserver(nearbymob))
- continue
- possible_mobs += nearbymob
- if(handle_pipe_mode(targetturf) && pipe_mode) //if we're in pipe_mode we return,
- addtimer(CALLBACK(src, PROC_REF(gnome_act)), gnome_act_timer)
- return
- if(isspacearea(get_area(src)))
- forceMove(gnome_origin) //we're in space, return to origin
- targetturf = get_turf(src) //reset targetturf to origin to avoid problems with teleport_routine
- gnome_move_range = gnome_move_range + teleport_retries * 3 //for each teleport retry the gnome gets a multiplier to distance, to allow it to "escape" if left unattended
- if(length(possible_mobs))
- addtimer(CALLBACK(src, PROC_REF(gnome_act)), rand(15,90) SECONDS) //we're being watched, set shorter counter so we can escape once eyes are off of us
- teleport_retries += 1 //for each time a watching mob suppresses our teleport, increment counter
- return
- else
- if(handle_ladders())
- targetturf = get_turf(src) //need to reset targetturf to new position indicated by ladder use, or teleport_routine will calculate from old position
- flick("gnome_escape", src)
- addtimer(CALLBACK(src, PROC_REF(teleport_routine), targetturf), 1.5 SECONDS) //delay just briefly so our animation can go off
- addtimer(CALLBACK(src, PROC_REF(gnome_act)), gnome_act_timer)
-
-//handles gnome going up or down ladders
-/obj/item/toy/plush/gnome/living/proc/handle_ladders()
- for(var/atom/movable/object AS in targetturf.contents)
- if(!length(targetturf.contents) || prob(60)) //possibility that we don't use a ladder
- return FALSE
- if(isladder(object))
- var/obj/structure/ladder/selectedladder = object
- if(selectedladder.up && selectedladder.down)
- pick(forceMove(get_turf(selectedladder.up)), forceMove(get_turf(selectedladder.down)))
- break
- else if(selectedladder.up)
- forceMove(get_turf(selectedladder.up))
- break
- else if(selectedladder.down)
- forceMove(get_turf(selectedladder.down))
- break
- return TRUE
-
-///handles gnome teleportation when not being observed by players
-/obj/item/toy/plush/gnome/living/proc/teleport_routine(turf/targetturf)
- var/loopcount
- while(!length(possible_mobs))
- loopcount += 1
- var/area/targetarea = get_area(targetturf)
- if(!targetarea || !targetturf)
- targetturf = get_turf(src) //somehow we've lost our turf, use the one underneath us
- continue
- //find teleport locations within radius gnome_move_range of targetturf. once found, we verify that it's valid, set our new targetturf to it and move gnome to the new location
- targetturf = locate(targetturf.x + rand(gnome_move_range * -1, gnome_move_range), targetturf.y + rand(gnome_move_range * -1, gnome_move_range), targetturf.z)
- targetarea = get_area(targetturf)
- if(get_teleport_prereqs(targetturf) || loopcount >= max_tries) //try different turfs within range until we find something that passes get_teleport_prereqs or we hit max amount of loops
- teleport_retries = 0 //teleported successfully, clear teleport_retries
- break
- forceMove(targetturf)
- flick("gnome_return", src)
-
-///validate that the turf we're attempting to teleport to is not dense in space etc
-/obj/item/toy/plush/gnome/living/proc/get_teleport_prereqs(turf/targetturf, ignore_watching_players = FALSE)
- var/area/targetarea = get_area(targetturf)
- if(!targetarea || !targetturf)
- return FALSE
- if(isclosedturf(targetturf))
- return FALSE
- if(isspaceturf(targetturf) || isspacearea(targetarea) || islava(targetturf))
- return FALSE
- for(var/atom/movable/object AS in targetturf.contents) //don't move to tiles with dense objects on them
- if(object.density)
- return FALSE
- for(var/mob/nearbymob in range(GNOME_EXCLUSION_RANGE, src)) //make sure wherever we're going doesn't have observing mobs
- if(isanimal(nearbymob))
- continue
- if(isobserver(nearbymob))
- continue
- else if(!ignore_watching_players) //if we detect any mob that's not an observer or animal we return false
- return FALSE
- return TRUE
-
-///various flavor actions
-/obj/item/toy/plush/gnome/living/proc/do_flavor_actions(turf/targetturf)
- var/randomchoice = rand(1,8)
- switch(randomchoice)
- if(1)
- pick(playsound(src, 'sound/items/gnome.ogg', 35, TRUE),
- playsound(src, 'sound/misc/robotic scream.ogg', 35, TRUE),
- playsound(src, 'sound/voice/pred_laugh1.ogg', 35, TRUE),
- playsound(src, 'sound/voice/pred_laugh2.ogg', 35, TRUE),
- playsound(src, 'sound/voice/pred_laugh3.ogg', 35, TRUE),
- playsound(src, 'sound/voice/gnomelaugh.ogg', 35, TRUE),
- playsound(src, 'sound/weapons/guns/fire/tank_cannon1.ogg', 35, TRUE),
- playsound(src, 'sound/weapons/guns/fire/tank_cannon2.ogg', 35, TRUE),
- playsound(src, 'sound/voice/pred_helpme.ogg', 35, TRUE))
- if(2)
- for(var/atom/movable/object AS in targetturf.contents)
- if(isfood(object))
- qdel(object)
- playsound(src,'sound/items/eatfood.ogg', 25, 1)
- balloon_alert_to_viewers("Consumes [object]")
- break
- if(3)
- for(var/dirn in shuffle(GLOB.alldirs))
- var/turf/destturf = get_step(src,dirn)
- if(get_teleport_prereqs(destturf, TRUE))
- forceMove(destturf)
- break
- if(4)
- desc = initial(desc)
- new /obj/item/tool/kitchen/knife/butcher(targetturf)
- new /obj/effect/decal/cleanable/blood(targetturf)
- color = COLOR_DARK_RED
- desc += " It's covered in a dried reddish liquid, probably cranberry juice."
- if(5)
- pick(balloon_alert_to_viewers("stares"),
- (balloon_alert_to_viewers("adjusts its hat")),
- (balloon_alert_to_viewers("mimes a quick stabbing motion")),
- (balloon_alert_to_viewers("rolls its eyes")),
- (balloon_alert_to_viewers("mutters something")),
- (balloon_alert_to_viewers("darts its eyes back and forth")),
- (balloon_alert_to_viewers("stifles a laugh")),
- (balloon_alert_to_viewers("blinks")),
- (balloon_alert_to_viewers("squints")),
- (balloon_alert_to_viewers("glares")),
- (balloon_alert_to_viewers("[src]'s eyes gleam malevolently")))
- if(6)
- for(var/atom/movable/object AS in targetturf.contents)
- if(isinjector(object))
- qdel(object)
- playsound(src,'sound/items/hypospray.ogg', 25, 1)
- balloon_alert_to_viewers("Injects [object] into its arm")
- break
- if(7)
- flick("gnome_hop", src)
- if(8)
- teleport_retries += 10 //gnome is getting out of here
- teleport_routine()
-
-
-
-//handles gnome "escaping" a shuttle crush
-/obj/item/toy/plush/gnome/living/proc/shuttle_crush()
- SIGNAL_HANDLER
- new /obj/item/toy/plush/gnome(gnome_origin) //shuttle crush deletes src object, create new gnome at spawn point to give illusion of escape
-
-///handles gnome transportation using pipes
-/obj/item/toy/plush/gnome/living/proc/handle_pipe_mode(turf/targetturf)
- if(!length(targetturf.contents))
- return
- pipe_mode_chance -= length(possible_mobs) * 10 //for each mob nearby subtract 10 from the chance to interact with vents
- if(!prob(pipe_mode_chance))
- return
- if(pipe_mode)
- if(length(GLOB.atmospumps))
- var/obj/machinery/atmospherics/components/unary/vent_pump/targetpump = pick(GLOB.atmospumps)
- forceMove(targetpump.loc)
- playsound(src, get_sfx("alien_ventpass"), 35, TRUE)
- pipe_mode = FALSE
- else //if we're not in pipe mode check the ground for scrubbers/vents, if we find one enter it
- for(var/atom/movable/object AS in targetturf.contents)
- if(isatmosvent(object) || isatmosscrubber(object))
- forceMove(object)
- playsound(src, get_sfx("alien_ventpass"), 35, TRUE)
- pipe_mode = TRUE
-
-#undef HIGH_GNOME_MOVE_RANGE
-#undef STANDARD_GNOME_PIPE_CHANCE
-#undef GNOME_EXCLUSION_RANGE
-
/obj/item/toy/beach_ball/basketball
name = "basketball"
icon_state = "basketball"
diff --git a/code/game/objects/machinery/adv_med.dm b/code/game/objects/machinery/adv_med.dm
index d52fb3ce17c..967f8bb7ead 100644
--- a/code/game/objects/machinery/adv_med.dm
+++ b/code/game/objects/machinery/adv_med.dm
@@ -1,6 +1,4 @@
// Pretty much everything here is stolen from the dna scanner FYI
-
-
/obj/machinery/bodyscanner
name = "Body Scanner"
icon = 'icons/obj/machines/cryogenics.dmi'
@@ -51,7 +49,6 @@
return
go_out()
-
/obj/machinery/bodyscanner/verb/eject()
set src in oview(1)
set category = "Object"
@@ -107,7 +104,6 @@
return
go_out()
-
/obj/machinery/bodyscanner/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -149,15 +145,15 @@
for(var/obj/O in src)
O.forceMove(loc)
-/obj/machinery/bodyscanner/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/bodyscanner/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
go_out()
@@ -205,7 +201,6 @@
return TRUE
-
/obj/machinery/computer/body_scanconsole/interact(mob/user)
. = ..()
if(.)
@@ -222,7 +217,6 @@
popup.set_content(dat)
popup.open(FALSE)
-
/obj/machinery/bodyscanner/examine(mob/living/user)
. = ..()
if(!occupant)
@@ -240,7 +234,6 @@
. += span_deptradio("It contains [occupant]: Scan from [R.fields["last_scan_time"]].")
break
-
///Wrapper to guarantee connected bodyscanner references are properly nulled and avoid hard deletes.
/obj/machinery/computer/body_scanconsole/proc/set_connected(obj/machinery/bodyscanner/new_connected)
if(connected)
@@ -249,7 +242,6 @@
if(connected)
RegisterSignal(connected, COMSIG_QDELETING, PROC_REF(on_bodyscanner_deletion))
-
///Called by the deletion of the connected bodyscanner.
/obj/machinery/computer/body_scanconsole/proc/on_bodyscanner_deletion(obj/machinery/bodyscanner/source, force)
SIGNAL_HANDLER
diff --git a/code/game/objects/machinery/autodoc.dm b/code/game/objects/machinery/autodoc.dm
index 2fc09f012f6..cf84cdef5ac 100644
--- a/code/game/objects/machinery/autodoc.dm
+++ b/code/game/objects/machinery/autodoc.dm
@@ -42,7 +42,7 @@
var/locked = FALSE
var/mob/living/carbon/human/occupant = null
var/list/surgery_todo_list = list() //a list of surgeries to do.
-// var/surgery_t = 0 //Surgery timer in seconds.
+ ///var/surgery_t = 0 //Surgery timer in seconds.
var/surgery = FALSE
var/surgery_mod = 1 //What multiple to increase the surgery timer? This is used for any non-WO maps or events that are done.
var/filtering = 0
@@ -64,13 +64,11 @@
var/stored_metal = 1000 // starts with 500 metal loaded
var/stored_metal_max = 2000
-
/obj/machinery/autodoc/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_MOVABLE_SHUTTLE_CRUSH, PROC_REF(shuttle_crush))
update_icon()
-
/obj/machinery/autodoc/Destroy()
forceeject = TRUE
INVOKE_ASYNC(src, PROC_REF(do_eject))
@@ -79,7 +77,6 @@
connected = null
return ..()
-
/obj/machinery/autodoc/proc/shuttle_crush()
SIGNAL_HANDLER
if(occupant)
@@ -193,15 +190,15 @@
if(updating_health)
occupant.updatehealth()
-/obj/machinery/autodoc/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/autodoc/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
go_out()
@@ -228,7 +225,6 @@
A.organ_ref = organ_ref
return A
-
/proc/generate_autodoc_surgery_list(mob/living/carbon/human/M)
if(!ishuman(M))
return list()
@@ -445,7 +441,6 @@
E.heal_organ_damage(E.damage)
E.eye_surgery_stage = 0
-
if(LIMB_SURGERY)
switch(S.surgery_procedure)
if(ADSURGERY_INTERNAL)
@@ -654,7 +649,6 @@
surgery = 0
go_out(AUTODOC_NOTICE_SUCCESS)
-
/obj/machinery/autodoc/proc/open_incision(mob/living/carbon/human/target, datum/limb/L)
if(target && L && L.surgery_open_stage < 2)
sleep(INCISION_MANAGER_MAX_DURATION*surgery_mod)
@@ -804,7 +798,6 @@
return
surgery_op()
-
/obj/machinery/autodoc/MouseDrop_T(mob/M, mob/user)
. = ..()
move_inside_wrapper(M, user)
@@ -898,7 +891,6 @@
C.open()
user.start_pulling(M)
-
if(!M)
return
@@ -941,7 +933,6 @@
say("Automatic mode engaged, initialising procedures.")
addtimer(CALLBACK(src, PROC_REF(auto_start)), 5 SECONDS)
-
/////////////////////////////////////////////////////////////
//Auto Doc console that links up to it.
@@ -972,7 +963,6 @@
radio = new(src)
blood_pack = new(src)
-
/obj/machinery/computer/autodoc_console/Destroy()
QDEL_NULL(radio)
QDEL_NULL(blood_pack)
@@ -994,8 +984,6 @@
return TRUE
-
-
/obj/machinery/computer/autodoc_console/interact(mob/user)
. = ..()
if(.)
@@ -1184,7 +1172,6 @@
popup.set_content(dat)
popup.open()
-
/obj/machinery/computer/autodoc_console/Topic(href, href_list)
. = ..()
if(.)
@@ -1275,7 +1262,6 @@
if(!needed)
N.fields["autodoc_manual"] += create_autodoc_surgery(null,LIMB_SURGERY,ADSURGERY_NECRO,1)
-
if(href_list["shrapnel"])
for(var/i in connected.occupant.limbs)
var/datum/limb/L = i
@@ -1350,7 +1336,6 @@
updateUsrDialog()
-
/obj/machinery/autodoc/event
event = 1
diff --git a/code/game/objects/machinery/buttons.dm b/code/game/objects/machinery/buttons.dm
index 892b33cfe2a..b13274b5783 100644
--- a/code/game/objects/machinery/buttons.dm
+++ b/code/game/objects/machinery/buttons.dm
@@ -13,11 +13,9 @@
var/id = null
var/next_activate = 0
-
/obj/machinery/button/indestructible
resistance_flags = RESIST_ALL
-
/obj/machinery/button/Initialize(mapload, ndir = 0)
. = ..()
setDir(ndir)
@@ -25,18 +23,15 @@
pixel_y = ( (dir & 3) ? (dir == 1 ? -24 : 24) : 0 )
update_icon()
-
/obj/machinery/button/update_icon_state()
if(machine_stat & (NOPOWER|BROKEN))
icon_state = "[initial(icon_state)]-p"
else
icon_state = initial(icon_state)
-
/obj/machinery/button/attack_ai(mob/user)
return attack_hand(user)
-
/obj/machinery/button/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -57,7 +52,6 @@
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, update_icon)), 1.5 SECONDS)
-
/obj/machinery/button/proc/pulsed()
if(next_activate > world.time)
return FALSE
@@ -69,11 +63,9 @@
desc = "A door remote control switch."
var/specialfunctions = NONE
-
/obj/machinery/button/door/indestructible
resistance_flags = RESIST_ALL
-
/obj/machinery/button/door/pulsed()
. = ..()
if(!.)
@@ -91,7 +83,6 @@
continue
M.close()
-
/obj/machinery/button/door/open_only
name = "open button"
desc = "Opens whatever it is linked to. Does not close. Careful on what you release."
@@ -109,7 +100,6 @@
if(WEST)
pixel_x = 21
-
/obj/machinery/button/door/open_only/landing_zone
name = "lockdown override"
id = "landing_zone"
@@ -155,7 +145,6 @@
/obj/machinery/button/door/open_only/landing_zone/lz2
id = "landing_zone_2"
-
/obj/machinery/driver_button
name = "mass driver button"
icon = 'icons/obj/objects.dmi'
@@ -283,7 +272,7 @@
///The list of outfits we can equip on the humans we're spawning
var/outfit_list = list()
-/obj/machinery/button/valhalla/xeno_button/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/button/valhalla/xeno_button/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
var/list/job_outfits = list()
for(var/type in subtypesof(/datum/outfit/job))
if(istype(type, /datum/outfit))
@@ -301,7 +290,7 @@
QDEL_NULL(linked)
if(!get_turf(GLOB.valhalla_button_spawn_landmark[link]))
- to_chat(X, span_warning("An error occured, yell at the coders."))
+ to_chat(xeno_attacker, span_warning("An error occured, yell at the coders."))
CRASH("Valhalla button linked with an improper landmark: button ID: [link].")
linked = new /mob/living/carbon/human(get_turf(GLOB.valhalla_button_spawn_landmark[link]))
if(selected_outfit == "Naked" || !selected_outfit)
diff --git a/code/game/objects/machinery/camera/camera.dm b/code/game/objects/machinery/camera/camera.dm
index 9f86ae47d3d..dac8478a6af 100644
--- a/code/game/objects/machinery/camera/camera.dm
+++ b/code/game/objects/machinery/camera/camera.dm
@@ -9,20 +9,16 @@
layer = WALL_OBJ_LAYER
anchored = TRUE
light_power = 0
-
var/datum/cameranet/parent_cameranet
var/list/network = list("marinemainship")
var/c_tag = null
var/status = TRUE
var/area/myarea = null
-
var/view_range = 7
var/short_range = 2
-
var/in_use_lights = FALSE
var/internal_light = TRUE //Whether it can light up when an AI views it
-
/obj/machinery/camera/Initialize(mapload, newDir)
. = ..()
icon_state = "camera"
@@ -44,13 +40,11 @@
network -= i
network += lowertext(i)
-
if(SOM_CAMERA_NETWORK in network)
parent_cameranet = GLOB.som_cameranet
else
parent_cameranet = GLOB.cameranet
-
parent_cameranet.cameras += src
parent_cameranet.addCamera(src)
@@ -60,7 +54,6 @@
update_icon()
-
/obj/machinery/camera/Destroy()
if(can_use())
toggle_cam(null, 0) //kick anyone viewing out and remove from the camera chunks
@@ -71,7 +64,6 @@
return ..()
-
/obj/machinery/camera/examine(mob/user)
. = ..()
@@ -84,13 +76,11 @@
if(!status && powered())
. += span_info("It can reactivated with a screwdriver.")
-
/obj/machinery/camera/proc/setViewRange(num = 7)
view_range = num
parent_cameranet.updateVisibility(src, 0)
-
/obj/machinery/camera/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -116,7 +106,6 @@
to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...")
O << browse("
[itemname][info]", "window=[itemname]")
-
/obj/machinery/camera/screwdriver_act(mob/living/user, obj/item/I)
. = ..()
if(.)
@@ -127,7 +116,6 @@
update_icon()
return TRUE
-
/obj/machinery/camera/wirecutter_act(mob/living/user, obj/item/I)
if(!CHECK_BITFIELD(machine_stat, PANEL_OPEN))
return FALSE
@@ -137,7 +125,6 @@
update_icon()
return TRUE
-
/obj/machinery/camera/multitool_act(mob/living/user, obj/item/I)
if(!CHECK_BITFIELD(machine_stat, PANEL_OPEN))
return FALSE
@@ -146,7 +133,6 @@
to_chat(user, span_notice("You [(view_range == initial(view_range)) ? "restore" : "mess up"] the camera's focus."))
return TRUE
-
/obj/machinery/camera/welder_act(mob/living/user, obj/item/I)
if(!CHECK_BITFIELD(machine_stat, PANEL_OPEN))
return FALSE
@@ -160,20 +146,18 @@
user.visible_message(span_warning("[user] unwelds [src], leaving it as just a frame bolted to the wall."),
span_warning("You unweld [src], leaving it as just a frame bolted to the wall"))
deconstruct(TRUE)
-
return TRUE
-
-/obj/machinery/camera/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/camera/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(obj_integrity <= 0)
- to_chat(X, span_warning("The camera is already disabled."))
+ to_chat(xeno_attacker, span_warning("The camera is already disabled."))
return
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- X.visible_message(span_danger("[X] slashes \the [src]!"), \
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] slashes \the [src]!"), \
span_danger("We slash \the [src]!"))
playsound(loc, "alien_claw_metal", 25, 1)
@@ -191,7 +175,6 @@
deactivate()
visible_message(span_danger("\The [src]'s wires snap apart in a rain of sparks!"))
-
/obj/machinery/camera/proc/deactivate(mob/user)
status = FALSE
obj_integrity = 0
@@ -261,7 +244,6 @@
O.reset_perspective(null)
to_chat(O, "The screen bursts into static.")
-
/obj/machinery/camera/proc/can_use()
if(!status)
return FALSE
@@ -269,11 +251,9 @@
return FALSE
return TRUE
-
/obj/machinery/camera/proc/can_see()
return get_hear(view_range, get_turf(src))
-
//Return a working camera that can see a given mob
//or null if none
/proc/seen_by_camera(mob/M)
@@ -281,13 +261,11 @@
if(C.can_use()) // check if camera disabled
return C
-
/proc/near_range_camera(mob/M)
for(var/obj/machinery/camera/C in range(4, M))
if(C.can_use()) // check if camera disabled
return C
-
/obj/machinery/camera/proc/Togglelight(on = FALSE)
for(var/mob/living/silicon/ai/A in GLOB.ai_list)
for(var/obj/machinery/camera/cam in A.lit_cameras)
@@ -298,12 +276,10 @@
else
set_light(initial(light_range), initial(light_power))
-
/obj/machinery/camera/get_remote_view_fullscreens(mob/user)
if(view_range == short_range) //unfocused
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 2)
-
/obj/machinery/camera/update_remote_sight(mob/living/user)
user.see_invisible = SEE_INVISIBLE_LIVING //can't see ghosts through cameras
user.sight = NONE
@@ -339,7 +315,6 @@
/obj/machinery/camera/autoname/mainship/dropship_one
network = list("marinemainship", "dropship1")
-
/obj/machinery/camera/autoname/mainship/dropship_two
network = list("marinemainship", "dropship2")
@@ -382,7 +357,6 @@
var/area/A = get_area(src)
c_tag = "[beacon_name] ([A.name])"
-
//used by the landing camera dropship equipment. Do not place them right under where the dropship lands.
//Should place them near each corner of your LZs.
/obj/machinery/camera/autoname/lz_camera
@@ -398,11 +372,9 @@
/obj/machinery/camera/autoname/lz_camera/emp_act(severity)
return
-
/obj/machinery/camera/autoname/lz_camera/ex_act()
return
-
/obj/machinery/camera/autoname/lz_camera/update_icon()
return
diff --git a/code/game/objects/machinery/computer/HolodeckControl.dm b/code/game/objects/machinery/computer/HolodeckControl.dm
index 0e1cc11d0e4..de43e556412 100644
--- a/code/game/objects/machinery/computer/HolodeckControl.dm
+++ b/code/game/objects/machinery/computer/HolodeckControl.dm
@@ -1,4 +1,3 @@
-
/obj/structure/table/holotable
name = "table"
desc = "A square piece of metal standing on four metal legs. It can not move."
@@ -11,7 +10,6 @@
/obj/structure/table/holotable/attack_hand(mob/living/user)
return TRUE
-
/obj/structure/table/holotable/attackby(obj/item/I, mob/user, params)
if(iswrench(I))
to_chat(user, "It's a holotable! There are no bolts!")
@@ -51,9 +49,6 @@
anchored = TRUE
flags_atom = ON_BORDER
-
-
-
//BASKETBALL OBJECTS
/obj/item/toy/beach_ball/holoball
@@ -63,10 +58,10 @@
desc = "Here's your chance, do your dance at the Space Jam."
w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets
-/obj/item/toy/beach_ball/holoball/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/item/toy/beach_ball/holoball/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(!CONFIG_GET(flag/fun_allowed))
return FALSE
- attack_hand(X)
+ attack_hand(xeno_attacker)
/obj/structure/holohoop
name = "basketball hoop"
diff --git a/code/game/objects/machinery/computer/computer.dm b/code/game/objects/machinery/computer/computer.dm
index 831a3de942b..f31a12d974e 100644
--- a/code/game/objects/machinery/computer/computer.dm
+++ b/code/game/objects/machinery/computer/computer.dm
@@ -8,12 +8,8 @@
layer = BELOW_OBJ_LAYER
idle_power_usage = 300
active_power_usage = 300
- var/processing = 0
- ///How many times the computer can be smashed by a Xeno before it is disabled.
- var/durability = 2
resistance_flags = UNACIDABLE
- ///they don't provide good cover
- coverage = 15
+ coverage = 15 //they don't provide good cover
light_range = 1
light_power = 0.5
light_color = LIGHT_COLOR_BLUE
@@ -21,6 +17,9 @@
var/screen_overlay
///The destroyed computer sprite. Defaults based on the icon_state if not specified
var/broken_icon
+ var/processing = 0
+ ///How many times the computer can be smashed by a Xeno before it is disabled.
+ var/durability = 2
/obj/machinery/computer/Initialize(mapload)
. = ..()
@@ -57,7 +56,6 @@
if(prob(20/severity)) set_broken()
..()
-
/obj/machinery/computer/ex_act(severity)
if(CHECK_BITFIELD(resistance_flags, INDESTRUCTIBLE))
return FALSE
@@ -192,7 +190,6 @@
else
return attack_hand(user)
-
/obj/machinery/computer/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -201,25 +198,25 @@
pick(playsound(src, 'sound/machines/computer_typing1.ogg', 5, 1), playsound(src, 'sound/machines/computer_typing2.ogg', 5, 1), playsound(src, 'sound/machines/computer_typing3.ogg', 5, 1))
///So Xenos can smash computers out of the way without actually breaking them
-/obj/machinery/computer/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/computer/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(resistance_flags & INDESTRUCTIBLE)
- to_chat(X, span_xenowarning("We're unable to damage this!"))
+ to_chat(xeno_attacker, span_xenowarning("We're unable to damage this!"))
return
if(machine_stat & (BROKEN|DISABLED)) //If we're already broken or disabled, don't bother
- to_chat(X, span_xenowarning("This peculiar thing is already broken!"))
+ to_chat(xeno_attacker, span_xenowarning("This peculiar thing is already broken!"))
return
if(durability <= 0)
set_disabled()
- to_chat(X, span_xenowarning("We smash the annoying device, disabling it!"))
+ to_chat(xeno_attacker, span_xenowarning("We smash the annoying device, disabling it!"))
else
durability--
- to_chat(X, span_xenowarning("We smash the annoying device!"))
+ to_chat(xeno_attacker, span_xenowarning("We smash the annoying device!"))
- X.do_attack_animation(src, ATTACK_EFFECT_DISARM2) //SFX
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_DISARM2) //SFX
playsound(loc, pick('sound/effects/bang.ogg','sound/effects/metal_crash.ogg','sound/effects/meteorimpact.ogg'), 25, 1) //SFX
Shake(duration = 0.5 SECONDS)
diff --git a/code/game/objects/machinery/cryopod.dm b/code/game/objects/machinery/cryopod.dm
index ad6153f93d3..10cb28b313c 100644
--- a/code/game/objects/machinery/cryopod.dm
+++ b/code/game/objects/machinery/cryopod.dm
@@ -1,4 +1,3 @@
-
/obj/machinery/computer/cryopod
name = "hypersleep bay console"
desc = "A large console controlling the ship's hypersleep bay. Mainly used for recovery of items from long-term hypersleeping crew."
@@ -33,7 +32,6 @@
popup.set_content(dat)
popup.open()
-
/obj/machinery/computer/cryopod/Topic(href, href_list)
. =..()
if(.)
@@ -57,7 +55,6 @@
updateUsrDialog()
-
/obj/machinery/computer/cryopod/proc/dispense_item(obj/item/I, mob/user, message = TRUE)
if(!istype(I) || QDELETED(I))
GLOB.cryoed_item_list -= I
@@ -313,15 +310,15 @@
occupant = null
update_icon()
-/obj/machinery/cryopod/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/cryopod/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
go_out()
diff --git a/code/game/objects/machinery/doors/airlock.dm b/code/game/objects/machinery/doors/airlock.dm
index 9461275c550..7c18b6dfac2 100644
--- a/code/game/objects/machinery/doors/airlock.dm
+++ b/code/game/objects/machinery/doors/airlock.dm
@@ -9,7 +9,6 @@
active_power_usage = 360
flags_atom = HTML_USE_INITAL_ICON_1
obj_flags = CAN_BE_HIT
-
var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in.
var/hackProof = 0 // if 1, this door can't be hacked by the AI
var/secondsMainPowerLost = 0 //The number of seconds until power is restored.
@@ -89,36 +88,29 @@
return TRUE
return FALSE
-
/obj/machinery/door/airlock/proc/canAIControl(mob/user)
if(z != user.z)
return
return ((aiControlDisabled != 1) && !isAllPowerCut())
-
/obj/machinery/door/airlock/proc/canAIHack()
return ((aiControlDisabled==1) && (!hackProof) && (!isAllPowerCut()));
-
/obj/machinery/door/airlock/hasPower()
return ((!secondsMainPowerLost || !secondsBackupPowerLost) && !(machine_stat & NOPOWER))
-
/obj/machinery/door/airlock/requiresID()
return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner)
-
/obj/machinery/door/airlock/proc/isAllPowerCut()
if((wires.is_cut(WIRE_POWER1) || wires.is_cut(WIRE_POWER2)) && (wires.is_cut(WIRE_BACKUP1) || wires.is_cut(WIRE_BACKUP2)))
return TRUE
-
/obj/machinery/door/airlock/proc/regainMainPower()
if(secondsMainPowerLost > 0)
secondsMainPowerLost = 0
update_icon()
-
/obj/machinery/door/airlock/proc/handlePowerRestore()
var/cont = TRUE
while(cont)
@@ -140,7 +132,6 @@
updateUsrDialog()
update_icon()
-
/obj/machinery/door/airlock/proc/loseMainPower()
if(secondsMainPowerLost <= 0)
secondsMainPowerLost = 60
@@ -151,7 +142,6 @@
INVOKE_ASYNC(src, PROC_REF(handlePowerRestore))
update_icon()
-
/obj/machinery/door/airlock/proc/loseBackupPower()
if(secondsBackupPowerLost < 60)
secondsBackupPowerLost = 60
@@ -160,7 +150,6 @@
INVOKE_ASYNC(src, PROC_REF(handlePowerRestore))
update_icon()
-
/obj/machinery/door/airlock/proc/regainBackupPower()
if(secondsBackupPowerLost > 0)
secondsBackupPowerLost = 0
@@ -182,7 +171,6 @@
else
return 0
-
/obj/machinery/door/airlock/update_icon()
if(overlays) overlays.Cut()
if(density)
@@ -201,7 +189,6 @@
else
icon_state = "door_open"
-
/obj/machinery/door/airlock/do_animate(animation)
switch(animation)
if("opening")
@@ -224,49 +211,47 @@
if(density)
flick("door_deny", src)
-
-
//Prying open doors
-/obj/machinery/door/airlock/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/door/airlock/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- var/turf/cur_loc = X.loc
+ var/turf/cur_loc = xeno_attacker.loc
if(isElectrified())
- if(shock(X, 70))
+ if(shock(xeno_attacker, 70))
return
if(locked)
- to_chat(X, span_warning("\The [src] is bolted down tight."))
+ to_chat(xeno_attacker, span_warning("\The [src] is bolted down tight."))
return FALSE
if(welded)
- to_chat(X, span_warning("\The [src] is welded shut."))
+ to_chat(xeno_attacker, span_warning("\The [src] is welded shut."))
return FALSE
if(!istype(cur_loc))
return FALSE //Some basic logic here
if(!density)
- to_chat(X, span_warning("\The [src] is already open!"))
+ to_chat(xeno_attacker, span_warning("\The [src] is already open!"))
return FALSE
- if(X.do_actions)
+ if(xeno_attacker.do_actions)
return FALSE
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
if(hasPower())
- X.visible_message(span_warning("\The [X] digs into \the [src] and begins to pry it open."), \
+ xeno_attacker.visible_message(span_warning("\The [xeno_attacker] digs into \the [src] and begins to pry it open."), \
span_warning("We dig into \the [src] and begin to pry it open."), null, 5)
- if(!do_after(X, 4 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE) && !X.lying_angle)
+ if(!do_after(xeno_attacker, 4 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE) && !xeno_attacker.lying_angle)
return FALSE
if(locked)
- to_chat(X, span_warning("\The [src] is bolted down tight."))
+ to_chat(xeno_attacker, span_warning("\The [src] is bolted down tight."))
return FALSE
if(welded)
- to_chat(X, span_warning("\The [src] is welded shut."))
+ to_chat(xeno_attacker, span_warning("\The [src] is welded shut."))
return FALSE
if(density) //Make sure it's still closed
open(TRUE)
- X.visible_message(span_danger("\The [X] pries \the [src] open."), \
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] pries \the [src] open."), \
span_danger("We pry \the [src] open."), null, 5)
/obj/machinery/door/airlock/attack_larva(mob/living/carbon/xenomorph/larva/M)
@@ -281,7 +266,6 @@
span_warning("You squeeze and scuttle underneath \the [src]."), null, 5)
M.forceMove(loc)
-
/obj/machinery/door/airlock/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -552,24 +536,19 @@
return TRUE
return FALSE
-
/obj/machinery/door/airlock/Destroy()
QUEUE_SMOOTH_NEIGHBORS(loc)
QDEL_NULL(wires)
return ..()
-
/obj/machinery/door/airlock/proc/prison_open()
unlock()
open()
lock()
-
-
/obj/machinery/door/airlock/proc/update_nearby_icons()
QUEUE_SMOOTH_NEIGHBORS(src)
-
/obj/machinery/door/airlock/proc/set_electrified(seconds, mob/user)
secondsElectrified = seconds
if(secondsElectrified > MACHINE_NOT_ELECTRIFIED)
@@ -587,7 +566,6 @@
LAZYADD(shockedby, "\[[time_stamp()]\] [key_name(user)] - ([uppertext(message)])")
log_combat(user, src, message)
-
/obj/machinery/door/airlock/proc/electrified_loop()
while(secondsElectrified > MACHINE_NOT_ELECTRIFIED)
sleep(1 SECONDS)
@@ -603,7 +581,6 @@
set_electrified(MACHINE_ELECTRIFIED_PERMANENT)
updateUsrDialog()
-
/obj/machinery/door/airlock/proc/user_toggle_open(mob/user)
if(!canAIControl(user))
return
@@ -621,7 +598,6 @@
else
open()
-
/obj/machinery/door/airlock/proc/shock_restore(mob/user)
if(!canAIControl(user))
return
@@ -633,7 +609,6 @@
if(isElectrified())
set_electrified(MACHINE_NOT_ELECTRIFIED, user)
-
/obj/machinery/door/airlock/proc/shock_temp(mob/user)
if(!canAIControl(user))
return
@@ -644,7 +619,6 @@
set_electrified(MACHINE_DEFAULT_ELECTRIFY_TIME, user)
-
/obj/machinery/door/airlock/proc/shock_perm(mob/user)
if(!canAIControl(user))
return
@@ -655,7 +629,6 @@
set_electrified(MACHINE_ELECTRIFIED_PERMANENT, user)
-
/obj/machinery/door/airlock/proc/emergency_on(mob/user)
if(!canAIControl(user))
return
@@ -667,8 +640,6 @@
emergency = TRUE
update_icon()
-
-
/obj/machinery/door/airlock/proc/emergency_off(mob/user)
if(!canAIControl(user))
return
@@ -680,7 +651,6 @@
emergency = FALSE
update_icon()
-
/obj/machinery/door/airlock/proc/bolt_raise(mob/user)
if(!canAIControl(user))
return
@@ -699,8 +669,6 @@
unbolt()
-
-
/obj/machinery/door/airlock/proc/bolt_drop(mob/user)
if(!canAIControl(user))
return
@@ -711,7 +679,6 @@
bolt()
-
/obj/machinery/door/airlock/proc/bolt()
if(locked)
return
@@ -721,7 +688,6 @@
audible_message(span_notice("You hear a click from the bottom of the door."), null, 1)
update_icon()
-
/obj/machinery/door/airlock/proc/unbolt()
if(!locked)
return
@@ -731,6 +697,5 @@
audible_message(span_notice("You hear a click from the bottom of the door."), null, 1)
update_icon()
-
/obj/machinery/door/airlock/proc/weld_checks()
return !operating && density
diff --git a/code/game/objects/machinery/doors/firedoor.dm b/code/game/objects/machinery/doors/firedoor.dm
index 8dd7ddca4d5..3c30d10bdd8 100644
--- a/code/game/objects/machinery/doors/firedoor.dm
+++ b/code/game/objects/machinery/doors/firedoor.dm
@@ -6,7 +6,6 @@
#define FIREDOOR_ALERT_HOT 1
#define FIREDOOR_ALERT_COLD 2
-
/obj/machinery/door/firedoor
name = "\improper Emergency Shutter"
desc = "Emergency air-tight shutter, capable of sealing off breached areas."
@@ -24,7 +23,6 @@
use_power = TRUE
idle_power_usage = 5
active_power_usage = 360
-
var/blocked = FALSE
var/lockdown = FALSE // When the door has detected a problem, it locks.
var/pdiff_alert = FALSE
@@ -34,7 +32,6 @@
var/list/areas_added
var/list/users_to_open = new
var/next_process_time = 0
-
var/list/tile_info[4]
var/list/dir_alerts[4] // 4 dirs, bitflags
@@ -67,7 +64,6 @@
LAZYREMOVE(A.all_fire_doors, src)
return ..()
-
/obj/machinery/door/firedoor/examine(mob/user) // todo remove the shitty o vars
. = ..()
if(get_dist(src, user) > 1 && !isAI(user))
@@ -117,32 +113,32 @@
return ..()
return FALSE
-/obj/machinery/door/firedoor/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/door/firedoor/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- var/turf/cur_loc = X.loc
+ var/turf/cur_loc = xeno_attacker.loc
if(blocked)
- to_chat(X, span_warning("\The [src] is welded shut."))
+ to_chat(xeno_attacker, span_warning("\The [src] is welded shut."))
return FALSE
if(!istype(cur_loc))
return FALSE //Some basic logic here
if(!density)
- to_chat(X, span_warning("\The [src] is already open!"))
+ to_chat(xeno_attacker, span_warning("\The [src] is already open!"))
return FALSE
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
- X.visible_message(span_warning("\The [X] digs into \the [src] and begins to pry it open."), \
+ xeno_attacker.visible_message(span_warning("\The [xeno_attacker] digs into \the [src] and begins to pry it open."), \
span_warning("We dig into \the [src] and begin to pry it open."), null, 5)
- if(do_after(X, 30, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
+ if(do_after(xeno_attacker, 30, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
if(blocked)
- to_chat(X, span_warning("\The [src] is welded shut."))
+ to_chat(xeno_attacker, span_warning("\The [src] is welded shut."))
return FALSE
if(density) //Make sure it's still closed
spawn(0)
open(1)
- X.visible_message(span_danger("\The [X] pries \the [src] open."), \
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] pries \the [src] open."), \
span_danger("We pry \the [src] open."), null, 5)
/obj/machinery/door/firedoor/attack_hand(mob/living/user)
@@ -250,11 +246,9 @@
else
close()
-
/obj/machinery/door/firedoor/try_to_activate_door(mob/user)
return
-
/obj/machinery/door/firedoor/proc/latetoggle()
if(operating || !nextstate)
return
@@ -287,7 +281,6 @@
flick("door_closing", src)
playsound(loc, 'sound/machines/emergency_shutter.ogg', 25)
-
/obj/machinery/door/firedoor/update_icon()
overlays.Cut()
if(density)
@@ -307,7 +300,6 @@
if(blocked)
overlays += "welded_open"
-
/obj/machinery/door/firedoor/mainship
name = "\improper Emergency Shutter"
desc = "Emergency air-tight shutter, capable of sealing off breached areas."
@@ -315,12 +307,10 @@
icon_state = "door_open"
openspeed = 4
-
/obj/machinery/door/firedoor/multi_tile
icon = 'icons/obj/doors/DoorHazard2x1.dmi'
width = 2
-
/obj/machinery/door/firedoor/border_only
icon = 'icons/obj/doors/edge_Doorfire.dmi'
flags_atom = ON_BORDER
diff --git a/code/game/objects/machinery/miner.dm b/code/game/objects/machinery/miner.dm
index 46a99c2fe00..5bd3fc8b552 100644
--- a/code/game/objects/machinery/miner.dm
+++ b/code/game/objects/machinery/miner.dm
@@ -291,7 +291,7 @@
stop_processing()
SSminimaps.remove_marker(src)
var/marker_icon = "miner_[mineral_value >= PLATINUM_CRATE_SELL_AMOUNT ? "platinum" : "phoron"]_off"
- SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, marker_icon)) //RUTGMC edit - icon change
+ SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, marker_icon))
return
if(add_tick >= required_ticks)
if(miner_upgrade_type == MINER_AUTOMATED)
@@ -316,26 +316,26 @@
else
add_tick += 1
-/obj/machinery/miner/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL) //Incorporeal xenos cannot attack physically.
+/obj/machinery/miner/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL) //Incorporeal xenos cannot attack physically.
return
- if(miner_upgrade_type == MINER_RESISTANT && !(X.mob_size == MOB_SIZE_BIG || X.xeno_caste.caste_flags & CASTE_IS_STRONG))
- X.visible_message(span_notice("[X]'s claws bounce off of [src]'s reinforced plating."),
+ if(miner_upgrade_type == MINER_RESISTANT && !(xeno_attacker.mob_size == MOB_SIZE_BIG || xeno_attacker.xeno_caste.caste_flags & CASTE_IS_STRONG))
+ xeno_attacker.visible_message(span_notice("[xeno_attacker]'s claws bounce off of [src]'s reinforced plating."),
span_notice("We can't slash through [src]'s reinforced plating!"))
return
while(miner_status != MINER_DESTROYED)
- if(X.do_actions)
- return balloon_alert(X, "busy")
- if(!do_after(X, 1.5 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
+ if(xeno_attacker.do_actions)
+ return balloon_alert(xeno_attacker, "busy")
+ if(!do_after(xeno_attacker, 1.5 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
return
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- X.visible_message(span_danger("[X] slashes \the [src]!"), \
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] slashes \the [src]!"), \
span_danger("We slash \the [src]!"), null, 5)
playsound(loc, "alien_claw_metal", 25, TRUE)
miner_integrity -= 25
set_miner_status()
- if(miner_status == MINER_DESTROYED && X.client)
- var/datum/personal_statistics/personal_statistics = GLOB.personal_statistics_list[X.ckey]
+ if(miner_status == MINER_DESTROYED && xeno_attacker.client)
+ var/datum/personal_statistics/personal_statistics = GLOB.personal_statistics_list[xeno_attacker.ckey]
personal_statistics.miner_sabotages_performed++
/obj/machinery/miner/proc/set_miner_status()
diff --git a/code/game/objects/machinery/nuclearbomb.dm b/code/game/objects/machinery/nuclearbomb.dm
index 2a49e72189a..682e70d0be0 100644
--- a/code/game/objects/machinery/nuclearbomb.dm
+++ b/code/game/objects/machinery/nuclearbomb.dm
@@ -119,23 +119,23 @@
if(r_auth && g_auth && b_auth)
has_auth = TRUE
-/obj/machinery/nuclearbomb/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/nuclearbomb/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(!timer_enabled)
- to_chat(X, span_warning("\The [src] is soundly asleep. We better not disturb it."))
+ to_chat(xeno_attacker, span_warning("\The [src] is soundly asleep. We better not disturb it."))
return
- X.visible_message("[X] begins to slash delicately at the nuke",
+ xeno_attacker.visible_message("[xeno_attacker] begins to slash delicately at the nuke",
"You start slashing delicately at the nuke.")
- if(!do_after(X, 5 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
+ if(!do_after(xeno_attacker, 5 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
return
- X.visible_message("[X] disabled the nuke",
+ xeno_attacker.visible_message("[xeno_attacker] disabled the nuke",
"You disabled the nuke.")
disable()
- SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NUKE_DIFFUSED, src, X)
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NUKE_DIFFUSED, src, xeno_attacker)
/obj/machinery/nuclearbomb/can_interact(mob/user)
. = ..()
diff --git a/code/game/objects/machinery/portable_reagent_tank.dm b/code/game/objects/machinery/portable_reagent_tank.dm
index 68a1a1c60f8..34a417e7dc7 100644
--- a/code/game/objects/machinery/portable_reagent_tank.dm
+++ b/code/game/objects/machinery/portable_reagent_tank.dm
@@ -66,9 +66,9 @@
var/obj/item/storage/internal_bag = get_internal_item()
internal_bag?.open(user)
-/obj/machinery/deployable/reagent_tank/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
- if(X.a_intent != INTENT_HARM)
- return drink_from_nozzle(X, TRUE)
+/obj/machinery/deployable/reagent_tank/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+ if(xeno_attacker.a_intent != INTENT_HARM)
+ return drink_from_nozzle(xeno_attacker, TRUE)
return ..()
///Process for drinking reagents directly from the dispenser's nozzle
diff --git a/code/game/objects/machinery/robotic_cradle.dm b/code/game/objects/machinery/robotic_cradle.dm
index 69bf7b1f3d2..6d3c5ef32e5 100644
--- a/code/game/objects/machinery/robotic_cradle.dm
+++ b/code/game/objects/machinery/robotic_cradle.dm
@@ -85,15 +85,15 @@
repairing = FALSE
go_out(CRADLE_NOTICE_SUCCESS)
-/obj/machinery/robotic_cradle/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/robotic_cradle/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
go_out()
diff --git a/code/game/objects/machinery/sleeper.dm b/code/game/objects/machinery/sleeper.dm
index 5d05e3fe3d0..fe3a9ba838b 100644
--- a/code/game/objects/machinery/sleeper.dm
+++ b/code/game/objects/machinery/sleeper.dm
@@ -1,7 +1,3 @@
-/////////////////////////////////////////
-// SLEEPER CONSOLE
-/////////////////////////////////////////
-
/obj/machinery/computer/sleep_console
name = "Sleeper Console"
icon = 'icons/obj/machines/cryogenics.dmi'
@@ -150,7 +146,6 @@
idle_power_usage = 15
active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors.
-
/obj/machinery/sleeper/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_MOVABLE_SHUTTLE_CRUSH, PROC_REF(shuttle_crush))
@@ -249,8 +244,6 @@
if(filtering)
for(var/datum/reagent/x in occupant.reagents.reagent_list)
occupant.reagents.remove_reagent(x.type, 10)
-
-
updateUsrDialog()
/obj/machinery/sleeper/update_icon()
@@ -290,7 +283,6 @@
to_chat(user, span_notice("The sleeper is already occupied!"))
return
-
if(!istype(I, /obj/item/grab))
return
@@ -364,7 +356,6 @@
connected.stop_processing()
update_icon()
-
/obj/machinery/sleeper/proc/inject_chemical(mob/living/user as mob, chemical, amount)
if(occupant?.reagents)
if(occupant.reagents.get_reagent_amount(chemical) + amount <= 20)
@@ -373,7 +364,6 @@
return
to_chat(user, span_warning("There's no occupant in the sleeper or the subject has too many chemicals!"))
-
/obj/machinery/sleeper/proc/check(mob/living/user)
if(occupant)
to_chat(user, span_boldnotice("Occupant ([occupant]) Statistics:"))
@@ -398,15 +388,15 @@
else
to_chat(user, span_notice("There is no one inside!"))
-/obj/machinery/sleeper/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/sleeper/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
go_out()
@@ -418,7 +408,6 @@
if(usr.stat != CONSCIOUS)
return
-
go_out()
/obj/machinery/sleeper/relaymove(mob/user)
diff --git a/code/game/objects/machinery/vending/vending.dm b/code/game/objects/machinery/vending/vending.dm
index 3d15115e252..5d530537e72 100644
--- a/code/game/objects/machinery/vending/vending.dm
+++ b/code/game/objects/machinery/vending/vending.dm
@@ -34,7 +34,6 @@
var/tab
/datum/vending_product/New(name, atom/typepath, product_amount, product_price, product_display_color, category = CAT_NORMAL, tab)
-
product_path = typepath
amount = product_amount
price = product_price
@@ -63,7 +62,6 @@
coverage = 80
soft_armor = list(MELEE = 0, BULLET = 30, LASER = 30, ENERGY = 30, BOMB = 0, BIO = 100, FIRE = 0, ACID = 0)
layer = BELOW_OBJ_LAYER
-
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 100
@@ -73,7 +71,6 @@
light_range = 1
light_power = 0.5
light_color = LIGHT_COLOR_BLUE
-
///Whether this vendor is active or not.
var/active = TRUE
///If the vendor is ready to vend.
@@ -86,7 +83,6 @@
var/isshared = FALSE
///The sound the vendor makes when it vends something
var/vending_sound
-
/*These are lists that are made null after they're used, their use is solely to fill the inventory of the vendor on Init.
They use the following pattern in case if it doenst pertain to a tab:
list(
@@ -117,21 +113,17 @@
var/list/premium = list()
/// Prices for each item, list(/type/path = price), items not in the list don't have a price.
var/list/prices = list()
-
/// String of slogans separated by semicolons, optional
var/product_slogans = ""
///String of small ad messages in the vending screen - random chance
var/product_ads = ""
-
//These are where the vendor holds their item info with /datum/vending_product
-
///list of /datum/vending_product's that are always available on the vendor
var/list/product_records = list()
///list of /datum/vending_product's that are available when vendor is hacked.
var/list/hidden_records = list()
///list of /datum/vending_product's that are available on the vendor when a coin is used.
var/list/coin_records = list()
-
var/list/slogan_list = list()
/// small ad messages in the vending screen - random chance of popping up whenever you open it
var/list/small_ads = list()
@@ -163,16 +155,12 @@
var/tipped_level = 0
///Stops the machine from being hacked to shoot inventory or allow all access
var/hacking_safety = FALSE
-
var/scan_id = TRUE
-
/// How much damage we can take before tipping over.
var/knockdown_threshold = 100
-
///Faction of the vendor. Can be null
var/faction
-
/obj/machinery/vending/Initialize(mapload, ...)
. = ..()
wires = new /datum/wires/vending(src)
@@ -207,7 +195,6 @@
update_icon()
return INITIALIZE_HINT_LATELOAD
-
/obj/machinery/vending/LateInitialize()
. = ..()
power_change()
@@ -285,38 +272,38 @@
for(var/season in seasonal_items)
products[seasonal_items[season]] += SSpersistence.season_items[season]
-/obj/machinery/vending/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/vending/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- if(X.a_intent == INTENT_HARM)
- X.do_attack_animation(src, ATTACK_EFFECT_SMASH)
- if(prob(X.xeno_caste.melee_damage))
+ if(xeno_attacker.a_intent == INTENT_HARM)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_SMASH)
+ if(prob(xeno_attacker.xeno_caste.melee_damage))
playsound(loc, 'sound/effects/metalhit.ogg', 25, 1)
- X.visible_message(span_danger("\The [X] smashes \the [src] beyond recognition!"), \
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] smashes \the [src] beyond recognition!"), \
span_danger("We enter a frenzy and smash \the [src] apart!"), null, 5)
malfunction()
return TRUE
else
- X.visible_message(span_danger("[X] slashes \the [src]!"), \
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] slashes \the [src]!"), \
span_danger("We slash \the [src]!"), null, 5)
playsound(loc, 'sound/effects/metalhit.ogg', 25, 1)
return TRUE
if(tipped_level)
- to_chat(X, span_warning("There's no reason to bother with that old piece of trash."))
+ to_chat(xeno_attacker, span_warning("There's no reason to bother with that old piece of trash."))
return FALSE
- X.visible_message(span_warning("\The [X] begins to lean against \the [src]."), \
+ xeno_attacker.visible_message(span_warning("\The [xeno_attacker] begins to lean against \the [src]."), \
span_warning("You begin to lean against \the [src]."), null, 5)
tipped_level = 1
var/shove_time = 1 SECONDS
- if(X.mob_size == MOB_SIZE_BIG)
+ if(xeno_attacker.mob_size == MOB_SIZE_BIG)
shove_time = 5 SECONDS
- if(istype(X,/mob/living/carbon/xenomorph/crusher))
+ if(istype(xeno_attacker,/mob/living/carbon/xenomorph/crusher))
shove_time = 1.5 SECONDS
- if(do_after(X, shove_time, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE))
- X.visible_message(span_danger("\The [X] knocks \the [src] down!"), \
+ if(do_after(xeno_attacker, shove_time, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE))
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] knocks \the [src] down!"), \
span_danger("You knock \the [src] down!"), null, 5)
tip_over()
else
@@ -625,7 +612,6 @@
else
return new R.product_path(get_turf(src))
-
/obj/machinery/vending/MouseDrop_T(atom/movable/A, mob/user)
. = ..()
if(machine_stat & (BROKEN|NOPOWER))
@@ -799,7 +785,6 @@
flick(icon_vend, src)
playsound(loc, 'sound/machines/hydraulics_1.ogg', 25, 0, 1)
-
/obj/machinery/vending/process()
if(machine_stat & (BROKEN|NOPOWER))
return
@@ -890,8 +875,7 @@
src.visible_message(span_warning("[src] launches [throw_item.name] at [target]!"))
. = TRUE
-
-/obj/machinery/vending/take_damage(damage_amount, damage_type = BRUTE, damage_flag = "", effects = TRUE, attack_dir, armour_penetration = 0)
+/obj/machinery/vending/take_damage(damage_amount, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, attack_dir, armour_penetration = 0)
if(density && damage_amount >= knockdown_threshold)
tip_over()
return ..()
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index a28b780b4b3..60eb42ef85b 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -1,4 +1,4 @@
-/obj/proc/take_damage(damage_amount, damage_type = BRUTE, damage_flag = "", effects = TRUE, attack_dir, armour_penetration = 0)
+/obj/proc/take_damage(damage_amount, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, attack_dir, armour_penetration = 0)
if(QDELETED(src))
CRASH("[src] taking damage after deletion")
if(!damage_amount)
@@ -53,7 +53,6 @@
if(BURN)
playsound(loc, 'sound/items/welder.ogg', 50, 1)
-
/obj/ex_act(severity, direction)
if(CHECK_BITFIELD(resistance_flags, INDESTRUCTIBLE))
return
@@ -62,7 +61,6 @@
return
take_damage(severity, BRUTE, BOMB, FALSE, direction)
-
/obj/hitby(atom/movable/AM, speed = 5)
. = ..()
if(!.)
@@ -78,7 +76,6 @@
tforce = I.throwforce
take_damage(tforce, BRUTE, MELEE, 1, get_dir(src, AM))
-
/obj/bullet_act(obj/projectile/P)
if(istype(P.ammo, /datum/ammo/xeno) && !(resistance_flags & XENO_DAMAGEABLE))
return
@@ -89,13 +86,11 @@
visible_message(span_warning("\the [src] is damaged by \the [P]!"), visible_message_flags = COMBAT_MESSAGE)
take_damage(P.damage, P.ammo.damage_type, P.ammo.armor_type, 0, REVERSE_DIR(P.dir), P.ammo.penetration)
-
-/obj/proc/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0) //used by attack_alien, attack_animal, and attack_slime
+/obj/proc/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0) //used by attack_alien, attack_animal, and attack_slime
user.do_attack_animation(src, ATTACK_EFFECT_SMASH)
user.changeNext_move(CLICK_CD_MELEE)
return take_damage(damage_amount, damage_type, damage_flag, effects, get_dir(src, user), armor_penetration)
-
/obj/attack_animal(mob/living/simple_animal/M)
if(!M.melee_damage && !M.obj_damage)
M.emote("custom", message = "[M.friendly] [src].")
@@ -103,48 +98,44 @@
else
var/play_soundeffect = 1
if(M.obj_damage)
- . = attack_generic(M, M.obj_damage, M.melee_damage_type, "melee", play_soundeffect, M.armour_penetration)
+ . = attack_generic(M, M.obj_damage, M.melee_damage_type, MELEE, play_soundeffect, M.armour_penetration)
else
- . = attack_generic(M, M.melee_damage, M.melee_damage_type, "melee", play_soundeffect, M.armour_penetration)
+ . = attack_generic(M, M.melee_damage, M.melee_damage_type, MELEE, play_soundeffect, M.armour_penetration)
if(. && !play_soundeffect)
playsound(loc, 'sound/effects/meteorimpact.ogg', 100, 1)
-
-/obj/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
// SHOULD_CALL_PARENT(TRUE) // TODO: fix this
- if(X.status_flags & INCORPOREAL) //Ghosts can't attack machines
+ if(xeno_attacker.status_flags & INCORPOREAL) //Ghosts can't attack machines
return FALSE
- SEND_SIGNAL(X, COMSIG_XENOMORPH_ATTACK_OBJ, src)
- if(SEND_SIGNAL(src, COMSIG_OBJ_ATTACK_ALIEN, X) & COMPONENT_NO_ATTACK_ALIEN)
+ SEND_SIGNAL(xeno_attacker, COMSIG_XENOMORPH_ATTACK_OBJ, src)
+ if(SEND_SIGNAL(src, COMSIG_OBJ_ATTACK_ALIEN, xeno_attacker) & COMPONENT_NO_ATTACK_ALIEN)
return FALSE
if(!(resistance_flags & XENO_DAMAGEABLE))
- to_chat(X, span_warning("We stare at \the [src] cluelessly."))
+ to_chat(xeno_attacker, span_warning("We stare at \the [src] cluelessly."))
return FALSE
if(effects)
- X.visible_message(span_danger("[X] has slashed [src]!"),
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] has slashed [src]!"),
span_danger("We slash [src]!"))
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
playsound(loc, "alien_claw_metal", 25)
- attack_generic(X, damage_amount, damage_type, damage_flag, effects, armor_penetration)
+ attack_generic(xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration)
return TRUE
-/obj/attack_larva(mob/living/carbon/xenomorph/larva/L)
- L.visible_message(span_danger("[L] nudges its head against [src]."), \
+/obj/attack_larva(mob/living/carbon/xenomorph/larva/larva_attacker)
+ larva_attacker.visible_message(span_danger("[larva_attacker] nudges its head against [src]."), \
span_danger("You nudge your head against [src]."))
-
///the obj is deconstructed into pieces, whether through careful disassembly or when destroyed.
/obj/proc/deconstruct(disassembled = TRUE)
SHOULD_CALL_PARENT(TRUE)
SEND_SIGNAL(src, COMSIG_OBJ_DECONSTRUCT, disassembled)
qdel(src)
-
///called after the obj takes damage and integrity is below integrity_failure level
/obj/proc/obj_break(damage_flag)
return
-
///what happens when the obj's integrity reaches zero.
/obj/proc/obj_destruction(damage_amount, damage_type, damage_flag)
SHOULD_CALL_PARENT(TRUE)
@@ -152,7 +143,6 @@
playsound(loc, destroy_sound, 35, 1)
deconstruct(FALSE)
-
///changes max_integrity while retaining current health percentage, returns TRUE if the obj got broken.
/obj/proc/modify_max_integrity(new_max, can_break = TRUE, damage_type = BRUTE, new_failure_integrity = null)
var/current_integrity = obj_integrity
diff --git a/code/game/objects/structures/barricade.dm b/code/game/objects/structures/barricade.dm
index 8b63760e0d4..3e235130e7e 100644
--- a/code/game/objects/structures/barricade.dm
+++ b/code/game/objects/structures/barricade.dm
@@ -1,5 +1,3 @@
-// Snow, wood, sandbags, metal, plasteel
-
/obj/structure/barricade
icon = 'icons/Marine/barricades.dmi'
climbable = TRUE
@@ -77,13 +75,13 @@
/obj/structure/barricade/attack_animal(mob/user)
return attack_alien(user)
-/obj/structure/barricade/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/barricade/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(is_wired)
- balloon_alert(X, "Wire slices into us")
- X.apply_damage(10, blocked = MELEE , sharp = TRUE, updating_health = TRUE)
+ balloon_alert(xeno_attacker, "Wire slices into us")
+ xeno_attacker.apply_damage(10, blocked = MELEE , sharp = TRUE, updating_health = TRUE)
return ..()
@@ -109,7 +107,6 @@
B.use(1)
wire()
-
/obj/structure/barricade/proc/wire()
can_wire = FALSE
is_wired = TRUE
@@ -135,7 +132,6 @@
update_icon()
new /obj/item/stack/barbed_wire(loc)
-
/obj/structure/barricade/deconstruct(disassembled = TRUE)
if(disassembled && is_wired)
new /obj/item/stack/barbed_wire(loc)
@@ -216,7 +212,6 @@
else
. += image('icons/Marine/barricades.dmi', icon_state = "[barricade_type]_closed_wire")
-
/obj/structure/barricade/effect_smoke(obj/effect/particle_effect/smoke/S)
. = ..()
if(!.)
@@ -224,7 +219,6 @@
if(CHECK_BITFIELD(S.smoke_traits, SMOKE_XENO_ACID))
take_damage(base_acid_damage * S.strength, BURN, ACID)
-
/obj/structure/barricade/verb/rotate()
set name = "Rotate Barricade Counter-Clockwise"
set category = "Object"
@@ -247,7 +241,6 @@
setDir(turn(dir, 270))
-
/obj/structure/barricade/attack_hand_alternate(mob/living/user)
if(anchored)
balloon_alert(usr, "It's fastened to the floor")
@@ -255,7 +248,6 @@
setDir(turn(dir, 270))
-
/*----------------------*/
// SNOW
/*----------------------*/
@@ -271,8 +263,6 @@
destroyed_stack_amount = 0
can_wire = FALSE
-
-
//Item Attack
/obj/structure/barricade/snow/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -385,7 +375,6 @@
balloon_alert_to_viewers("Repaired")
update_icon()
-
/*----------------------*/
// METAL
/*----------------------*/
@@ -699,23 +688,6 @@
update_icon()
return TRUE
-
-/*RUTGMC DELETION
-/obj/structure/barricade/metal/ex_act(severity)
- switch(severity)
- if(EXPLODE_DEVASTATE)
- take_damage(rand(400, 600), BRUTE, BOMB)
- if(EXPLODE_HEAVY)
- take_damage(rand(150, 350), BRUTE, BOMB)
- if(EXPLODE_LIGHT)
- take_damage(rand(50, 100), BRUTE, BOMB)
- if(EXPLODE_WEAK)
- take_damage(rand(25, 50), BRUTE, BOMB)
-
- update_icon()
-*/
-
-
#undef BARRICADE_METAL_LOOSE
#undef BARRICADE_METAL_ANCHORED
#undef BARRICADE_METAL_FIRM
@@ -907,35 +879,6 @@
build_state = BARRICADE_PLASTEEL_ANCHORED
update_icon() //unanchored changes layer
-/* RUTGMC DELETION, moved to modular
-/obj/structure/barricade/plasteel/attackby(obj/item/I, mob/user, params)
- . = ..()
-
- if(istype(I, /obj/item/stack/sheet/plasteel))
- var/obj/item/stack/sheet/plasteel/plasteel_sheets = I
- if(obj_integrity >= max_integrity * 0.3)
- return
-
- if(plasteel_sheets.get_amount() < 2)
- balloon_alert(user, "You need at least 2 plasteel")
- return
-
- if(LAZYACCESS(user.do_actions, src))
- return
-
- balloon_alert_to_viewers("Repairing base...")
-
- if(!do_after(user, 2 SECONDS, NONE, src, BUSY_ICON_FRIENDLY) || obj_integrity >= max_integrity * 0.3)
- return
-
- if(!plasteel_sheets.use(2))
- return
-
- repair_damage(max_integrity * 0.3, user)
- balloon_alert_to_viewers("Base repaired")
- update_icon()
-*/
-
/obj/structure/barricade/plasteel/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -972,21 +915,6 @@
if(((dir & (NORTH|SOUTH) && get_dir(src, cade) & (EAST|WEST)) || (dir & (EAST|WEST) && get_dir(src, cade) & (NORTH|SOUTH))) && dir == cade.dir && cade.linked && cade.closed == closed)
. += image('icons/Marine/barricades.dmi', icon_state = "[barricade_type]_[closed ? "closed" : "open"]_connection_[get_dir(src, cade)]")
-/*RUTGMC DELETION
-/obj/structure/barricade/plasteel/ex_act(severity)
- switch(severity)
- if(EXPLODE_DEVASTATE)
- take_damage(rand(450, 650), BRUTE, BOMB)
- if(EXPLODE_HEAVY)
- take_damage(rand(200, 400), BRUTE, BOMB)
- if(EXPLODE_LIGHT)
- take_damage(rand(50, 150), BRUTE, BOMB)
- if(EXPLODE_WEAK)
- take_damage(rand(25, 75), BRUTE, BOMB)
-
- update_icon()
-*/
-
/*----------------------*/
// SANDBAGS
/*----------------------*/
@@ -1124,7 +1052,6 @@
/obj/structure/barricade/metal/deployable/attempt_barricade_upgrade()
return //not upgradable
-
/*----------------------*/
// CONCRETE
/*----------------------*/
diff --git a/code/game/objects/structures/benchpress.dm b/code/game/objects/structures/benchpress.dm
index 1c799861315..03c4ba247d8 100644
--- a/code/game/objects/structures/benchpress.dm
+++ b/code/game/objects/structures/benchpress.dm
@@ -77,19 +77,17 @@
update_icon()
flick("swap_[plates]", src)
-
-
/obj/structure/benchpress/attack_hand(mob/living/user)
. = ..()
if(.)
return
do_workout_set(user)
-/obj/structure/benchpress/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/structure/benchpress/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
. = ..()
if(.)
return
- do_workout_set(X)
+ do_workout_set(xeno_attacker)
///checks if possible and if yes performs a workout set for this mob
/obj/structure/benchpress/proc/do_workout_set(mob/living/user)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 2b61d429f4b..c66a428a193 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -2,7 +2,6 @@
#define CLOSET_INSERT_FAIL 0
#define CLOSET_INSERT_SUCCESS 1
-
/obj/structure/closet
name = "closet"
desc = "It's a basic storage unit."
@@ -79,7 +78,6 @@
PopulateContents()
update_icon()
-
/obj/structure/closet/LateInitialize()
. = ..()
@@ -107,13 +105,11 @@
density = FALSE
opened = TRUE
-
/obj/structure/closet/CanAllowThrough(atom/movable/mover, turf/target)
if(wall_mounted)
return TRUE
return ..()
-
/obj/structure/closet/proc/can_open(mob/living/user)
if(welded || locked)
if(user)
@@ -121,7 +117,6 @@
return FALSE
return TRUE
-
/obj/structure/closet/proc/can_close(mob/living/user)
for(var/obj/structure/closet/blocking_closet in loc)
if(blocking_closet != src && !blocking_closet.wall_mounted && !blocking_closet.opened)
@@ -135,7 +130,6 @@
return FALSE
return TRUE
-
/obj/structure/closet/proc/dump_contents()
var/atom/drop_loc = drop_location()
for(var/thing in src)
@@ -149,7 +143,6 @@
mob_size_counter = 0
item_size_counter = 0
-
/obj/structure/closet/proc/take_contents()
for(var/mapped_thing in drop_location())
if(mapped_thing == src)
@@ -157,7 +150,6 @@
if(insert(mapped_thing) == CLOSET_INSERT_END) // limit reached
break
-
/obj/structure/closet/proc/open(mob/living/user)
SIGNAL_HANDLER
if(user)
@@ -171,7 +163,6 @@
playsound(loc, open_sound, 15, 1)
return TRUE
-
/obj/structure/closet/proc/insert(atom/movable/thing_to_insert)
if(length(contents) >= storage_capacity)
return CLOSET_INSERT_END
@@ -180,7 +171,6 @@
thing_to_insert.forceMove(src)
return CLOSET_INSERT_SUCCESS
-
/obj/structure/closet/proc/close(mob/living/user)
if(!opened || !can_close(user))
return FALSE
@@ -191,7 +181,6 @@
update_icon()
return TRUE
-
/obj/structure/closet/proc/toggle(mob/living/user)
return opened ? close(user) : open(user)
@@ -223,11 +212,11 @@
dump_contents()
qdel(src)
-/obj/structure/closet/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/structure/closet/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
. = ..()
if(!.)
return
- if(X.a_intent == INTENT_HARM && !opened && prob(70))
+ if(xeno_attacker.a_intent == INTENT_HARM && !opened && prob(70))
break_open()
/obj/structure/closet/attackby(obj/item/I, mob/user, params)
@@ -277,7 +266,6 @@
balloon_alert_to_viewers("[src] has been [welded ? "welded shut" : "unwelded"]")
return TRUE
-
/obj/structure/closet/wrench_act(mob/living/user, obj/item/tool/wrench/wrenchy_tool)
if(opened)
return FALSE
@@ -289,7 +277,6 @@
balloon_alert_to_viewers("[user] [anchored ? "anchors" : "unanchors"] the [src]")
return TRUE
-
/obj/structure/closet/relaymove(mob/user, direct)
if(!isturf(loc))
return
@@ -310,14 +297,12 @@
to_chat(M, "BANG, bang!")
addtimer(VARSET_CALLBACK(src, lastbang, FALSE), 3 SECONDS)
-
/obj/structure/closet/attack_hand(mob/living/user)
. = ..()
if(.)
return
return toggle(user)
-
/obj/structure/closet/verb/verb_toggleopen()
set src in oview(1)
set category = "Object"
@@ -340,11 +325,9 @@
else
icon_state = icon_opened
-
/obj/structure/closet/resisted_against(datum/source)
container_resist(source)
-
/obj/structure/closet/proc/container_resist(mob/living/user)
if(opened)
return FALSE
@@ -369,14 +352,12 @@
balloon_alert_to_viewers("breaks out")
return bust_open()
-
/obj/structure/closet/proc/bust_open()
welded = FALSE //applies to all lockers
locked = FALSE //applies to critter crates and secure lockers only
broken = TRUE //applies to secure lockers only
open()
-
/obj/structure/closet/proc/break_open()
if(!opened)
dump_contents()
@@ -386,12 +367,10 @@
welded = FALSE
update_icon()
-
/obj/structure/closet/AltClick(mob/user)
. = ..()
return togglelock(user)
-
/obj/structure/closet/proc/togglelock(mob/living/user, silent)
if(!CHECK_BITFIELD(closet_flags, CLOSET_IS_SECURE))
return FALSE
@@ -418,23 +397,19 @@
update_icon()
return TRUE
-
/obj/structure/closet/contents_explosion(severity)
for(var/i in contents)
var/atom/movable/closet_contents = i
closet_contents.ex_act(severity)
-
/obj/structure/closet/proc/closet_special_handling(mob/living/mob_to_stuff)
return TRUE //We are permisive by default.
-
//Redefined procs for closets
/atom/movable/proc/closet_insertion_allowed(obj/structure/closet/destination)
return FALSE
-
/mob/living/closet_insertion_allowed(obj/structure/closet/destination)
if(anchored || buckled)
return FALSE
@@ -448,7 +423,6 @@
destination.RegisterSignal(destination, COMSIG_ATOM_EXITED, TYPE_PROC_REF(/obj/structure/closet, open))
return TRUE
-
/obj/closet_insertion_allowed(obj/structure/closet/destination)
if(!CHECK_BITFIELD(destination.closet_flags, CLOSET_ALLOW_OBJS))
return FALSE
@@ -460,7 +434,6 @@
return FALSE
return TRUE
-
/obj/item/closet_insertion_allowed(obj/structure/closet/destination)
if(anchored)
return FALSE
@@ -481,7 +454,6 @@
/obj/structure/closet/closet_insertion_allowed(obj/structure/closet/destination)
return FALSE
-
/mob/living/proc/on_closet_dump(obj/structure/closet/origin)
SetStun(origin.closet_stun_delay)//Action delay when going out of a closet
if(!lying_angle && IsStun())
diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm
index b8121fd8d98..15d9364d5f2 100644
--- a/code/game/objects/structures/fence.dm
+++ b/code/game/objects/structures/fence.dm
@@ -129,5 +129,5 @@
/obj/structure/fence/fire_act(exposed_temperature, exposed_volume)
if(exposed_temperature > T0C + 800)
- take_damage(round(exposed_volume / 100), BURN, "fire")
+ take_damage(round(exposed_volume / 100), BURN, FIRE)
return ..()
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 95e04435d4b..bfb07c51cf2 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -23,7 +23,6 @@
return INITIALIZE_HINT_LATELOAD
-
/obj/structure/ladder/LateInitialize()
. = ..()
for(var/obj/structure/ladder/L AS in GLOB.ladder_list)
@@ -65,8 +64,8 @@
else //wtf make your ladders properly assholes
icon_state = "ladder00"
-/obj/structure/ladder/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- return attack_hand(X)
+/obj/structure/ladder/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ return attack_hand(xeno_attacker)
/obj/structure/ladder/attack_larva(mob/living/carbon/xenomorph/larva/X)
return attack_hand(X)
@@ -111,7 +110,6 @@
user.visible_message(span_notice("[user] climbs [ladder_dir_name] [src]."),
span_notice("You climb [ladder_dir_name] [src]."))
-
/obj/structure/ladder/attack_ghost(mob/dead/observer/user)
. = ..()
if(.)
@@ -131,7 +129,6 @@
else if(down)
user.forceMove(get_turf(down))
-
/obj/structure/ladder/check_eye(mob/user)
//Are we capable of looking?
if(user.incapacitated() || get_dist(user, src) > 1 || is_blind(user) || user.lying_angle || !user.client)
@@ -145,8 +142,6 @@
if (!up || !up.cam || !up.cam.can_use()) //Camera doesn't work or is gone
user.unset_interaction()
-
-
/obj/structure/ladder/on_set_interaction(mob/user)
if (is_watching == 1)
if (down || down.cam || down.cam.can_use()) //Camera works
@@ -159,8 +154,6 @@
user.unset_interaction() //No usable cam, we stop interacting right away
-
-
/obj/structure/ladder/on_unset_interaction(mob/user)
..()
is_watching = 0
@@ -205,7 +198,6 @@
is_watching = 1
usr.set_interaction(src)
-
//Throwing Shiet
/obj/structure/ladder/attackby(obj/item/I, mob/user, params)
. = ..()
diff --git a/code/game/objects/structures/mine_structures.dm b/code/game/objects/structures/mine_structures.dm
index 343799e5ec4..b8c020005e9 100644
--- a/code/game/objects/structures/mine_structures.dm
+++ b/code/game/objects/structures/mine_structures.dm
@@ -17,10 +17,10 @@
density = TRUE
/obj/structure/mine_structure/wooden/flamer_fire_act(burnlevel)
- take_damage(burnlevel, BURN, "fire")
+ take_damage(burnlevel, BURN, FIRE)
/obj/structure/mine_structure/wooden/fire_act()
- take_damage(25, BURN, "fire")
+ take_damage(25, BURN, FIRE)
/obj/structure/mine_structure/wooden/support_wall
name = "wooden support"
diff --git a/code/game/objects/structures/razorwire.dm b/code/game/objects/structures/razorwire.dm
index 8ec6f3bb6a4..0489da55955 100644
--- a/code/game/objects/structures/razorwire.dm
+++ b/code/game/objects/structures/razorwire.dm
@@ -71,7 +71,6 @@
span_danger("You got entangled in the barbed wire! Resist to untangle yourself after [duration * 0.1] seconds since you were entangled!"), null, null, 5)
do_razorwire_tangle(entangled)
-
/obj/structure/razorwire/proc/do_razorwire_tangle(mob/living/entangled)
ADD_TRAIT(entangled, TRAIT_IMMOBILE, type)
ENABLE_BITFIELD(entangled.restrained_flags, RESTRAINED_RAZORWIRE)
@@ -80,7 +79,6 @@
RegisterSignal(entangled, COMSIG_QDELETING, PROC_REF(do_razorwire_untangle))
RegisterSignal(entangled, COMSIG_MOVABLE_PULL_MOVED, PROC_REF(razorwire_untangle))
-
/obj/structure/razorwire/resisted_against(datum/source)
var/mob/living/entangled = source
if(TIMER_COOLDOWN_CHECK(entangled, COOLDOWN_ENTANGLE))
@@ -100,7 +98,6 @@
entangled.apply_damage(RAZORWIRE_BASE_DAMAGE * RAZORWIRE_MIN_DAMAGE_MULT_MED, BRUTE, def_zone, MELEE, TRUE, updating_health = TRUE) //Apply damage as we tear free
return TRUE
-
///This proc is used for signals, so if you plan on adding a second argument, or making it return a value, then change those RegisterSignal's referncing it first.
/obj/structure/razorwire/proc/do_razorwire_untangle(mob/living/entangled)
SIGNAL_HANDLER
@@ -109,7 +106,6 @@
DISABLE_BITFIELD(entangled.restrained_flags, RESTRAINED_RAZORWIRE)
REMOVE_TRAIT(entangled, TRAIT_IMMOBILE, type)
-
/obj/structure/razorwire/proc/on_exited(datum/source, atom/movable/AM, direction)
if(!isliving(AM))
return
@@ -122,7 +118,6 @@
do_razorwire_untangle(i)
return ..()
-
/obj/structure/razorwire/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -184,11 +179,11 @@
deconstruct(TRUE)
return TRUE
-/obj/structure/razorwire/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/razorwire/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- X.apply_damage(RAZORWIRE_BASE_DAMAGE, blocked = MELEE, updating_health = TRUE) //About a third as damaging as actually entering
+ xeno_attacker.apply_damage(RAZORWIRE_BASE_DAMAGE, blocked = MELEE, updating_health = TRUE) //About a third as damaging as actually entering
update_icon()
return ..()
@@ -198,7 +193,6 @@
visible_message(span_danger("[src] is blown apart!"))
update_icon()
-
/obj/structure/razorwire/CanAllowThrough(atom/movable/mover, turf/target)
if(mover.throwing && ismob(mover) && !(mover.pass_flags & PASS_DEFENSIVE_STRUCTURE))
return FALSE
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 91adfc1cf9b..0ff1c7b76f9 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -1,12 +1,3 @@
-/*
-* Contains:
-* Beds
-* Roller beds
-*/
-
-/*
-* Beds
-*/
/obj/structure/bed
name = "bed"
desc = "A mattress seated on a rectangular metallic frame. This is used to support a lying person in a comfortable manner, notably for regular sleep. Ancient technology, but still useful."
@@ -29,7 +20,6 @@
var/accepts_bodybag = FALSE //Whether you can buckle bodybags to this bed
var/base_bed_icon //Used by beds that change sprite when something is buckled to them
-
/obj/structure/bed/nometal
dropmetal = FALSE
@@ -50,7 +40,6 @@
unbuckle_bodybag()
return ..()
-
/obj/structure/bed/post_buckle_mob(mob/buckling_mob)
. = ..()
buckling_mob.pixel_y = buckling_y
@@ -92,7 +81,6 @@
if(pulledby)
B.set_glide_size(pulledby.glide_size)
-
/obj/structure/bed/proc/unbuckle_bodybag(mob/user)
if(!buckled_bodybag)
return
@@ -105,7 +93,6 @@
density = FALSE
update_icon()
-
//Trying to buckle a mob
/obj/structure/bed/buckle_mob(mob/living/buckling_mob, force = FALSE, check_loc = TRUE, lying_buckle = FALSE, hands_needed = 0, target_hands_needed = 0, silent)
if(buckled_bodybag)
@@ -222,7 +209,6 @@
accepts_bodybag = TRUE
base_bed_icon = "roller"
-
/obj/item/roller
name = "roller bed"
desc = "A collapsed roller bed that can be carried around."
@@ -256,7 +242,6 @@
forceMove(RH)
RH.held = src
-
/obj/item/roller/proc/deploy_roller(mob/user, atom/location)
var/obj/structure/bed/roller/R = new rollertype(location)
user.temporarilyRemoveItemFromInventory(src)
@@ -322,13 +307,13 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
. = ..()
radio = new(src)
-/obj/structure/bed/medevac_stretcher/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/bed/medevac_stretcher/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(buckled_bodybag)
unbuckle_bodybag()
for(var/m in buckled_mobs)
- user_unbuckle_mob(m, X, TRUE)
+ user_unbuckle_mob(m, xeno_attacker, TRUE)
/obj/structure/bed/medevac_stretcher/attack_ghost(mob/dead/observer/user)
. = ..()
@@ -351,7 +336,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
if(LAZYLEN(buckled_mobs) || buckled_bodybag)
overlays += image("icon_state"="stretcher_box","layer"=LYING_MOB_LAYER + 0.1)
-
/obj/structure/bed/medevac_stretcher/verb/activate_medevac_displacer()
set name = "Activate Medevac Displacement Field"
set desc = "Teleport the occupant of the stretcher to a linked beacon."
@@ -360,7 +344,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
activate_medevac_teleport(usr)
-
/obj/structure/bed/medevac_stretcher/attack_hand_alternate(mob/living/user)
activate_medevac_teleport(user)
@@ -420,7 +403,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
playsound(loc,'sound/machines/buzz-two.ogg', 25, FALSE)
visible_message(span_warning("[src]'s safeties kick in, no longer detecting a buckled user."))
-
/obj/structure/bed/medevac_stretcher/proc/medevac_teleport(mob/user)
UnregisterSignal(src, COMSIG_MOVABLE_UNBUCKLE)
busy = FALSE
@@ -489,7 +471,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
var/obj/item/healthanalyzer/J = I
J.attack(occupant, user)
-
/obj/structure/bed/medevac_stretcher/proc/medvac_alert(mob/M)
playsound(loc, 'sound/machines/ping.ogg', 50, FALSE)
radio.talk_into(src, "Patient [M] has been tele-vaced to medvac beacon at: [get_area(linked_beacon)]. Coordinates: (X: [linked_beacon.x], Y: [linked_beacon.y])", RADIO_CHANNEL_MEDICAL)
@@ -511,7 +492,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
. += span_notice("[details.Join(" ")]")
-
/obj/item/roller/medevac
name = "medevac stretcher"
desc = "A collapsed medevac stretcher that can be carried around."
@@ -584,7 +564,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
return
var/mutable_appearance/desc = mutable_appearance('icons/misc/12x12.dmi')
desc.maptext = MAPTEXT("[display_timer_cooldown]s")
-
. += desc
/obj/item/roller/medevac/attackby(obj/item/I, mob/user, params)
@@ -723,7 +702,6 @@ GLOBAL_LIST_EMPTY(activated_medevac_stretchers)
add_stretcher(I, user)
-
/obj/item/medevac_beacon/proc/check_power()
var/area/A = loc?.loc
if(!A || !isarea(A))
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index 3b8e16e46d4..750507bcd1e 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -39,7 +39,6 @@
else
layer = OBJ_LAYER
-
/obj/structure/bed/chair/post_buckle_mob(mob/buckling_mob)
. = ..()
if(isliving(buckling_mob)) //Properly update whether we're lying or not; no more people lying on chairs; ridiculous
@@ -56,7 +55,6 @@
. = ..()
handle_rotation(newdir)
-
/obj/structure/bed/chair/verb/rotate()
set name = "Rotate Chair"
set category = "Object"
@@ -79,7 +77,6 @@
desc = "Some say that the TGMC shouldn't spent this much money on reinforced chairs, but the documents from briefing riots prove otherwise."
buildstackamount = 2
-
/obj/structure/bed/chair/reinforced/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -117,7 +114,6 @@
playsound(loc, 'sound/items/welder2.ogg', 25, 1)
qdel(src)
-
/obj/structure/bed/chair/wood
buildstacktype = /obj/item/stack/sheet/wood
hit_sound = 'sound/effects/woodhit.ogg'
@@ -194,7 +190,6 @@
//cm benches do not have corners
-
/obj/structure/bed/chair/pew
name = "chapel pew"
desc = "An old fashioned wood pew."
@@ -288,7 +283,6 @@
visible_message(span_danger("[mover] slams into [src] and breaks it!"))
INVOKE_ASYNC(src, PROC_REF(fold_down), TRUE)
return FALSE
-
return ..()
/obj/structure/bed/chair/dropship/passenger/Initialize(mapload)
@@ -296,19 +290,16 @@
chairbar = image("icons/obj/objects.dmi", "shuttle_bars")
chairbar.layer = ABOVE_MOB_LAYER
-
/obj/structure/bed/chair/dropship/passenger/post_buckle_mob(mob/buckling_mob)
icon_state = "shuttle_chair_buckled"
overlays += chairbar
return ..()
-
/obj/structure/bed/chair/dropship/passenger/post_unbuckle_mob(mob/buckled_mob)
icon_state = "shuttle_chair"
overlays -= chairbar
return ..()
-
/obj/structure/bed/chair/dropship/passenger/buckle_mob(mob/living/buckling_mob, force = FALSE, check_loc = TRUE, lying_buckle = FALSE, hands_needed = 0, target_hands_needed = 0, silent)
if(chair_state != DROPSHIP_CHAIR_UNFOLDED)
return FALSE
@@ -341,12 +332,11 @@
/obj/structure/bed/chair/dropship/passenger/rotate()
return // no
-
-/obj/structure/bed/chair/dropship/passenger/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/bed/chair/dropship/passenger/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(chair_state != DROPSHIP_CHAIR_BROKEN)
- X.visible_message(span_warning("[X] smashes \the [src], shearing the bolts!"),
+ xeno_attacker.visible_message(span_warning("[xeno_attacker] smashes \the [src], shearing the bolts!"),
span_warning("We smash \the [src], shearing the bolts!"))
fold_down(1)
@@ -400,7 +390,6 @@
span_warning("You repair \the [src]."))
chair_state = DROPSHIP_CHAIR_FOLDED
-
/obj/structure/bed/chair/ob_chair
name = "seat"
desc = "A comfortable seat."
diff --git a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm
index 919e0919ee2..68ae8ce5671 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm
@@ -1,9 +1,5 @@
-//RUTGMC EDIT CHANGE BEGIN
-//#define NEST_RESIST_TIME 2.5 SECONDS //ORIGINAL
-//#define NEST_UNBUCKLED_COOLDOWN 5 SECONDS
-#define NEST_RESIST_TIME 80 SECONDS //RUTGMC EDIT
+#define NEST_RESIST_TIME 80 SECONDS
#define NEST_UNBUCKLED_COOLDOWN 15 SECONDS
-//RUTGMC EDIT CHANGE END
///Alium nests. Essentially beds with an unbuckle delay that only aliums can buckle mobs to.
/obj/structure/bed/nest
@@ -30,18 +26,18 @@
to_chat(user, span_notice("You place [M] on [src]."))
M.forceMove(loc)
-/obj/structure/bed/nest/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/bed/nest/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- X.visible_message(span_xenonotice("\The [X] starts tearing down \the [src]!"), \
+ xeno_attacker.visible_message(span_xenonotice("\The [xeno_attacker] starts tearing down \the [src]!"), \
span_xenonotice("We start to tear down \the [src]."))
- if(!do_after(X, 4 SECONDS, NONE, X, BUSY_ICON_GENERIC))
+ if(!do_after(xeno_attacker, 4 SECONDS, NONE, xeno_attacker, BUSY_ICON_GENERIC))
return
if(!istype(src)) // Prevent jumping to other turfs if do_after completes with the wall already gone
return
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- X.visible_message(span_xenonotice("\The [X] tears down \the [src]!"), \
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.visible_message(span_xenonotice("\The [xeno_attacker] tears down \the [src]!"), \
span_xenonotice("We tear down \the [src]."))
playsound(src, "alien_resin_break", 25)
take_damage(max_integrity) // Ensure its destroyed
@@ -63,11 +59,6 @@
if(TIMER_COOLDOWN_CHECK(H, COOLDOWN_NEST))
to_chat(user, span_warning("[H] was recently unbuckled. Wait a bit."))
return FALSE
- //RUTGMC EDIT REMOVAL BEGIN
- /*if(!H.lying_angle)
- to_chat(user, span_warning("[H] is resisting, ground [H.p_them()]."))
- return FALSE */
- //RUTGMC EDIT END
user.visible_message(span_warning("[user] pins [buckling_mob] into [src], preparing the securing resin."),
span_warning("[user] pins [buckling_mob] into [src], preparing the securing resin."))
@@ -79,11 +70,6 @@
if(LAZYLEN(buckled_mobs))
to_chat(user, span_warning("There's already someone in [src]."))
return FALSE
- //RUTGMC EDIT REMOVAL BEGIN
- /*if(ishuman(buckling_mob) && !buckling_mob.lying_angle) //Improperly stunned Marines won't be nested
- to_chat(user, span_warning("[buckling_mob] is resisting, ground [buckling_mob.p_them()]."))
- return FALSE */
- //RUTGMC EDIT END
buckling_mob.visible_message(span_xenonotice("[user] secretes a thick, vile resin, securing [buckling_mob] into [src]!"),
span_xenonotice("[user] drenches you in a foul-smelling resin, trapping you in [src]!"),
@@ -93,7 +79,6 @@
silent = TRUE
return ..()
-
/obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/user, silent)
if(buckled_mob != user)
if(user.incapacitated())
@@ -102,14 +87,11 @@
span_notice("\The [user] pulls you free from \the [src]."),
span_notice("You hear squelching."))
playsound(loc, "alien_resin_move", 50)
- //TIMER_COOLDOWN_START(user, COOLDOWN_NEST, NEST_UNBUCKLED_COOLDOWN) //RUTGMC EDIT REMOVAL
silent = TRUE
return ..()
-// RU TGMC EDIT
if(force_nest)
to_chat(buckled_mob, span_warning("Nest to thick, you can't resist."))
return FALSE
-// RU TGMC EDIT
if(buckled_mob.incapacitated(TRUE))
to_chat(buckled_mob, span_warning("You're currently unable to try that."))
return FALSE
@@ -129,7 +111,6 @@
silent = TRUE
return ..()
-
/obj/structure/bed/nest/proc/unbuckle_time_message(mob/living/user)
if(QDELETED(user) || !(user in buckled_mobs))
return //Time has passed, conditions may have changed.
@@ -137,7 +118,6 @@
return //We've been freed and re-nested.
to_chat(user, span_danger("You are ready to break free! Resist once more to free yourself!"))
-
/obj/structure/bed/nest/post_buckle_mob(mob/living/buckling_mob)
. = ..()
ENABLE_BITFIELD(buckling_mob.restrained_flags, RESTRAINED_XENO_NEST)
@@ -157,7 +137,6 @@
if(LAZYLEN(buckled_mobs))
. += image("icon_state" = "nest_overlay", "layer" = LYING_MOB_LAYER + 0.1)
-
/obj/structure/bed/nest/flamer_fire_act(burnlevel)
take_damage(burnlevel * 2, BURN, FIRE)
diff --git a/code/game/objects/structures/xeno.dm b/code/game/objects/structures/xeno.dm
index 5f9ae963f88..2202cb55ec6 100644
--- a/code/game/objects/structures/xeno.dm
+++ b/code/game/objects/structures/xeno.dm
@@ -1,7 +1,3 @@
-
-/*
-* effect/alien
-*/
/obj/alien
name = "alien thing"
desc = "theres something alien about this"
@@ -23,7 +19,7 @@
/// Destroy the alien effect when the weed it was on is destroyed
/obj/alien/proc/weed_removed()
SIGNAL_HANDLER
- obj_destruction(damage_flag = "melee")
+ obj_destruction(damage_flag = MELEE)
/obj/alien/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -57,12 +53,10 @@
max_integrity = 200
resistance_flags = XENO_DAMAGEABLE
-
/obj/alien/resin/attack_hand(mob/living/user)
balloon_alert(user, "You only scrape at it")
return TRUE
-
/obj/alien/resin/sticky
name = STICKY_RESIN
desc = "A layer of disgusting sticky slime."
@@ -108,17 +102,17 @@
victim.next_move_slowdown += slow_amt
-/obj/alien/resin/sticky/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/alien/resin/sticky/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- if(X.a_intent != INTENT_DISARM)
+ if(xeno_attacker.a_intent != INTENT_DISARM)
return FALSE
- if(X.a_intent == INTENT_DISARM)
- if(CHECK_BITFIELD(SSticker.mode?.flags_round_type, MODE_ALLOW_XENO_QUICKBUILD) && SSresinshaping.should_refund(src, X) && refundable)
- SSresinshaping.decrement_build_counter(X)
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ if(xeno_attacker.a_intent == INTENT_DISARM)
+ if(CHECK_BITFIELD(SSticker.mode?.flags_round_type, MODE_ALLOW_XENO_QUICKBUILD) && SSresinshaping.should_refund(src, xeno_attacker) && refundable)
+ SSresinshaping.decrement_build_counter(xeno_attacker)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
playsound(src, "alien_resin_break", 25)
deconstruct(TRUE)
return
@@ -154,7 +148,6 @@
trigger_sound = "alien_resin_move"
hit_sound = "alien_resin_move"
destroy_sound = "alien_resin_move"
-
///The delay before the door closes automatically after being open
var/close_delay = 10 SECONDS
///The timer that tracks the delay above
@@ -187,22 +180,22 @@
try_toggle_state(M)
return TRUE
-/obj/structure/mineral_door/resin/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- var/turf/cur_loc = X.loc
+/obj/structure/mineral_door/resin/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ var/turf/cur_loc = xeno_attacker.loc
if(!istype(cur_loc))
return FALSE
- if(X.a_intent != INTENT_DISARM)
- try_toggle_state(X)
+ if(xeno_attacker.a_intent != INTENT_DISARM)
+ try_toggle_state(xeno_attacker)
return TRUE
- if(CHECK_BITFIELD(SSticker.mode?.flags_round_type, MODE_ALLOW_XENO_QUICKBUILD) && SSresinshaping.should_refund(src, X))
- SSresinshaping.decrement_build_counter(X)
+ if(CHECK_BITFIELD(SSticker.mode?.flags_round_type, MODE_ALLOW_XENO_QUICKBUILD) && SSresinshaping.should_refund(src, xeno_attacker))
+ SSresinshaping.decrement_build_counter(xeno_attacker)
qdel(src)
return TRUE
- src.balloon_alert(X, "Destroying...")
+ src.balloon_alert(xeno_attacker, "Destroying...")
playsound(src, "alien_resin_break", 25)
- if(do_after(X, 1 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE))
- src.balloon_alert(X, "Destroyed")
+ if(do_after(xeno_attacker, 1 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE))
+ src.balloon_alert(xeno_attacker, "Destroyed")
qdel(src)
/obj/structure/mineral_door/resin/flamer_fire_act(burnlevel)
@@ -246,7 +239,6 @@
INVOKE_NEXT_TICK(R, PROC_REF(check_resin_support))
return ..()
-
//do we still have something next to us to support us?
/obj/structure/mineral_door/resin/proc/check_resin_support()
var/turf/T
@@ -275,20 +267,20 @@
///Holder to ensure only one user per resin jelly.
var/current_user
-/obj/item/resin_jelly/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/item/resin_jelly/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- if(X.xeno_caste.can_flags & CASTE_CAN_HOLD_JELLY)
- return attack_hand(X)
- if(X.do_actions || !isnull(current_user))
+ if(xeno_attacker.xeno_caste.can_flags & CASTE_CAN_HOLD_JELLY)
+ return attack_hand(xeno_attacker)
+ if(xeno_attacker.do_actions || !isnull(current_user))
return
- current_user = X
- X.balloon_alert(X, "Applying...")
- if(!do_after(X, RESIN_SELF_TIME, NONE, X, BUSY_ICON_MEDICAL))
+ current_user = xeno_attacker
+ xeno_attacker.balloon_alert(xeno_attacker, "Applying...")
+ if(!do_after(xeno_attacker, RESIN_SELF_TIME, NONE, xeno_attacker, BUSY_ICON_MEDICAL))
current_user = null
return
- activate_jelly(X)
+ activate_jelly(xeno_attacker)
/obj/item/resin_jelly/attack_self(mob/living/carbon/xenomorph/user)
//Activates if the item itself is clicked in hand.
@@ -341,11 +333,11 @@
UnregisterSignal(source, COMSIG_MOVABLE_IMPACT)
if(!isxeno(hit_atom))
return
- var/mob/living/carbon/xenomorph/X = hit_atom
- if(X.xeno_caste.caste_flags & CASTE_FIRE_IMMUNE)
+ var/mob/living/carbon/xenomorph/xenomorph_target = hit_atom
+ if(xenomorph_target.xeno_caste.caste_flags & CASTE_FIRE_IMMUNE)
return
- X.visible_message(span_notice("[X] is splattered with jelly!"))
- INVOKE_ASYNC(src, PROC_REF(activate_jelly), X)
+ xenomorph_target.visible_message(span_notice("[xenomorph_target] is splattered with jelly!"))
+ INVOKE_ASYNC(src, PROC_REF(activate_jelly), xenomorph_target)
/obj/alien/resin/resin_growth
name = GROWTH_WALL
diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm
index 99078c58105..c12cf8b99e8 100644
--- a/code/game/turfs/open.dm
+++ b/code/game/turfs/open.dm
@@ -42,7 +42,6 @@
return ..()
-
/turf/open/examine(mob/user)
. = ..()
. += ceiling_desc()
@@ -92,7 +91,6 @@
barefootstep = FOOTSTEP_HARD
mediumxenofootstep = FOOTSTEP_PLATING
-
/turf/open/shuttle/check_alien_construction(mob/living/builder, silent = FALSE, planned_building)
if(ispath(planned_building, /turf/closed/wall/)) // Shuttles move and will leave holes in the floor during transit
if(!silent)
@@ -295,15 +293,15 @@
/turf/open/lavaland/catwalk/built
var/deconstructing = FALSE
-/turf/open/lavaland/catwalk/built/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/turf/open/lavaland/catwalk/built/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- if(X.a_intent != INTENT_HARM)
+ if(xeno_attacker.a_intent != INTENT_HARM)
return
if(deconstructing)
return
deconstructing = TRUE
- if(!do_after(X, 10 SECONDS, NONE, src, BUSY_ICON_BUILD))
+ if(!do_after(xeno_attacker, 10 SECONDS, NONE, src, BUSY_ICON_BUILD))
deconstructing = FALSE
return
deconstructing = FALSE
diff --git a/code/game/turfs/snow.dm b/code/game/turfs/snow.dm
index cced92fa58e..d139db68722 100644
--- a/code/game/turfs/snow.dm
+++ b/code/game/turfs/snow.dm
@@ -24,7 +24,7 @@
update_icon(TRUE, FALSE)
//Xenos digging up snow
-/turf/open/floor/plating/ground/snow/attack_alien(mob/living/carbon/xenomorph/M, damage_amount = M.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/turf/open/floor/plating/ground/snow/attack_alien(mob/living/carbon/xenomorph/M, damage_amount = M.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(M.status_flags & INCORPOREAL)
return
diff --git a/code/game/turfs/walls/resin.dm b/code/game/turfs/walls/resin.dm
index c2796d535cb..3b3e26e39c1 100644
--- a/code/game/turfs/walls/resin.dm
+++ b/code/game/turfs/walls/resin.dm
@@ -1,8 +1,3 @@
-/**
- * Resin walls
- *
- * Used mostly be xenomorphs
- */
/turf/closed/wall/resin
name = RESIN_WALL
desc = "Weird slime solidified into a wall."
@@ -25,16 +20,13 @@
. = ..()
return INITIALIZE_HINT_LATELOAD
-
/turf/closed/wall/resin/flamer_fire_act(burnlevel)
take_damage(burnlevel * 1.25, BURN, FIRE)
-
/turf/closed/wall/resin/proc/thicken()
ChangeTurf(/turf/closed/wall/resin/thick)
return TRUE
-
/turf/closed/wall/resin/thick
name = "thick resin wall"
desc = "Weird slime solidified into a thick wall."
@@ -42,11 +34,9 @@
icon_state = "thickresin0"
walltype = "thickresin"
-
/turf/closed/wall/resin/thick/thicken()
return FALSE
-
/turf/closed/wall/resin/membrane
name = "resin membrane"
desc = "Weird slime translucent enough to let light pass through."
@@ -60,11 +50,9 @@
smoothing_groups = list(SMOOTH_GROUP_XENO_STRUCTURES)
canSmoothWith = list(SMOOTH_GROUP_XENO_STRUCTURES)
-
/turf/closed/wall/resin/membrane/thicken()
ChangeTurf(/turf/closed/wall/resin/membrane/thick)
-
/turf/closed/wall/resin/membrane/thick
name = "thick resin membrane"
desc = "Weird thick slime just translucent enough to let light pass through."
@@ -73,27 +61,26 @@
walltype = "thickmembrane"
alpha = 210
-
/turf/closed/wall/resin/ex_act(severity)
take_damage(severity * RESIN_EXPLOSIVE_MULTIPLIER, BRUTE, BOMB)
-/turf/closed/wall/resin/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/turf/closed/wall/resin/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- if(X.a_intent != INTENT_DISARM)
+ if(xeno_attacker.a_intent != INTENT_DISARM)
return
- if(CHECK_BITFIELD(SSticker.mode?.flags_round_type, MODE_ALLOW_XENO_QUICKBUILD) && SSresinshaping.should_refund(src, X))
- SSresinshaping.decrement_build_counter(X)
+ if(CHECK_BITFIELD(SSticker.mode?.flags_round_type, MODE_ALLOW_XENO_QUICKBUILD) && SSresinshaping.should_refund(src, xeno_attacker))
+ SSresinshaping.decrement_build_counter(xeno_attacker)
take_damage(max_integrity)
return
- X.visible_message(span_xenonotice("\The [X] starts tearing down \the [src]!"), \
+ xeno_attacker.visible_message(span_xenonotice("\The [xeno_attacker] starts tearing down \the [src]!"), \
span_xenonotice("We start to tear down \the [src]."))
- if(!do_after(X, 1 SECONDS, NONE, X, BUSY_ICON_GENERIC))
+ if(!do_after(xeno_attacker, 1 SECONDS, NONE, xeno_attacker, BUSY_ICON_GENERIC))
return
if(!istype(src))
return
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- X.visible_message(span_xenonotice("\The [X] tears down \the [src]!"), \
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.visible_message(span_xenonotice("\The [xeno_attacker] tears down \the [src]!"), \
span_xenonotice("We tear down \the [src]."))
playsound(src, "alien_resin_break", 25)
take_damage(max_integrity)
@@ -102,7 +89,6 @@
to_chat(user, span_warning("You scrape ineffectively at \the [src]."))
return TRUE
-
/turf/closed/wall/resin/attackby(obj/item/I, mob/living/user, params)
if(I.flags_item & NOBLUDGEON || !isliving(user))
return
@@ -128,7 +114,6 @@
/turf/closed/wall/resin/dismantle_wall(devastated = 0, explode = 0)
ScrapeAway()
-
/turf/closed/wall/resin/ChangeTurf(newtype)
. = ..()
if(.)
@@ -145,7 +130,6 @@
*/
/turf/closed/wall/resin/regenerating
max_integrity = 150
-
/// Total health possible for a wall after regenerating at max health
var/max_upgradable_health = 300
/// How much the walls integrity heals per tick (5 seconds)
@@ -191,7 +175,6 @@
addtimer(CALLBACK(src, PROC_REF(start_healing)), cooldown_on_taking_dmg)
existingtimer = TRUE
-
/* Hivelord walls, they start off stronger */
/turf/closed/wall/resin/regenerating/thick
max_integrity = 250
diff --git a/code/game/turfs/walls/wall_types.dm b/code/game/turfs/walls/wall_types.dm
index aec922a5d5f..2be0c260f94 100644
--- a/code/game/turfs/walls/wall_types.dm
+++ b/code/game/turfs/walls/wall_types.dm
@@ -476,7 +476,7 @@
smoothing_groups = SMOOTH_GROUP_GENERAL_STRUCTURES
max_integrity = 9000//Strong, but only available to Hunters, can can still be blown up or melted by boilers.
-/turf/closed/wall/mineral/sandstone/runed/attack_alien(mob/living/carbon/xenomorph/user, damage_amount = user.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/turf/closed/wall/mineral/sandstone/runed/attack_alien(mob/living/carbon/xenomorph/user, damage_amount = user.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
visible_message("[user] scrapes uselessly against [src] with their claws.")
return
diff --git a/code/game/turfs/walls/walls.dm b/code/game/turfs/walls/walls.dm
index 2703f231575..61d19f73926 100644
--- a/code/game/turfs/walls/walls.dm
+++ b/code/game/turfs/walls/walls.dm
@@ -1,36 +1,25 @@
-
-
/turf/closed/wall
name = "wall"
desc = "A huge chunk of metal used to seperate rooms."
icon = 'icons/turf/walls/regular_wall.dmi'
icon_state = "metal-0"
+ base_icon_state = "metal"
baseturfs = /turf/open/floor/plating
opacity = TRUE
explosion_block = 2
-
walltype = "metal"
-
soft_armor = list(MELEE = 0, BULLET = 50, LASER = 50, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0)
-
var/wall_integrity
var/max_integrity = 1000 //Wall will break down to girders if damage reaches this point
-
var/damage_overlay
var/global/damage_overlays[8]
-
var/current_bulletholes = 0
var/bullethole_increment = 1
var/bullethole_state = 0
var/image/bullethole_overlay
- base_icon_state = "metal"
-
var/max_temperature = 1800 //K, walls will take damage if they're next to a fire hotter than this
-
var/d_state = 0 //Normal walls are now as difficult to remove as reinforced walls
-
var/obj/effect/acid_hole/acided_hole //the acid hole inside the wall
-
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = list(
SMOOTH_GROUP_CLOSED_TURFS,
@@ -59,7 +48,6 @@
visible_message(span_warning("\The [M] is sealed inside the wall as it is built"))
qdel(M)
-
/turf/closed/wall/ChangeTurf(newtype)
if(acided_hole)
qdel(acided_hole)
@@ -91,8 +79,6 @@
if(istype(O, /obj/alien/weeds))
qdel(O)
-
-
/turf/closed/wall/MouseDrop_T(mob/M, mob/user)
if(acided_hole)
if(M == user && isxeno(user))
@@ -100,18 +86,14 @@
return
..()
-
-/turf/closed/wall/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/turf/closed/wall/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- if(acided_hole && (X.mob_size == MOB_SIZE_BIG || X.xeno_caste.caste_flags & CASTE_IS_STRONG)) //Strong and/or big xenos can tear open acided walls
- acided_hole.expand_hole(X)
+ if(acided_hole && (xeno_attacker.mob_size == MOB_SIZE_BIG || xeno_attacker.xeno_caste.caste_flags & CASTE_IS_STRONG)) //Strong and/or big xenos can tear open acided walls
+ acided_hole.expand_hole(xeno_attacker)
else
return ..()
-
-
-
//Appearance
/turf/closed/wall/examine(mob/user)
. = ..()
@@ -216,7 +198,7 @@
damage_overlays[i] = img
///Applies damage to the wall
-/turf/closed/wall/proc/take_damage(damage_amount, damage_type = BRUTE, damage_flag = "", armour_penetration = 0)
+/turf/closed/wall/proc/take_damage(damage_amount, damage_type = BRUTE, damage_flag = MELEE, armour_penetration = 0)
if(resistance_flags & INDESTRUCTIBLE) //Hull is literally invincible
return
@@ -253,7 +235,6 @@
wall_integrity += repair_amount
update_icon()
-
/turf/closed/wall/proc/make_girder(destroyed_girder = FALSE)
var/obj/structure/girder/G = new /obj/structure/girder(src)
G.update_icon()
@@ -261,8 +242,6 @@
if(destroyed_girder)
G.deconstruct(FALSE)
-
-
// Devastated and Explode causes the wall to spawn a damaged girder
// Walls no longer spawn a metal sheet when destroyed to reduce clutter and
// improve visual readability.
@@ -275,10 +254,8 @@
make_girder(TRUE)
else
make_girder(FALSE)
-
ScrapeAway()
-
/turf/closed/wall/ex_act(severity, explosion_direction)
if(resistance_flags & INDESTRUCTIBLE)
return
@@ -319,7 +296,6 @@
take_damage(rand(25, 75))
return
-
/turf/closed/wall/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -327,11 +303,9 @@
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return
-//RUTGMC EDIT
else if(istype(I, /obj/item/frame/torch_frame))
var/obj/item/frame/torch_frame/AH = I
AH.try_build(src)
-//RUTGMC EDIT
else if(istype(I, /obj/item/frame/apc))
var/obj/item/frame/apc/AH = I
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 4170667653a..277b5cf98ef 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -14,30 +14,23 @@
light_range = 2
light_power = 0.5
light_color = LIGHT_COLOR_EMISSIVE_GREEN
-
var/autoeject = FALSE
var/release_notice = FALSE
-
var/temperature = 100
-
var/efficiency = 1
var/sleep_factor = 0.00125
var/unconscious_factor = 0.001
var/heat_capacity = 20000
var/conduction_coefficient = 0.3
-
var/obj/item/reagent_containers/glass/beaker = null
var/reagent_transfer = 0
-
var/obj/item/radio/headset/mainship/doc/radio
- var/idle_ticks_until_shutdown = 60 //Number of ticks permitted to elapse without a patient before the cryotube shuts itself off to save processing
-
+ ///Number of ticks permitted to elapse without a patient before the cryotube shuts itself off to save processing
+ var/idle_ticks_until_shutdown = 60
var/running_anim = FALSE
-
var/escape_in_progress = FALSE
var/message_cooldown
var/breakout_time = 300
-
var/mob/living/carbon/occupant
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize(mapload)
@@ -196,16 +189,13 @@
if(!idle_ticks_until_shutdown) //shut down after all ticks elapsed to conserve on processing
turn_off()
idle_ticks_until_shutdown = 60 //reset idle ticks
-
return TRUE
-
/obj/machinery/atmospherics/components/unary/cryo_cell/relaymove(mob/user)
if(message_cooldown <= world.time)
message_cooldown = world.time + 50
to_chat(user, span_warning("[src]'s door won't budge!"))
-
/obj/machinery/atmospherics/components/unary/cryo_cell/verb/move_eject()
set name = "Eject occupant"
set category = "Object"
@@ -240,9 +230,7 @@
beaker = I
-
var/reagentnames = ""
-
for(var/datum/reagent/R in beaker.reagents.reagent_list)
reagentnames += ", [R.name]"
@@ -440,18 +428,17 @@
/obj/machinery/atmospherics/components/unary/cryo_cell/can_crawl_through()
return // can't ventcrawl in or out of cryo.
-/obj/machinery/atmospherics/components/unary/cryo_cell/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/atmospherics/components/unary/cryo_cell/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
go_out()
-
#undef CRYOMOBS
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index e9f2af43baa..455b1df23f9 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -7,21 +7,16 @@
/obj/machinery/atmospherics/components/unary/vent_pump
icon_state = "vent_map-2"
-
name = "air vent"
desc = "Has a valve and pump attached to it."
-
use_power = IDLE_POWER_USE
can_unwrench = FALSE
welded = FALSE
level = 1
layer = ATMOS_DEVICE_LAYER
flags_atom = SHUTTLE_IMMUNE
-
var/pump_direction = RELEASING
-
var/pressure_checks = EXT_BOUND
-
var/radio_filter_out
var/radio_filter_in
@@ -62,7 +57,6 @@
else // pump_direction == SIPHONING
icon_state = "vent_in"
-
/obj/machinery/atmospherics/components/unary/vent_pump/weld_cut_act(mob/living/user, obj/item/W)
if(istype(W, /obj/item/tool/pickaxe/plasmacutter))
var/obj/item/tool/pickaxe/plasmacutter/P = W
@@ -118,7 +112,7 @@
to_chat(user, span_warning("You cannot unwrench [src], turn it off first!"))
return FALSE
-/obj/machinery/atmospherics/components/unary/vent_pump/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/machinery/atmospherics/components/unary/vent_pump/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(F.status_flags & INCORPOREAL)
return
if(!welded || !(do_after(F, 3 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE)))
@@ -135,7 +129,6 @@
if(welded)
. += span_notice("It seems welded shut.")
-
/obj/machinery/atmospherics/components/unary/vent_pump/power_change()
..()
update_icon_nopipes()
@@ -143,19 +136,18 @@
/obj/machinery/atmospherics/components/unary/vent_pump/can_crawl_through()
return !welded
-/obj/machinery/atmospherics/components/unary/vent_pump/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/atmospherics/components/unary/vent_pump/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- if(!welded || !(do_after(X, 2 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE)))
+ if(!welded || !(do_after(xeno_attacker, 2 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE)))
return
- X.visible_message("[X] furiously claws at [src]!", "We manage to clear away the stuff blocking the vent", "You hear loud scraping noises.")
+ xeno_attacker.visible_message("[xeno_attacker] furiously claws at [src]!", "We manage to clear away the stuff blocking the vent", "You hear loud scraping noises.")
welded = FALSE
update_icon()
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
pipe_vision_img.plane = ABOVE_HUD_PLANE
playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1)
-
/obj/machinery/atmospherics/components/unary/vent_pump/AltClick(mob/user)
if(!isliving(user))
return
@@ -166,7 +158,6 @@
var/mob/living/living_user = user
living_user.handle_ventcrawl(src)
-
/obj/machinery/atmospherics/components/unary/vent_pump/high_volume
name = "large air vent"
power_channel = EQUIP
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index 189be74dbd0..90a0932ee61 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -2,10 +2,9 @@
#define SCRUBBING 1
/obj/machinery/atmospherics/components/unary/vent_scrubber
- icon_state = "scrub_map-2"
-
name = "air scrubber"
desc = "Has a valve and pump attached to it."
+ icon_state = "scrub_map-2"
use_power = IDLE_POWER_USE
idle_power_usage = 10
active_power_usage = 60
@@ -15,7 +14,6 @@
layer = ATMOS_DEVICE_LAYER
flags_atom = SHUTTLE_IMMUNE
var/scrubbing = SCRUBBING //0 = siphoning, 1 = scrubbing
-
var/filter_types = list()///datum/gas/carbon_dioxide)
var/volume_rate = 200
var/widenet = 0 //is this scrubber acting on the 3x3 area around it.
@@ -119,7 +117,7 @@
to_chat(user, span_warning("You cannot unwrench [src], turn it off first!"))
return FALSE
-/obj/machinery/atmospherics/components/unary/vent_scrubber/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(F.status_flags & INCORPOREAL)
return
if(!welded || !(do_after(F, 3 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE)))
@@ -139,19 +137,18 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/can_crawl_through()
return !welded
-/obj/machinery/atmospherics/components/unary/vent_scrubber/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- if(!welded || !(do_after(X, 2 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE)))
+ if(!welded || !(do_after(xeno_attacker, 2 SECONDS, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE)))
return
- X.visible_message("[X] furiously claws at [src]!", "We manage to clear away the stuff blocking the scrubber.", "You hear loud scraping noises.")
+ xeno_attacker.visible_message("[xeno_attacker] furiously claws at [src]!", "We manage to clear away the stuff blocking the scrubber.", "You hear loud scraping noises.")
welded = FALSE
update_icon()
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
pipe_vision_img.plane = ABOVE_HUD_PLANE
playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1)
-
/obj/machinery/atmospherics/components/unary/vent_scrubber/AltClick(mob/user)
if(!isliving(user))
return
@@ -162,7 +159,6 @@
var/mob/living/living_user = user
living_user.handle_ventcrawl(src)
-
/obj/machinery/atmospherics/components/unary/vent_scrubber/on
on = TRUE
icon_state = "scrub_map_on-2"
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 15d0da6b33c..e8e04673f13 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -37,12 +37,12 @@
update_action_button_icons()
update_icon()
-/obj/item/clothing/head/hardhat/attack_alien(mob/living/carbon/xenomorph/X, isrightclick = FALSE)
- if(turn_light(X, FALSE) != CHECKS_PASSED)
+/obj/item/clothing/head/hardhat/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, isrightclick = FALSE)
+ if(turn_light(xeno_attacker, FALSE) != CHECKS_PASSED)
return
playsound(loc, "alien_claw_metal", 25, 1)
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- to_chat(X, span_warning("We disable the metal thing's lights.") )
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ to_chat(xeno_attacker, span_warning("We disable the metal thing's lights.") )
/obj/item/clothing/head/hardhat/update_icon()
. = ..()
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 17dfb785f91..456d0021a84 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -104,7 +104,7 @@
src.onfire = !( src.onfire )
if (src.onfire)
src.force = 3
- src.damtype = "fire"
+ src.damtype = FIRE
src.icon_state = "cake1"
START_PROCESSING(SSobj, src)
return
diff --git a/code/modules/clothing/modular_armor/combat_robot.dm b/code/modules/clothing/modular_armor/combat_robot.dm
index 34e1acaad31..55c9b6c5bb5 100644
--- a/code/modules/clothing/modular_armor/combat_robot.dm
+++ b/code/modules/clothing/modular_armor/combat_robot.dm
@@ -219,7 +219,7 @@
name = "\improper Urodela upper armor plating"
desc = "Heavy armor plating designed for self mounting on the upper half of TerraGov combat robotics. It has self-sealing bolts for mounting on robotic owners inside.The top armor made from fireproof glass-like material. This is done in order not to reduce the effectiveness of the robot's tracking modules. The glass itself can withstand high temperatures and a short stay in lava."
soft_armor = list(MELEE = 50, BULLET = 50, LASER = 80, ENERGY = 50, BOMB = 50, BIO = 50, FIRE = 100, ACID = 50)
- hard_armor = list("fire" = 200)
+ hard_armor = list(FIRE = 200)
icon_state = "robo_helm_fire"
item_state = "robo_helm_fire"
diff --git a/code/modules/condor/cas_chair.dm b/code/modules/condor/cas_chair.dm
index c33aadcc24e..8cef6c54ffb 100644
--- a/code/modules/condor/cas_chair.dm
+++ b/code/modules/condor/cas_chair.dm
@@ -121,7 +121,6 @@
playsound(loc, 'sound/effects/refill.ogg', 25, 1, 3)
to_chat(user, span_notice("You refill the plane with fuel. New fuel level [owner.fuel_left/owner.fuel_max*100]%"))
-
/obj/structure/caspart/caschair/resisted_against(datum/source)
if(owner.state)
ui_interact(occupant)
@@ -144,15 +143,15 @@
occupant.forceMove(get_step(loc, WEST))
occupant = null
-/obj/structure/caspart/caschair/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/structure/caspart/caschair/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!occupant)
- to_chat(X, span_xenowarning("There is nothing of interest in there."))
+ to_chat(xeno_attacker, span_xenowarning("There is nothing of interest in there."))
return
- if(X.status_flags & INCORPOREAL || X.do_actions)
+ if(xeno_attacker.status_flags & INCORPOREAL || xeno_attacker.do_actions)
return
- visible_message(span_warning("[X] begins to pry the [src]'s cover!"), 3)
+ visible_message(span_warning("[xeno_attacker] begins to pry the [src]'s cover!"), 3)
playsound(src,'sound/effects/metal_creaking.ogg', 25, 1)
- if(!do_after(X, 2 SECONDS))
+ if(!do_after(xeno_attacker, 2 SECONDS))
return
playsound(loc, 'sound/effects/metal_creaking.ogg', 25, 1)
eject_user(TRUE)
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index b9f48bc818e..0d262058677 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -8,7 +8,7 @@
var/mob/living/carbon/human/H = user
- if(user != src && !check_shields(COMBAT_TOUCH_ATTACK, H.melee_damage, "melee"))
+ if(user != src && !check_shields(COMBAT_TOUCH_ATTACK, H.melee_damage, MELEE))
visible_message(span_danger("[user] attempted to touch [src]!"), null, null, 5)
return FALSE
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 1ef669aa1a6..d2221a83d62 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -113,14 +113,12 @@ Contains most of the procs that are called when a mob is attacked by something
return FALSE
var/hit_area = affecting.display_name
-//RUTGMC EDIT ADDITION BEGIN - Preds
if((user != src) && check_pred_shields(I.force, "the [I.name]", backside_attack = dir == get_dir(get_turf(user), get_turf(src))))
return FALSE
-//RUTGMC EDIT ADDITION END
var/damage = I.force + round(I.force * MELEE_SKILL_DAM_BUFF * user.skills.getRating(SKILL_MELEE_WEAPONS))
if(user != src)
- damage = check_shields(COMBAT_MELEE_ATTACK, damage, "melee")
+ damage = check_shields(COMBAT_MELEE_ATTACK, damage, MELEE)
if(!damage)
log_combat(user, src, "attacked", I, "(FAILED: shield blocked) (INTENT: [uppertext(user.a_intent)]) (DAMTYE: [uppertext(I.damtype)])")
return TRUE
diff --git a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm
index 1c50877b5d4..681184d3fa3 100644
--- a/code/modules/mob/living/carbon/xenomorph/attack_alien.dm
+++ b/code/modules/mob/living/carbon/xenomorph/attack_alien.dm
@@ -17,16 +17,14 @@
return TRUE
/mob/living/carbon/human/attack_alien_grab(mob/living/carbon/xenomorph/X)
- if(check_shields(COMBAT_TOUCH_ATTACK, X.xeno_caste.melee_damage, "melee"))
+ if(check_shields(COMBAT_TOUCH_ATTACK, X.xeno_caste.melee_damage, MELEE))
return ..()
X.visible_message(span_danger("\The [X]'s grab is blocked by [src]'s shield!"),
span_danger("Our grab was blocked by [src]'s shield!"), null, 5)
playsound(loc, 'sound/weapons/alien_claw_block.ogg', 25, TRUE) //Feedback
return FALSE
-
/mob/living/proc/attack_alien_disarm(mob/living/carbon/xenomorph/X, dam_bonus)
-
SEND_SIGNAL(src, COMSIG_LIVING_MELEE_ALIEN_DISARMED, X)
X.do_attack_animation(src, ATTACK_EFFECT_DISARM2)
playsound(loc, 'sound/weapons/alien_knockdown.ogg', 25, TRUE)
@@ -86,7 +84,7 @@
armor_pen += i
if(!(signal_return & COMPONENT_BYPASS_SHIELDS))
- damage = check_shields(COMBAT_MELEE_ATTACK, damage, "melee")
+ damage = check_shields(COMBAT_MELEE_ATTACK, damage, MELEE)
if(!damage)
X.visible_message(span_danger("\The [X]'s slash is blocked by [src]'s shield!"),
@@ -152,7 +150,6 @@
spark_system.start(src)
playsound(loc, "alien_claw_metal", 25, TRUE)
-
/mob/living/carbon/xenomorph/attack_alien_harm(mob/living/carbon/xenomorph/X, dam_bonus, set_location = FALSE, random_location = FALSE, no_head = FALSE, no_crit = FALSE, force_intent = null)
if(issamexenohive(X))
X.visible_message(span_warning("\The [X] nibbles [src]."),
@@ -160,7 +157,6 @@
return FALSE
return ..()
-
/mob/living/carbon/human/attack_alien_harm(mob/living/carbon/xenomorph/X, dam_bonus, set_location = FALSE, random_location = FALSE, no_head = FALSE, no_crit = FALSE, force_intent = null)
if(isnestedhost(src) && stat != DEAD) //No more memeing nested and infected hosts
@@ -186,14 +182,11 @@
to_chat(X, span_warning("[src] is dead, why would we want to touch it?"))
return FALSE
-//RUTGMC EDIT ADDITION BEGIN - Preds
if(isyautja(src) && check_pred_shields(X.xeno_caste.melee_damage * X.xeno_melee_damage_modifier + dam_bonus, backside_attack = dir == get_dir(get_turf(X), get_turf(src)), xenomorph = TRUE))
return FALSE
-//RUTGMC EDIT ADDITION END
SEND_SIGNAL(X, COMSIG_XENOMORPH_ATTACK_HUMAN, src)
-//RUTGMC EDIT ADDITION BEGIN - Preds
if(wear_mask && X.zone_selected == "head" && istype(wear_mask, /obj/item/clothing/mask/gas/yautja) && prob(5))
playsound(loc, "alien_claw_metal", 25, 1)
X.visible_message(span_danger("The [X] smashes off [src]'s [wear_mask.name]!"), \
@@ -204,43 +197,42 @@
else
emote("scream")
return TRUE
-//RUTGMC EDIT ADDITION END
. = ..()
if(!.)
return FALSE
//Every other type of nonhuman mob //MARKER OVERRIDE
-/mob/living/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/mob/living/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- if (X.fortify || X.behemoth_charging)
+ if (xeno_attacker.fortify || xeno_attacker.behemoth_charging)
return FALSE
- SEND_SIGNAL(X, COMSIG_XENOMORPH_ATTACK_LIVING, src, damage_amount, X.xeno_caste.melee_damage * X.xeno_melee_damage_modifier)
+ SEND_SIGNAL(xeno_attacker, COMSIG_XENOMORPH_ATTACK_LIVING, src, damage_amount, xeno_attacker.xeno_caste.melee_damage * xeno_attacker.xeno_melee_damage_modifier)
- switch(X.a_intent)
+ switch(xeno_attacker.a_intent)
if(INTENT_HELP)
if(on_fire)
- X.visible_message(span_danger("[X] stares at [src]."), span_notice("We stare at the roasting [src], toasty."), null, 5)
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] stares at [src]."), span_notice("We stare at the roasting [src], toasty."), null, 5)
return FALSE
- X.visible_message(span_notice("\The [X] caresses [src] with its scythe-like arm."), \
+ xeno_attacker.visible_message(span_notice("\The [xeno_attacker] caresses [src] with its scythe-like arm."), \
span_notice("We caress [src] with our scythe-like arm."), null, 5)
return FALSE
if(INTENT_GRAB)
- return attack_alien_grab(X)
+ return attack_alien_grab(xeno_attacker)
if(INTENT_HARM, INTENT_DISARM)
- return attack_alien_harm(X)
+ return attack_alien_harm(xeno_attacker)
return FALSE
/mob/living/attack_larva(mob/living/carbon/xenomorph/larva/M)
M.visible_message(span_danger("[M] nudges its head against [src]."), \
span_danger("We nudge our head against [src]."), null, 5)
-/mob/living/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/mob/living/attack_facehugger(mob/living/carbon/xenomorph/facehugger/F, damage_amount = F.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(F.status_flags & INCORPOREAL)
return FALSE
switch(F.a_intent)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm b/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm
index a03a57f740e..1bed20235ac 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/facehugger/abilities_facehugger.dm
@@ -51,7 +51,7 @@
if(ishuman(living_target) && (angle_to_dir(Get_Angle(caster.throw_source, living_target)) in reverse_nearby_direction(living_target.dir)))
var/mob/living/carbon/human/human_target = living_target
- if(!human_target.check_shields(COMBAT_TOUCH_ATTACK, 30, "melee"))
+ if(!human_target.check_shields(COMBAT_TOUCH_ATTACK, 30, MELEE))
caster.Paralyze(HUGGER_POUNCE_SHIELD_STUN_DURATION)
caster.set_throwing(FALSE) //Reset throwing manually.
playsound(caster, 'sound/machines/bonk.ogg', 50, FALSE)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/gorger/abilities_gorger.dm b/code/modules/mob/living/carbon/xenomorph/castes/gorger/abilities_gorger.dm
index efc73cfe8be..9bfba85b2a0 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/gorger/abilities_gorger.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/gorger/abilities_gorger.dm
@@ -125,18 +125,6 @@
to_chat(owner_xeno, span_xenowarning("No need, we feel sated for now..."))
return FALSE
-#define DO_DRAIN_ACTION(owner_xeno, target_human) \
- owner_xeno.do_attack_animation(target_human, ATTACK_EFFECT_REDSTAB);\
- owner_xeno.visible_message(target_human, span_danger("[owner_xeno] stabs its tail into [target_human]!"));\
- playsound(target_human, "alien_claw_flesh", 25, TRUE);\
- target_human.emote("scream");\
- target_human.apply_damage(damage = 4, damagetype = BRUTE, def_zone = BODY_ZONE_HEAD, blocked = 0, sharp = TRUE, edge = FALSE, updating_health = TRUE);\
-\
- var/drain_healing = GORGER_DRAIN_HEAL;\
- HEAL_XENO_DAMAGE(owner_xeno, drain_healing, TRUE);\
- adjustOverheal(owner_xeno, drain_healing);\
- owner_xeno.gain_plasma(owner_xeno.xeno_caste.drain_plasma_gain)
-
/datum/action/ability/activable/xeno/drain/use_ability(mob/living/carbon/human/target_human)
var/mob/living/carbon/xenomorph/owner_xeno = owner
if(target_human.stat == DEAD)
@@ -155,14 +143,22 @@
if(!do_after(owner_xeno, GORGER_DRAIN_DELAY, IGNORE_HELD_ITEM, target_human))
break
target_human.blood_volume = max(target_human.blood_volume - 15, 0)
- DO_DRAIN_ACTION(owner_xeno, target_human)
+
+ owner_xeno.do_attack_animation(target_human, ATTACK_EFFECT_REDSTAB)
+ owner_xeno.visible_message(target_human, span_danger("[owner_xeno] stabs its tail into [target_human]!"))
+ playsound(target_human, "alien_claw_flesh", 25, TRUE)
+ target_human.emote("scream")
+ target_human.apply_damage(damage = 4, damagetype = BRUTE, def_zone = BODY_ZONE_HEAD, blocked = 0, sharp = TRUE, edge = FALSE, updating_health = TRUE)
+
+ var/drain_heal = GORGER_DRAIN_HEAL
+ HEAL_XENO_DAMAGE(owner_xeno, drain_heal, TRUE) // this define shitcoded proc errors if we have a define inside of a define
+ adjustOverheal(owner_xeno, drain_heal)
+ owner_xeno.gain_plasma(owner_xeno.xeno_caste.drain_plasma_gain)
REMOVE_TRAIT(owner_xeno, TRAIT_HANDS_BLOCKED, src)
target_human.blur_eyes(1)
add_cooldown()
-#undef DO_DRAIN_ACTION
-
/datum/action/ability/activable/xeno/drain/ai_should_use(atom/target)
return can_use_ability(target, TRUE)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm b/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm
index ed91d311059..f84625dfc0a 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm
@@ -94,7 +94,6 @@
qdel(hive_core)
return ..()
-
/mob/living/carbon/xenomorph/hivemind/on_death()
var/obj/structure/xeno/hivemindcore/hive_core = get_core()
if(!QDELETED(hive_core))
@@ -357,14 +356,14 @@
//hivemind cores
-/obj/structure/xeno/hivemindcore/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(isxenoqueen(X))
- var/choice = tgui_alert(X, "Are you sure you want to destroy the hivemind?", "Destroy hivemind", list("Yes", "Cancel"))
+/obj/structure/xeno/hivemindcore/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(isxenoqueen(xeno_attacker))
+ var/choice = tgui_alert(xeno_attacker, "Are you sure you want to destroy the hivemind?", "Destroy hivemind", list("Yes", "Cancel"))
if(choice == "Yes")
deconstruct(FALSE)
return
- X.visible_message(span_danger("[X] nudges its head against [src]."), \
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] nudges its head against [src]."), \
span_danger("You nudge your head against [src]."))
/obj/structure/xeno/hivemindcore/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir, armour_penetration)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm b/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm
index 49190f5f764..ce9c339e5af 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/hunter/abilities_hunter.dm
@@ -354,7 +354,7 @@
var/mob/living/carbon/xenomorph/xeno_owner = owner
if(ishuman(living_target) && (angle_to_dir(Get_Angle(xeno_owner.throw_source, living_target)) in reverse_nearby_direction(living_target.dir)))
var/mob/living/carbon/human/human_target = living_target
- if(!human_target.check_shields(COMBAT_TOUCH_ATTACK, 30, "melee"))
+ if(!human_target.check_shields(COMBAT_TOUCH_ATTACK, 30, MELEE))
xeno_owner.Paralyze(XENO_POUNCE_SHIELD_STUN_DURATION)
xeno_owner.set_throwing(FALSE)
playsound(xeno_owner, 'sound/machines/bonk.ogg', 50, FALSE)
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/spiderling/spiderling.dm b/code/modules/mob/living/carbon/xenomorph/castes/spiderling/spiderling.dm
index f2ecf279d0e..c1952454be3 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/spiderling/spiderling.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/spiderling/spiderling.dm
@@ -50,7 +50,7 @@
return ..()
///If we're covering our widow, any clicks should be transferred to them
-/mob/living/carbon/xenomorph/spiderling/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/mob/living/carbon/xenomorph/spiderling/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
if(!get_dist(src, spidermother) && isxeno(x))
spidermother.attack_alien(X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
return
diff --git a/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.dm b/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.dm
index 73e8dade2c2..e402616164a 100644
--- a/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.dm
+++ b/code/modules/mob/living/carbon/xenomorph/castes/widow/abilities_widow.dm
@@ -108,7 +108,7 @@
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
/// This is so that xenos can remove leash balls
-/obj/structure/xeno/aoe_leash/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/structure/xeno/aoe_leash/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(X.status_flags & INCORPOREAL)
return
X.visible_message(span_xenonotice("\The [X] starts tearing down \the [src]!"), \
diff --git a/code/modules/mob/living/carbon/xenomorph/egg.dm b/code/modules/mob/living/carbon/xenomorph/egg.dm
index 24efd97544d..9361503d680 100644
--- a/code/modules/mob/living/carbon/xenomorph/egg.dm
+++ b/code/modules/mob/living/carbon/xenomorph/egg.dm
@@ -173,7 +173,7 @@
hugger_type = null
hugger.go_active()
-/obj/alien/egg/hugger/attack_alien(mob/living/carbon/xenomorph/xenomorph, damage_amount = xenomorph.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/alien/egg/hugger/attack_alien(mob/living/carbon/xenomorph/xenomorph, damage_amount = xenomorph.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(xenomorph.status_flags & INCORPOREAL)
return FALSE
@@ -288,7 +288,7 @@
NS.set_up(spread, get_turf(src))
NS.start()
-/obj/alien/egg/gas/attack_alien(mob/living/carbon/xenomorph/xenomorph, damage_amount = xenomorph.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/alien/egg/gas/attack_alien(mob/living/carbon/xenomorph/xenomorph, damage_amount = xenomorph.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(maturity_stage > stage_ready_to_burst)
xenomorph.visible_message(span_xenonotice("\The [xenomorph] clears the hatched egg."), \
span_xenonotice("We clear the broken egg."))
diff --git a/code/modules/mob/living/carbon/xenomorph/facehuggers.dm b/code/modules/mob/living/carbon/xenomorph/facehuggers.dm
index a32a82a5af2..7de6a01cac9 100644
--- a/code/modules/mob/living/carbon/xenomorph/facehuggers.dm
+++ b/code/modules/mob/living/carbon/xenomorph/facehuggers.dm
@@ -27,7 +27,6 @@
worn_layer = FACEHUGGER_LAYER
layer = FACEHUGGER_LAYER
pass_flags = PASS_XENO
-
///Whether the hugger is dead, active or inactive
var/stat = CONSCIOUS
///"Freezes" the hugger in for example, eggs
@@ -63,7 +62,6 @@
///Time to become active after moving into the facehugger's space.
var/proximity_time = 0.75 SECONDS
-
/obj/item/clothing/mask/facehugger/Initialize(mapload, input_hivenumber, input_source)
. = ..()
if(stat == CONSCIOUS)
@@ -115,20 +113,19 @@
else
icon_state = "[initial(icon_state)]"
-
//Deal with picking up facehuggers. "attack_alien" is the universal 'xenos click something while unarmed' proc.
-/obj/item/clothing/mask/facehugger/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/item/clothing/mask/facehugger/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- if(!issamexenohive(X) && stat != DEAD)
- X.do_attack_animation(src, ATTACK_EFFECT_SMASH)
- X.visible_message("[X] crushes \the [src]",
- "We crush \the [src]")
+ if(!issamexenohive(xeno_attacker) && stat != DEAD)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_SMASH)
+ xeno_attacker.visible_message(span_xenowarning("[xeno_attacker] crushes \the [src]"),
+ span_xenowarning("We crush \the [src]"))
kill_hugger()
return
else
- attack_hand(X)
+ attack_hand(xeno_attacker)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/mask/facehugger/attack_hand(mob/living/user)
@@ -474,7 +471,6 @@
/////////////////////////////
// ATTACHING AND IMPREGNATION
//////////////////////////////
-//RUTGMC EDIT BEGIN - Moved to modular_RUtgmc\code\modules\mob\living\carbon\xenomorph\facehuggers.dm
/obj/item/clothing/mask/facehugger/proc/Attach(mob/living/carbon/M, can_catch = TRUE)
set_throwing(FALSE)
@@ -559,13 +555,11 @@
reset_attach_status(FALSE)
return
if(ishuman(user))
-//RUTGMC EDIT ADDITION BEGIN - Preds
var/hugsound
if(isyautja(user))
hugsound = get_sfx("pred_hugged")
else
hugsound = user.gender == FEMALE ? get_sfx("female_hugged") : get_sfx("male_hugged")
-//RUTGMC EDIT ADDITION END
playsound(loc, hugsound, 25, 0)
if(!sterile && !issynth(user))
var/stamina_dmg = user.maxHealth + user.max_stamina
@@ -589,14 +583,12 @@
if(source?.client)
var/datum/personal_statistics/personal_statistics = GLOB.personal_statistics_list[source.ckey]
personal_statistics.impregnations++
-//RUTGMC EDIT ADDITION BEGIN - Preds
if(isyautja(target))
var/datum/hive_status/hive = GLOB.hive_datums[embryo.hivenumber]
if(!istype(hive))
return
hive.max_thick_nests++
xeno_message("The hive senses that a headhunter has been infected! The thick resin nest is now available in the mother's blessing!", hivenumber = hive.hivenumber)
-//RUTGMC EDIT ADDITION END
sterile = TRUE
kill_hugger()
else
@@ -615,7 +607,6 @@
if(isxenofacehugger(source) && as_planned)
dropped(target)
-
/obj/item/clothing/mask/facehugger/proc/kill_hugger(melt_timer = 1 MINUTES)
reset_attach_status()
@@ -694,7 +685,6 @@
source.death()
qdel(src)
-
/////////////////////////////
// SUBTYPES
/////////////////////////////
@@ -706,7 +696,6 @@
. = ..()
update_icon()
-
/obj/item/clothing/mask/facehugger/dead
desc = "It has some sort of a tube at the end of its tail. What the hell is this thing?"
name = "????"
@@ -717,7 +706,6 @@
. = ..()
update_icon()
-
/obj/item/clothing/mask/facehugger/larval
name = "larval hugger"
@@ -727,7 +715,6 @@
combat_hugger = TRUE
flags_equip_slot = NONE
-
/obj/item/clothing/mask/facehugger/combat/neuro
name = "neuro hugger"
desc = "This strange creature has a single prominent sharp proboscis."
@@ -773,7 +760,6 @@
if(!locate(/obj/effect/xenomorph/spray) in acid_tile.contents)
new /obj/effect/xenomorph/spray(acid_tile, 6 SECONDS, 16)
-
var/datum/effect_system/smoke_spread/xeno/acid/light/A = new(get_turf(src)) //Spawn acid smoke
A.set_up(1,src)
A.start()
@@ -781,7 +767,6 @@
return TRUE
-
/obj/item/clothing/mask/facehugger/combat/resin
name = "resin hugger"
desc = "This truly bizzare, bloated creature drips with purple, viscous resin."
@@ -814,7 +799,6 @@
return TRUE
-
/obj/item/clothing/mask/facehugger/combat/slash
name = "clawed hugger"
desc = "This nasty little creature is a nightmarish scrabble of muscle and sharp, long claws."
@@ -850,7 +834,6 @@
var/mob/living/carbon/xenomorph/X = M
if(hivenumber == X.hive.hivenumber) //No friendly fire
return FALSE
-
return TRUE
#undef FACEHUGGER_DEATH
diff --git a/code/modules/mob/living/carbon/xenomorph/xenoattacks.dm b/code/modules/mob/living/carbon/xenomorph/xenoattacks.dm
index 1d4795b3b32..23a82232944 100644
--- a/code/modules/mob/living/carbon/xenomorph/xenoattacks.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xenoattacks.dm
@@ -17,7 +17,6 @@
UPDATEHEALTH(src)
log_combat(S, src, "attacked")
-
/mob/living/carbon/xenomorph/attack_hand(mob/living/user)
. = ..()
if(.)
@@ -66,48 +65,47 @@
visible_message(span_danger("[H] [pick(attack.attack_verb)]ed [src]!"), null, null, 5)
apply_damage(melee_damage + attack.damage, BRUTE, blocked = MELEE, updating_health = TRUE)
-
//Hot hot Aliens on Aliens action.
//Actually just used for eating people.
-/mob/living/carbon/xenomorph/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(status_flags & INCORPOREAL || X.status_flags & INCORPOREAL) //Incorporeal xenos cannot attack or be attacked
+/mob/living/carbon/xenomorph/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(status_flags & INCORPOREAL || xeno_attacker.status_flags & INCORPOREAL) //Incorporeal xenos cannot attack or be attacked
return
- if(src == X)
+ if(src == xeno_attacker)
return TRUE
- if(isxenolarva(X)) //Larvas can't eat people
- X.visible_message(span_danger("[X] nudges its head against \the [src]."), \
+ if(isxenolarva(xeno_attacker)) //Larvas can't eat people
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] nudges its head against \the [src]."), \
span_danger("We nudge our head against \the [src]."))
return FALSE
- switch(X.a_intent)
+ switch(xeno_attacker.a_intent)
if(INTENT_HELP)
if(on_fire)
fire_stacks = max(fire_stacks - 1, 0)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7)
- X.visible_message(span_danger("[X] tries to put out the fire on [src]!"), \
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] tries to put out the fire on [src]!"), \
span_warning("We try to put out the fire on [src]!"), null, 5)
if(fire_stacks <= 0)
- X.visible_message(span_danger("[X] has successfully extinguished the fire on [src]!"), \
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] has successfully extinguished the fire on [src]!"), \
span_notice("We extinguished the fire on [src]."), null, 5)
ExtinguishMob()
return TRUE
- X.visible_message(span_notice("\The [X] caresses \the [src] with its scythe-like arm."), \
+ xeno_attacker.visible_message(span_notice("\The [xeno_attacker] caresses \the [src] with its scythe-like arm."), \
span_notice("We caress \the [src] with our scythe-like arm."), null, 5)
if(INTENT_DISARM)
- X.do_attack_animation(src, ATTACK_EFFECT_DISARM)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_DISARM)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7)
- if(!issamexenohive(X))
+ if(!issamexenohive(xeno_attacker))
return FALSE
- if(X.tier != XENO_TIER_FOUR && !X.queen_chosen_lead)
+ if(xeno_attacker.tier != XENO_TIER_FOUR && !xeno_attacker.queen_chosen_lead)
return FALSE
- if((isxenoqueen(src) || queen_chosen_lead) && !isxenoqueen(X))
+ if((isxenoqueen(src) || queen_chosen_lead) && !isxenoqueen(xeno_attacker))
return FALSE
- X.visible_message("\The [X] shoves \the [src] out of her way!", \
+ xeno_attacker.visible_message("\The [xeno_attacker] shoves \the [src] out of her way!", \
span_warning("You shove \the [src] out of your way!"), null, 5)
apply_effect(1 SECONDS, WEAKEN)
return TRUE
@@ -115,34 +113,34 @@
if(INTENT_GRAB)
if(anchored)
return FALSE
- if(!X.start_pulling(src))
+ if(!xeno_attacker.start_pulling(src))
return FALSE
- X.visible_message(span_warning("[X] grabs \the [src]!"), \
+ xeno_attacker.visible_message(span_warning("[xeno_attacker] grabs \the [src]!"), \
span_warning("We grab \the [src]!"), null, 5)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7)
if(INTENT_HARM)//Can't slash other xenos for now. SORRY // You can now! --spookydonut
- if(issamexenohive(X) && !HAS_TRAIT(src, TRAIT_BANISHED))
- X.do_attack_animation(src)
- X.visible_message(span_warning("\The [X] nibbles \the [src]."), \
+ if(issamexenohive(xeno_attacker) && !HAS_TRAIT(src, TRAIT_BANISHED))
+ xeno_attacker.do_attack_animation(src)
+ xeno_attacker.visible_message(span_warning("\The [xeno_attacker] nibbles \the [src]."), \
span_warning("We nibble \the [src]."), null, 5)
return TRUE
// copypasted from attack_alien.dm
//From this point, we are certain a full attack will go out. Calculate damage and modifiers
- var/damage = X.xeno_caste.melee_damage
+ var/damage = xeno_attacker.xeno_caste.melee_damage
//Somehow we will deal no damage on this attack
if(!damage)
- X.do_attack_animation(src)
- playsound(X.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1)
- X.visible_message(span_danger("\The [X] lunges at [src]!"), \
+ xeno_attacker.do_attack_animation(src)
+ playsound(xeno_attacker.loc, 'sound/weapons/alien_claw_swipe.ogg', 25, 1)
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] lunges at [src]!"), \
span_danger("We lunge at [src]!"), null, 5)
return FALSE
- X.visible_message(span_danger("\The [X] slashes [src]!"), \
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] slashes [src]!"), \
span_danger("We slash [src]!"), null, 5)
- log_combat(X, src, "slashed")
+ log_combat(xeno_attacker, src, "slashed")
- X.do_attack_animation(src, ATTACK_EFFECT_REDSLASH)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_REDSLASH)
playsound(loc, "alien_claw_flesh", 25, 1)
apply_damage(damage, BRUTE, blocked = MELEE, updating_health = TRUE)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 8fdd40846c2..c4300144f6c 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -217,7 +217,7 @@
S.reagents?.reaction(src, TOUCH, S.fraction)
return protection
-/mob/living/proc/check_shields(attack_type, damage, damage_type = "melee", silent, penetration = 0)
+/mob/living/proc/check_shields(attack_type, damage, damage_type = MELEE, silent, penetration = 0)
if(!damage)
stack_trace("check_shields called without a damage value")
return 0
diff --git a/code/modules/mob/living/simple_animal/friendly/parrot.dm b/code/modules/mob/living/simple_animal/friendly/parrot.dm
index cf94b7f4e53..5c7776c7e88 100644
--- a/code/modules/mob/living/simple_animal/friendly/parrot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/parrot.dm
@@ -6,9 +6,7 @@
#define PARROT_RETURN (1<<5) //Flying towards its perch
#define PARROT_FLEE (1<<6) //Flying away from its attacker
-GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
- /datum/strippable_item/parrot_headset
-)))
+GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(/datum/strippable_item/parrot_headset)))
/mob/living/simple_animal/parrot
name = "parrot"
@@ -71,7 +69,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
/obj/machinery/recharge_station, /obj/machinery/smartfridge, /obj/machinery/suit_storage_unit)
var/obj/item/held_item = null
-
/mob/living/simple_animal/parrot/Initialize(mapload)
. = ..()
if(!ears)
@@ -94,12 +91,10 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
return ..()
-
/mob/living/simple_animal/parrot/get_status_tab_items()
. = ..()
. += "Held Item: [held_item]"
-
/mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode)
. = ..()
if(speaker != src && prob(50)) //Dont imitate ourselves
@@ -110,7 +105,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(speaker == src && !client) //If a parrot squawks in the woods and no one is around to hear it, does it make a sound? This code says yes!
return message
-
/mob/living/simple_animal/parrot/radio(message, message_mode, list/spans, language) //literally copied from human/radio(), but there's no other way to do this. at least it's better than it used to be.
. = ..()
if(. != 0)
@@ -156,9 +150,8 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(stat != DEAD && user.a_intent == INTENT_HELP)
handle_automated_speech(1) //assured speak/emote
-/mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- return attack_hand(X)
-
+/mob/living/simple_animal/parrot/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ return attack_hand(xeno_attacker)
/mob/living/simple_animal/parrot/attack_animal(mob/living/simple_animal/M)
. = ..() //goodbye immortal parrots
@@ -174,7 +167,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
parrot_state = PARROT_SWOOP | PARROT_ATTACK //Attack other animals regardless
icon_state = icon_living
-
/mob/living/simple_animal/parrot/bullet_act(obj/projectile/Proj)
. = ..()
if(!stat && !client)
@@ -187,7 +179,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
icon_state = icon_living
drop_held_item(0)
-
/mob/living/simple_animal/parrot/Life()
. = ..()
@@ -198,16 +189,13 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
-
/mob/living/simple_animal/parrot/handle_automated_speech()
. = ..()
if(length(speech_buffer) && prob(speech_shuffle_rate)) //shuffle out a phrase and add in a new one
if(length(speak))
speak -= pick(speak)
-
speak += pick(speech_buffer)
-
/mob/living/simple_animal/parrot/handle_automated_movement()
if(!isturf(loc) || !canmove || buckled)
return
@@ -256,7 +244,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
newspeak.Add(possible_phrase)
speak = newspeak
-
else if(parrot_state == PARROT_WANDER)
//Stop movement, we'll set it later
walk(src, 0)
@@ -317,7 +304,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
walk_to(src, parrot_interest, 1, parrot_speed)
-
else if(parrot_state == (PARROT_SWOOP|PARROT_RETURN))
walk(src, 0)
if(!parrot_perch || !isturf(parrot_perch.loc)) //Make sure the perch exists and somehow isnt inside of something else.
@@ -354,7 +340,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
melee_damage = parrot_damage_upper
a_intent = INTENT_HARM
-
if(!Adjacent(parrot_interest))
walk_to(src, parrot_interest, 1, parrot_speed)
return
@@ -380,7 +365,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
drop_held_item()
parrot_state = PARROT_WANDER
-
/mob/living/simple_animal/parrot/proc/steal_from_ground()
for(var/obj/item/I in view(1, src))
//Make sure we're not already holding it and it's small enough
@@ -403,7 +387,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
return O
return null
-
//This proc was made to save on doing two 'in view' loops seperatly
/mob/living/simple_animal/parrot/proc/search_for_perch_and_item()
for(var/atom/movable/AM in view(src))
@@ -419,10 +402,8 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
var/obj/item/I = AM
if(I.w_class <= WEIGHT_CLASS_SMALL)
return I
-
return null
-
/mob/living/simple_animal/parrot/Moved(oldLoc, dir)
. = ..()
if(. && !stat && client && parrot_state == PARROT_PERCH)
@@ -431,7 +412,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
-
/mob/living/simple_animal/parrot/Poly
name = "Poly"
desc = "Poly the Parrot. An expert on quantum cracker theory."
@@ -440,7 +420,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
voice_filter = "rubberband=pitch=1.5"
var/memory_saved = FALSE
-
/mob/living/simple_animal/parrot/Poly/Initialize(mapload)
ears = new /obj/item/radio/headset/mainship/st(src)
available_channels = list(RADIO_TOKEN_ENGINEERING)
@@ -456,14 +435,12 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
voice_filter = "rubberband=pitch=1.5" // Use the filter to pitch up if we can't naturally pitch up.
return ..()
-
/mob/living/simple_animal/parrot/Poly/Life()
if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved)
Write_Memory(FALSE)
memory_saved = TRUE
return ..()
-
/mob/living/simple_animal/parrot/Poly/on_death()
if(!memory_saved)
Write_Memory(TRUE)
@@ -475,7 +452,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
G.key = key
return ..()
-
/mob/living/simple_animal/parrot/Poly/proc/Read_Memory()
if(fexists("data/npc_saves/Poly.sav")) //legacy compatability to convert old format to new
var/savefile/S = new /savefile("data/npc_saves/Poly.sav")
@@ -490,7 +466,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(!islist(speech_buffer))
speech_buffer = list()
-
/mob/living/simple_animal/parrot/Poly/proc/Write_Memory(dead)
var/json_file = file("data/npc_saves/Poly.json")
var/list/file_data = list()
@@ -499,7 +474,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
-
/mob/living/simple_animal/parrot/Poly/ghost
name = "The Ghost of Poly"
desc = "Doomed to squawk the Earth."
@@ -508,18 +482,15 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
status_flags = GODMODE
resistance_flags = RESIST_ALL
-
/mob/living/simple_animal/parrot/Poly/ghost/Initialize(mapload)
memory_saved = TRUE
return ..()
-
/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_speech()
if(ismob(loc))
return
return ..()
-
/mob/living/simple_animal/parrot/Poly/ghost/handle_automated_movement()
if(isliving(parrot_interest))
if(!ishuman(parrot_interest))
@@ -528,7 +499,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
walk_to(src, parrot_interest, 0, parrot_speed)
return ..()
-
/mob/living/simple_animal/parrot/clock_hawk
name = "clock hawk"
desc = "Cbyl jnaan penpxre! Fdhnnnjx!"
@@ -601,7 +571,6 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(RADIO_CHANNEL_DELTA)
parrot_source.available_channels.Add(RADIO_TOKEN_DELTA)
-
/datum/strippable_item/parrot_headset/start_unequip(atom/source, mob/user)
. = ..()
if(!.)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index cc91d83a31e..15789f4e7f1 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -61,7 +61,6 @@
if(speed)
update_simplemob_varspeed()
-
/mob/living/simple_animal/Destroy()
GLOB.simple_animals[AIStatus] -= src
@@ -74,12 +73,10 @@
return ..()
-
/mob/living/simple_animal/updatehealth()
. = ..()
health = clamp(health, 0, maxHealth)
-
/mob/living/simple_animal/update_stat()
if(status_flags & GODMODE)
return
@@ -90,7 +87,6 @@
set_stat(CONSCIOUS)
med_hud_set_status()
-
/mob/living/simple_animal/revive(admin_revive = FALSE)
. = ..()
icon = initial(icon)
@@ -98,31 +94,24 @@
density = initial(density)
set_resting(FALSE)
-
/mob/living/simple_animal/blind_eyes()
return
-
/mob/living/simple_animal/adjust_blindness()
return
-
/mob/living/simple_animal/set_blindness()
return
-
/mob/living/simple_animal/blur_eyes()
return
-
/mob/living/simple_animal/adjust_blurriness()
return
-
/mob/living/simple_animal/set_blurriness()
return
-
/mob/living/simple_animal/death(gibbing, deathmessage, silent)
if(stat == DEAD)
return ..()
@@ -131,7 +120,6 @@
silent = TRUE //No need to for the parent to deathmessage again.
return ..()
-
/mob/living/simple_animal/on_death()
health = 0
icon_state = icon_dead
@@ -143,24 +131,20 @@
if(del_on_death && !QDELETED(src))
qdel(src)
-
/mob/living/simple_animal/gib_animation()
if(!icon_gib)
return
new /obj/effect/overlay/temp/gib_animation/animal(loc, 0, src, icon_gib)
-
/mob/living/simple_animal/proc/set_varspeed(var_value)
speed = var_value
update_simplemob_varspeed()
-
/mob/living/simple_animal/proc/update_simplemob_varspeed()
if(speed == 0)
remove_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE)
add_movespeed_modifier(MOVESPEED_ID_SIMPLEMOB_VARSPEED, TRUE, 100, multiplicative_slowdown = speed, override = TRUE)
-
/mob/living/simple_animal/update_transform()
var/matrix/ntransform = matrix(transform) //aka transform.Copy()
var/changed = FALSE
@@ -196,31 +180,28 @@
log_combat(user, src, "attacked")
return TRUE
-
-/mob/living/simple_animal/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/mob/living/simple_animal/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
. = ..()
if(!.)
return
- if(X.a_intent == INTENT_DISARM)
+ if(xeno_attacker.a_intent == INTENT_DISARM)
playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1)
- visible_message(span_danger("[X] [response_disarm] [name]!"), \
- span_userdanger("[X] [response_disarm] [name]!"))
- log_combat(X, src, "disarmed")
+ visible_message(span_danger("[xeno_attacker] [response_disarm] [name]!"), \
+ span_userdanger("[xeno_attacker] [response_disarm] [name]!"))
+ log_combat(xeno_attacker, src, "disarmed")
else
var/damage = rand(15, 30)
- visible_message(span_danger("[X] has slashed at [src]!"), \
- span_userdanger("[X] has slashed at [src]!"))
+ visible_message(span_danger("[xeno_attacker] has slashed at [src]!"), \
+ span_userdanger("[xeno_attacker] has slashed at [src]!"))
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
attack_threshold_check(damage)
- log_combat(X, src, "attacked")
+ log_combat(xeno_attacker, src, "attacked")
return TRUE
-
/mob/living/simple_animal/get_status_tab_items()
. = ..()
. += "Health: [round((health / maxHealth) * 100)]%"
-
/mob/living/simple_animal/ex_act(severity)
flash_act()
@@ -231,18 +212,15 @@
adjustBruteLoss(severity / 3)
UPDATEHEALTH(src)
-
/mob/living/simple_animal/get_idcard(hand_first)
return access_card
-
/mob/living/simple_animal/say_mod(input, message_mode, datum/language/language)
if(length(speak_emote))
verb_say = pick(speak_emote)
return ..()
-
-/mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype = BRUTE, armorcheck = "melee")
+/mob/living/simple_animal/proc/attack_threshold_check(damage, damagetype = BRUTE, armorcheck = MELEE)
var/temp_damage = damage
if(!damage_coeff[damagetype])
temp_damage = 0
@@ -257,7 +235,6 @@
UPDATEHEALTH(src)
return TRUE
-
/mob/living/simple_animal/proc/toggle_ai(togglestatus)
if(!can_have_ai && (togglestatus != AI_OFF))
return
@@ -275,14 +252,12 @@
else
stack_trace("Something attempted to set simple animals AI to an invalid state: [togglestatus]")
-
/mob/living/simple_animal/onTransitZ(old_z, new_z)
. = ..()
if(AIStatus == AI_Z_OFF)
SSidlenpcpool.idle_mobs_by_zlevel[old_z] -= src
toggle_ai(initial(AIStatus))
-
/mob/living/simple_animal/proc/handle_automated_action()
set waitfor = FALSE
return
@@ -300,7 +275,6 @@
turns_since_move = 0
return TRUE
-
/mob/living/simple_animal/proc/handle_automated_speech(override)
set waitfor = FALSE
if(speak_chance)
@@ -336,7 +310,6 @@
else
emote("me", 2, pick(emote_hear))
-
/mob/living/simple_animal/proc/CanAttack(atom/the_target)
if(see_invisible < the_target.invisibility)
return FALSE
@@ -350,12 +323,10 @@
return FALSE
return TRUE
-
/mob/living/simple_animal/proc/consider_wakeup()
if(pulledby || shouldwakeup)
toggle_ai(AI_ON)
-
/mob/living/simple_animal/proc/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
if(!forced && (status_flags & GODMODE))
return FALSE
diff --git a/code/modules/organs/limbs.dm b/code/modules/organs/limbs.dm
index a50d8fc5044..556040c27cb 100644
--- a/code/modules/organs/limbs.dm
+++ b/code/modules/organs/limbs.dm
@@ -1137,15 +1137,15 @@ Note that amputating the affected organ does in fact remove the infection from t
/datum/limb/head/take_damage_limb(brute, burn, sharp, edge, blocked = 0, updating_health = FALSE, list/forbidden_limbs = list())
. = ..()
- if (!disfigured)
- if (brute_dam > 40)
- if (prob(50))
+ if(!disfigured)
+ if(brute_dam > 40)
+ if(prob(50))
disfigure(BRUTE)
- if (burn_dam > 40)
- disfigure("burn")
+ if(burn_dam > 40)
+ disfigure(BURN)
/datum/limb/head/proc/disfigure(type = BRUTE)
- if (disfigured)
+ if(disfigured)
return
if(type == BRUTE)
owner.visible_message(span_warning(" You hear a sickening cracking sound coming from \the [owner]'s face."), \
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 97519ad9e13..5327936f159 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -23,7 +23,6 @@
//May be opened to change power cell
//Three different channels (lighting/equipment/environ) - may each be set to on, off, or auto
-
/obj/machinery/power/apc
name = "area power controller"
desc = "A control terminal for the area electrical systems."
@@ -144,7 +143,6 @@
cell.charge = start_charge * cell.maxcharge / 100.0 //Convert percentage to actual value
cell.update_icon()
-
make_terminal()
update() //areas should be lit on startup
@@ -176,13 +174,11 @@
if(cell)
RegisterSignal(cell, COMSIG_QDELETING, PROC_REF(on_cell_deletion))
-
///Called by the deletion of the referenced powercell.
/obj/machinery/power/apc/proc/on_cell_deletion(obj/item/cell/source, force)
SIGNAL_HANDLER
set_cell(null)
-
/obj/machinery/power/apc/proc/make_terminal()
//Create a terminal object at the same position as original turf loc
//Wires will attach to this
@@ -326,13 +322,13 @@
/obj/machinery/power/apc/proc/queue_icon_update()
updating_icon = TRUE
-/obj/machinery/power/apc/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/power/apc/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
if(effects)
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- X.visible_message(span_danger("[X] slashes \the [src]!"), \
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.visible_message(span_danger("[xeno_attacker] slashes \the [src]!"), \
span_danger("We slash \the [src]!"), null, 5)
playsound(loc, "alien_claw_metal", 25, 1)
@@ -347,8 +343,8 @@
wires.cut_all()
update_icon()
visible_message(span_danger("\The [src]'s wires snap apart in a rain of sparks!"), null, null, 5)
- if(X.client)
- var/datum/personal_statistics/personal_statistics = GLOB.personal_statistics_list[X.ckey]
+ if(xeno_attacker.client)
+ var/datum/personal_statistics/personal_statistics = GLOB.personal_statistics_list[xeno_attacker.ckey]
personal_statistics.apcs_slashed++
else
beenhit += 1
@@ -377,8 +373,8 @@
return
set_cell(I)
- user.visible_message("[user] inserts [I] into [src]!",
- "You insert [I] into [src]!")
+ user.visible_message(span_notice("[user] inserts [I] into [src]!"),
+ span_notice("You insert [I] into [src]!"))
chargecount = 0
update_icon()
@@ -524,7 +520,6 @@
return attack_hand(user)
balloon_alert_to_viewers("Hits [src] with [I]")
-
/obj/machinery/power/apc/crowbar_act(mob/user, obj/item/I)
. = TRUE
if(opened)
@@ -566,7 +561,6 @@
update_icon()
return
-
/obj/machinery/power/apc/screwdriver_act(mob/living/user, obj/item/I)
. = ..()
if(.)
@@ -608,13 +602,11 @@
balloon_alert(user, "wires [CHECK_BITFIELD(machine_stat, PANEL_OPEN) ? "exposed" : "unexposed"]")
update_icon()
-
/obj/machinery/power/apc/wirecutter_act(mob/living/user, obj/item/I)
if(terminal && opened)
terminal.deconstruct(user)
return TRUE
-
/obj/machinery/power/apc/welder_act(mob/living/user, obj/item/I)
if(!opened || has_electronics || terminal)
return
@@ -641,14 +633,12 @@
qdel(src)
return TRUE
-
//Attack with hand - remove cell (if cover open) or interact with the APC
/obj/machinery/power/apc/attack_hand(mob/living/user)
. = ..()
if(.)
return
-//RUTGMC EDIT ADDITION BEGIN - Preds
if(!ishuman(user))
return FALSE
var/mob/living/carbon/human/grabber = user
@@ -693,7 +683,6 @@
set_broken() // Breaks the APC
return TRUE
-//RUTGMC EDIT ADDITION END
if(opened && cell && !issilicon(user))
if(user.skills.getRating(SKILL_ENGINEER) < SKILL_ENGINEER_ENGI)
@@ -714,8 +703,6 @@
interact(user)
-
-
/obj/machinery/power/apc/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -770,7 +757,6 @@
)
return data
-
/obj/machinery/power/apc/proc/setsubsystem(val)
if(cell?.charge > 0)
return (val==1) ? 0 : val
@@ -836,7 +822,6 @@
/obj/machinery/power/apc/proc/report()
return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])"
-
/obj/machinery/power/apc/proc/update()
if(operating && !shorted)
area.power_light = (lighting > 1)
@@ -848,7 +833,6 @@
area.power_environ = 0
area.power_change()
-
/obj/machinery/power/apc/proc/reset(wire)
switch(wire)
if(WIRE_IDSCAN)
@@ -871,20 +855,17 @@
else
return 0
-
/obj/machinery/power/apc/add_load(amount)
if(terminal?.powernet)
return terminal.add_load(amount)
return 0
-
/obj/machinery/power/apc/avail()
if(terminal)
return terminal.avail()
else
return 0
-
/obj/machinery/power/apc/process()
if(updating_icon)
update_icon()
@@ -943,7 +924,6 @@
lighting = autoset(lighting, 0)
environ = autoset(environ, 0)
-
// set channels depending on how much charge we have left
// Allow the APC to operate as normal if the cell can charge
@@ -1045,7 +1025,6 @@
return 1
return val
-
/obj/machinery/power/apc/emp_act(severity)
if(cell)
cell.emp_act(severity)
@@ -1057,7 +1036,6 @@
addtimer(CALLBACK(src, PROC_REF(reset), APC_RESET_EMP), 60 SECONDS)
return ..()
-
/obj/machinery/power/apc/ex_act(severity)
if(severity >= EXPLODE_HEAVY)
qdel(src)
@@ -1065,13 +1043,11 @@
set_broken()
cell.ex_act(severity)
-
/obj/machinery/power/apc/proc/set_broken()
//Aesthetically much better!
visible_message(span_warning("[src]'s screen flickers with warnings briefly!"))
addtimer(CALLBACK(src, PROC_REF(do_break)), rand(2, 5))
-
/obj/machinery/power/apc/proc/do_break()
visible_message(span_danger("[src]'s screen suddenly explodes in rain of sparks and small debris!"))
machine_stat |= BROKEN
@@ -1079,7 +1055,6 @@
update_icon()
update()
-
//Overload all the lights in this APC area
/obj/machinery/power/apc/proc/overload_lighting()
if(!operating || shorted)
@@ -1088,19 +1063,16 @@
cell.use(20)
INVOKE_ASYNC(src, PROC_REF(break_lights))
-
/obj/machinery/power/apc/proc/break_lights()
for(var/obj/machinery/light/L in get_area(src))
L.broken()
stoplag()
-
/obj/machinery/power/apc/disconnect_terminal()
if(terminal)
terminal.master = null
terminal = null
-
/obj/machinery/power/apc/proc/toggle_breaker(mob/user)
if(machine_stat & (NOPOWER|BROKEN|MAINT))
return
@@ -1110,7 +1082,6 @@
update()
update_icon()
-
//------Various APCs ------//
// mapping helpers
diff --git a/code/modules/power/groundmap_geothermal.dm b/code/modules/power/groundmap_geothermal.dm
index 6a5fa16eda4..6e0c52648ab 100644
--- a/code/modules/power/groundmap_geothermal.dm
+++ b/code/modules/power/groundmap_geothermal.dm
@@ -57,13 +57,11 @@ GLOBAL_VAR_INIT(generators_on_ground, 0)
//We don't want to cut/update the power overlays every single proc. Just when it actually changes. This should save on CPU cycles. Efficiency!
/obj/machinery/power/geothermal/update_icon()
. = ..()
- //RUTGMC ADDITION BEGIN
SSminimaps.remove_marker(src)
if(!corrupted && !is_on)
SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "generator_off"))
if(corrupted)
SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "generator_corrupt"))
- //RUTGMC ADDITION END
switch(buildstate)
if(GEOTHERMAL_NO_DAMAGE)
if(is_on)
@@ -158,26 +156,26 @@ GLOBAL_VAR_INIT(generators_on_ground, 0)
return TRUE
return FALSE //Nope, all fine
-/obj/machinery/power/geothermal/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/machinery/power/geothermal/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
. = ..()
if(corrupted) //you have no reason to interact with it if its already corrupted
return
- if(CHECK_BITFIELD(X.xeno_caste.can_flags, CASTE_CAN_CORRUPT_GENERATOR) && is_corruptible)
- to_chat(X, span_notice("You start to corrupt [src]"))
- if(!do_after(X, 10 SECONDS, NONE, src, BUSY_ICON_HOSTILE))
+ if(CHECK_BITFIELD(xeno_attacker.xeno_caste.can_flags, CASTE_CAN_CORRUPT_GENERATOR) && is_corruptible)
+ to_chat(xeno_attacker, span_notice("You start to corrupt [src]"))
+ if(!do_after(xeno_attacker, 10 SECONDS, NONE, src, BUSY_ICON_HOSTILE))
return
- corrupt(X.hivenumber)
- to_chat(X, span_notice("You have corrupted [src]"))
- record_generator_sabotages(X)
+ corrupt(xeno_attacker.hivenumber)
+ to_chat(xeno_attacker, span_notice("You have corrupted [src]"))
+ record_generator_sabotages(xeno_attacker)
return
if(buildstate)
return
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
play_attack_sound(1)
- X.visible_message(span_danger("\The [X] slashes at \the [src], tearing at it's components!"),
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] slashes at \the [src], tearing at it's components!"),
span_danger("We start slashing at \the [src], tearing at it's components!"))
fail_rate += 5 // 5% fail rate every attack
- record_generator_sabotages(X)
+ record_generator_sabotages(xeno_attacker)
/obj/machinery/power/geothermal/attack_hand(mob/living/carbon/user)
interact_hand(user)
@@ -185,7 +183,6 @@ GLOBAL_VAR_INIT(generators_on_ground, 0)
/obj/machinery/power/geothermal/attack_ai(mob/living/silicon/ai/user)
interact_hand(user)
-
/obj/machinery/power/geothermal/proc/interact_hand(mob/living/user)
if(.)
return
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index 34c905ad5a4..cf408b666d4 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -1,8 +1,5 @@
// The lighting system
-//
// consists of light fixtures (/obj/machinery/light) and light tube/bulb items (/obj/item/light)
-
-
// status values shared between lighting fixtures and items
/obj/machinery/light_construct
name = "light fixture frame"
@@ -31,7 +28,6 @@
if(3)
. += "The casing is closed."
-
/obj/machinery/light_construct/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -109,7 +105,6 @@
newlight.setDir(dir)
qdel(src)
-
/obj/machinery/light_construct/small
name = "small light fixture frame"
desc = "A small light fixture under construction."
@@ -195,7 +190,6 @@
status = LIGHT_EMPTY
update(FALSE)
-
/obj/machinery/light/small/built/Initialize(mapload)
. = ..()
status = LIGHT_EMPTY
@@ -236,7 +230,6 @@
return INITIALIZE_HINT_LATELOAD
-
/obj/machinery/light/LateInitialize()
var/area/A = get_area(src)
turn_light(null, (A.lightswitch && A.power_light))
@@ -311,8 +304,6 @@
if(LIGHT_BROKEN)
. += "The [fitting] has been smashed."
-
-
// attack with item - insert light (if right type), otherwise try to break the light
/obj/machinery/light/attackby(obj/item/I, mob/user, params)
@@ -387,7 +378,6 @@
if(prob(75))
electrocute_mob(user, get_area(src), src, rand(7, 10) * 0.1)
-
// returns whether this light has power
// true if area has power and lightswitch is on
/obj/machinery/light/proc/has_power()
@@ -413,15 +403,14 @@
/obj/machinery/light/attack_ai(mob/user)
flicker(1)
-
//Xenos smashing lights
-/obj/machinery/light/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/machinery/light/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
if(status == 2) //Ignore if broken.
return FALSE
- X.do_attack_animation(src, ATTACK_EFFECT_SMASH)
- X.visible_message(span_danger("\The [X] smashes [src]!"), \
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_SMASH)
+ xeno_attacker.visible_message(span_danger("\The [xeno_attacker] smashes [src]!"), \
span_danger("We smash [src]!"), null, 5)
broken() //Smashola!
@@ -631,7 +620,6 @@
icon_state = "[base_state]-broken"
desc = "A broken [name]."
-
/obj/item/light_bulb/Initialize(mapload)
. = ..()
switch(name)
@@ -641,7 +629,6 @@
brightness = rand(4,6)
update()
-
// attack bulb/tube with object
// if a syringe, can inject phoron to make it explode
/obj/item/light_bulb/attackby(obj/item/I, mob/user, params)
diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm
index 598cd7880ea..ce344304609 100644
--- a/code/modules/power/port_gen.dm
+++ b/code/modules/power/port_gen.dm
@@ -30,11 +30,11 @@
record_generator_sabotages(user)
return TRUE
-/obj/machinery/power/port_gen/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/power/port_gen/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
. = ..()
if(!.)
return FALSE
- record_generator_sabotages(X)
+ record_generator_sabotages(xeno_attacker)
return TRUE
/obj/machinery/power/port_gen/should_have_node()
diff --git a/code/modules/projectiles/ammo_datums.dm b/code/modules/projectiles/ammo_datums.dm
index 63958c4131f..41f9aac8908 100644
--- a/code/modules/projectiles/ammo_datums.dm
+++ b/code/modules/projectiles/ammo_datums.dm
@@ -60,7 +60,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
///How far the bullet can travel before incurring a chance of hitting barricades; normally 1.
var/barricade_clear_distance = 1
///Does this have an override for the armor type the ammo should test? Bullet by default
- var/armor_type = "bullet"
+ var/armor_type = BULLET
///How many stacks of sundering to apply to a mob on hit
var/sundering = 0
///how much damage airbursts do to mobs around the target, multiplier of the bullet's damage
@@ -1628,7 +1628,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
ping = null //no bounce off.
sound_bounce = "rocket_bounce"
flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_SUNDERING
- armor_type = "bomb"
+ armor_type = BOMB
damage_falloff = 0.5
shell_speed = 2
accurate_range = 12
@@ -2047,7 +2047,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
ping = null //no bounce off.
sound_bounce = "rocket_bounce"
flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_IFF
- armor_type = "bomb"
+ armor_type = BOMB
damage_falloff = 0.5
shell_speed = 2
accurate_range = 12
@@ -2148,7 +2148,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
ping = null //no bounce off.
sound_bounce = "rocket_bounce"
flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_SUNDERING
- armor_type = "bomb"
+ armor_type = BOMB
damage_falloff = 0
shell_speed = 2
accuracy = 40
@@ -2276,7 +2276,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
icon_state = "rocket_wp"
hud_state = "rocket_fire"
flags_ammo_behavior = AMMO_ROCKET|AMMO_INCENDIARY|AMMO_EXPLOSIVE|AMMO_SUNDERING
- armor_type = "fire"
+ armor_type = FIRE
damage_type = BURN
accuracy_var_low = 7
accurate_range = 15
@@ -2344,7 +2344,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
hud_state = "shell_he"
hud_state_empty = "shell_empty"
flags_ammo_behavior = AMMO_EXPLOSIVE|AMMO_ROCKET|AMMO_SUNDERING
- armor_type = "bomb"
+ armor_type = BOMB
damage_falloff = 0
shell_speed = 2
accurate_range = 20
@@ -2816,7 +2816,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
damage_type = BURN
flags_ammo_behavior = AMMO_ENERGY|AMMO_SOUND_PITCH
- armor_type = "energy"
+ armor_type = ENERGY
accuracy = 15 //lasers fly fairly straight
bullet_color = COLOR_LASER_RED
barricade_clear_distance = 2
@@ -2878,7 +2878,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
name = "laser bolt"
icon_state = "laser"
hud_state = "laser"
- armor_type = "laser"
+ armor_type = LASER
flags_ammo_behavior = AMMO_ENERGY|AMMO_SUNDERING
shell_speed = 4
accurate_range = 15
@@ -3466,7 +3466,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
name = "plasma bolt"
icon_state = "pulse2"
hud_state = "plasma"
- armor_type = "laser"
+ armor_type = LASER
shell_speed = 4
accurate_range = 15
damage = 40
@@ -3528,7 +3528,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
hud_state_empty = "battery_empty_flash"
flags_ammo_behavior = AMMO_ENERGY|AMMO_SUNDERING|AMMO_SOUND_PITCH
bullet_color = COLOR_TAN_ORANGE
- armor_type = "energy"
+ armor_type = ENERGY
max_range = 14
accurate_range = 5 //for charger
shell_speed = 4
@@ -3587,7 +3587,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
flags_ammo_behavior = AMMO_XENO
var/added_spit_delay = 0 //used to make cooldown of the different spits vary.
var/spit_cost = 5
- armor_type = "bio"
+ armor_type = BIO
shell_speed = 1
accuracy = 40
accurate_range = 15
@@ -3708,7 +3708,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
ping = null
flags_ammo_behavior = AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE|AMMO_XENO
damage_type = STAMINA
- armor_type = "bio"
+ armor_type = BIO
spit_cost = 50
sound_hit = "alien_resin_build2"
sound_bounce = "alien_resin_build3"
@@ -3798,7 +3798,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
added_spit_delay = 5
spit_cost = 50
flags_ammo_behavior = AMMO_XENO|AMMO_EXPLOSIVE
- armor_type = "acid"
+ armor_type = ACID
damage = 18
max_range = 8
bullet_color = COLOR_PALE_GREEN_GRAY
@@ -3932,7 +3932,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
var/select_text = "We will now fire neurotoxic gas. This is nonlethal."
flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE
var/danger_message = span_danger("A glob of acid lands with a splat and explodes into noxious fumes!")
- armor_type = "bio"
+ armor_type = BIO
accuracy_var_high = 10
max_range = 30
damage = 50
@@ -4046,7 +4046,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh
icon_key = BOILER_GLOB_ACID
select_text = "We will now fire corrosive acid. This is lethal!"
flags_ammo_behavior = AMMO_XENO|AMMO_SKIPS_ALIENS|AMMO_EXPLOSIVE
- armor_type = "acid"
+ armor_type = ACID
danger_message = span_danger("A glob of acid lands with a splat and explodes into corrosive bile!")
damage = 50
damage_type = BURN
@@ -4247,7 +4247,7 @@ RU TGMC EDIT*/
flags_ammo_behavior = AMMO_BALLISTIC
accurate_range = 15
damage_type = STAMINA
- armor_type = "bio"
+ armor_type = BIO
damage = 1
damage_falloff = 0
penetration = 0
@@ -4290,7 +4290,7 @@ RU TGMC EDIT*/
hud_state_empty = "flame_empty"
damage_type = BURN
flags_ammo_behavior = AMMO_INCENDIARY|AMMO_FLAME|AMMO_EXPLOSIVE
- armor_type = "fire"
+ armor_type = FIRE
max_range = 7
damage = 31
damage_falloff = 0
@@ -4389,7 +4389,7 @@ RU TGMC EDIT*/
damage_type = BRUTE
var/nade_type = /obj/item/explosive/grenade
icon_state = "grenade"
- armor_type = "bomb"
+ armor_type = BOMB
damage = 15
accuracy = 15
max_range = 10
diff --git a/code/modules/projectiles/gun_system.dm b/code/modules/projectiles/gun_system.dm
index 2e1d9e25f49..e115b4717e0 100644
--- a/code/modules/projectiles/gun_system.dm
+++ b/code/modules/projectiles/gun_system.dm
@@ -192,11 +192,9 @@
var/windup_sound
///Used if a weapon need windup before firing
var/windup_checked = WEAPON_WINDUP_NOT_CHECKED
-
/*
* STAT VARS
*/
-
///Multiplier. Increased and decreased through attachments. Multiplies the projectile's accuracy by this number.
var/accuracy_mult = 1
///Same as above, for damage.
@@ -271,10 +269,8 @@
var/wield_penalty = 0.2 SECONDS
///Storing value for above
var/wield_time = 0
-
var/wield_sound
-
///how much energy is consumed per shot.
var/charge_cost = 0
///How much ammo consumed per shot; normally 1.
@@ -295,21 +291,17 @@
/*
* extra icon and item states or overlays
*/
-
///Whether the gun has ammo level overlays for its icon, mainly for eguns
var/ammo_level_icon
///Whether the icon_state overlay is offset in the x axis
var/icon_overlay_x_offset = 0
///Whether the icon_state overlay is offset in the Y axis
var/icon_overlay_y_offset = 0
-
/*
*
* ATTACHMENT VARS
*
*/
-
-
///List of offsets to make attachment overlays not look wonky.
var/list/attachable_offset = null
///List of allowed attachments, IT MUST INCLUDE THE STARTING ATTACHMENT TYPES OR THEY WILL NOT ATTACH.
@@ -333,7 +325,6 @@
/*
* Gun as Attachment Vars
*/
-
///Gun reference if src is an attachment and is attached to a gun. This will be the gun that src is attached to.
var/obj/item/weapon/gun/master_gun
///Slot the gun fits into.
@@ -351,13 +342,11 @@
///How long ADS takes (time before firing)
var/wield_delay_mod = 0
-
/*
* Deployed and Sentry Vars
*/
///If the gun has a deployed item..
var/deployable_item = null
-
///If the gun is deployable, the time it takes for the weapon to deploy.
var/deploy_time = 0
///If the gun is deployable, the time it takes for the weapon to undeploy.
@@ -511,7 +500,6 @@
RegisterSignal(gun_user, COMSIG_KB_GUN_SAFETY, PROC_REF(toggle_gun_safety_keybind))
RegisterSignal(gun_user, COMSIG_KB_AUTOEJECT, PROC_REF(toggle_auto_eject_keybind))
-
///Null out gun user to prevent hard del
/obj/item/weapon/gun/proc/clean_gun_user()
SIGNAL_HANDLER
@@ -549,7 +537,6 @@
var/mob/living/carbon/human/human = user
human.regenerate_icons()
-
//manages the overlays for the gun - separate from attachment overlays
/obj/item/weapon/gun/update_overlays()
. = ..()
@@ -675,7 +662,6 @@
if(HAS_TRAIT(src, TRAIT_GUN_AUTO_AIM_MODE))
toggle_aim_mode(user)
-
/obj/item/weapon/gun/unwield(mob/user)
. = ..()
if(!.)
@@ -802,11 +788,6 @@
set_target(get_turf_on_clickcatcher(over_object, gun_user, params))
gun_user?.face_atom(target)
-
-
-
-
-
//----------------------------------------------------------
// \\
// FIRE BULLET AND POINT BLANK/SUICIDE \\
@@ -1119,7 +1100,6 @@
// \\
//----------------------------------------------------------
-
/**
* Performs the unique action. Can be overwritten.
* This does a few things, depending on the flags of the gun.
@@ -1218,7 +1198,6 @@
update_ammo_count()
update_icon()
-
/**
* Handles reloading. Called on attack_by
* Reload works in one of three ways, depending on the guns flags.
@@ -1300,7 +1279,6 @@
RegisterSignal(new_mag, COMSIG_ITEM_REMOVED_INVENTORY, TYPE_PROC_REF(/obj/item/weapon/gun, drop_connected_mag))
return TRUE
-
var/list/obj/items_to_insert = list()
if(max_chamber_items)
if(CHECK_BITFIELD(reciever_flags, AMMO_RECIEVER_HANDFULS))
@@ -1505,7 +1483,6 @@
casing.update_icon()
playsound(current_turf, sound_to_play, 25, 1, 5)
-
///Gets a projectile to fire from the magazines ammo type.
/obj/item/weapon/gun/proc/get_ammo_object()
var/datum/ammo/new_ammo = get_ammo()
@@ -1726,7 +1703,6 @@
return
playsound(user, fire_sound, 60, firing_sndfreq ? TRUE : FALSE, frequency = firing_sndfreq)
-
/obj/item/weapon/gun/proc/apply_gun_modifiers(obj/projectile/projectile_to_fire, atom/target, firer)
projectile_to_fire.shot_from = src
projectile_to_fire.damage *= damage_mult
@@ -1820,7 +1796,6 @@
if(recoil_tweak)
total_recoil -= recoil_tweak * 2
-
var/actual_angle = firing_angle + rand(-recoil_deviation, recoil_deviation) + 180
if(actual_angle > 360)
actual_angle -= 360
@@ -1840,7 +1815,7 @@
muzzle_flash.applied = FALSE
//For letting xenos turn off the flashlights on any guns left lying around.
-/obj/item/weapon/gun/attack_alien(mob/living/carbon/xenomorph/X, isrightclick = FALSE)
+/obj/item/weapon/gun/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, isrightclick = FALSE)
if(!HAS_TRAIT(src, TRAIT_GUN_FLASHLIGHT_ON))
return
for(var/attachment_slot in attachments_by_slot)
@@ -1849,5 +1824,5 @@
continue
lit_flashlight.turn_light(null, FALSE)
playsound(loc, "alien_claw_metal", 25, 1)
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- to_chat(X, span_warning("We disable the metal thing's lights.") )
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ to_chat(xeno_attacker, span_warning("We disable the metal thing's lights.") )
diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 88e1c34f49b..7df00b91bf7 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -62,8 +62,8 @@ GLOBAL_LIST_EMPTY(tagger_locations)
to_chat(user, span_notice("It has a note attached which reads, \"[examtext]\""))
return
-/obj/structure/bigDelivery/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
- attack_hand(X)
+/obj/structure/bigDelivery/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+ attack_hand(xeno_attacker)
/obj/structure/bigDelivery/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -116,7 +116,6 @@ GLOBAL_LIST_EMPTY(tagger_locations)
span_notice("You label \the [src]: \"[examtext]\""),\
"You hear someone scribbling a note.")
-
/obj/item/smallDelivery
desc = "A small wrapped package."
name = "small parcel"
@@ -223,7 +222,6 @@ GLOBAL_LIST_EMPTY(tagger_locations)
span_notice("You label \the [src]: \"[examtext]\""),\
"You hear someone scribbling a note.")
-
/obj/item/packageWrap
name = "package wrapper"
icon = 'icons/obj/stack_objects.dmi'
@@ -231,7 +229,6 @@ GLOBAL_LIST_EMPTY(tagger_locations)
w_class = WEIGHT_CLASS_NORMAL
var/amount = 25
-
/obj/item/packageWrap/afterattack(obj/target, mob/user, proximity)
if(!proximity) return
if(!istype(target)) //this really shouldn't be necessary (but it is). -Pete
@@ -248,7 +245,6 @@ GLOBAL_LIST_EMPTY(tagger_locations)
log_combat(user, target, "used", src)
-
if (istype(target, /obj/item) && !(istype(target, /obj/item/storage) && !istype(target,/obj/item/storage/box)))
var/obj/item/O = target
if (src.amount > 1)
@@ -315,7 +311,6 @@ GLOBAL_LIST_EMPTY(tagger_locations)
if(get_dist(src, user) < 2)
to_chat(user, span_notice("There are [amount] units of package wrap left!"))
-
/obj/item/destTagger
name = "destination tagger"
desc = "Used to set the destination of properly wrapped packages."
diff --git a/code/modules/shuttle/escape_pod.dm b/code/modules/shuttle/escape_pod.dm
index e671e9c2f0d..4ce993cdec7 100644
--- a/code/modules/shuttle/escape_pod.dm
+++ b/code/modules/shuttle/escape_pod.dm
@@ -210,5 +210,5 @@
/obj/machinery/door/airlock/evacuation/attack_hand(mob/living/user)
return TRUE
-/obj/machinery/door/airlock/evacuation/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/machinery/door/airlock/evacuation/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
return FALSE //Probably a better idea that these cannot be forced open.
diff --git a/code/modules/shuttle/marine_dropship.dm b/code/modules/shuttle/marine_dropship.dm
index c08aa1a1e55..80fe541bc5b 100644
--- a/code/modules/shuttle/marine_dropship.dm
+++ b/code/modules/shuttle/marine_dropship.dm
@@ -1,4 +1,3 @@
-// marine dropships
/obj/docking_port/stationary/marine_dropship
name = "dropship landing zone"
id = "dropship"
@@ -304,11 +303,9 @@
playsound(loc,'sound/effects/alert.ogg', 50)
addtimer(CALLBACK(src, PROC_REF(request_to), S), 15 SECONDS)
-
/obj/docking_port/mobile/marine_dropship/proc/do_start_hijack_timer(hijack_time = LOCKDOWN_TIME)
addtimer(CALLBACK(src, PROC_REF(reset_hijack)), hijack_time)
-
/obj/docking_port/mobile/marine_dropship/proc/request_to(obj/docking_port/stationary/S)
set_idle()
request(S)
@@ -325,7 +322,6 @@
if(light.linked_port == destination)
light.turn_on()
-
/obj/docking_port/mobile/marine_dropship/getStatusText()
if(hijack_state == HIJACK_STATE_CALLED_DOWN)
return "Control integrity compromised"
@@ -333,14 +329,12 @@
return "Remote control compromised"
return ..() + (timeleft(cycle_timer) ? (" Automatic cycle : [round(timeleft(cycle_timer) / 10 + 20, 1)] seconds before departure towards [previous.name]") : "")
-
/obj/docking_port/mobile/marine_dropship/can_move_topic(mob/user)
if(hijack_state != HIJACK_STATE_NORMAL)
to_chat(user, span_warning("Control integrity compromised!"))
return FALSE
return ..()
-
/mob/living/carbon/xenomorph/proc/hijack()
set category = "Alien"
set name = "Hijack Dropship"
@@ -486,12 +480,12 @@
req_one_access = list(ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_LEADER) // TLs can only operate the remote console
possible_destinations = "lz1;lz2;normandy"
-/obj/machinery/computer/shuttle/marine_dropship/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(!(X.xeno_caste.caste_flags & CASTE_IS_INTELLIGENT))
+/obj/machinery/computer/shuttle/marine_dropship/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(!(xeno_attacker.xeno_caste.caste_flags & CASTE_IS_INTELLIGENT))
return
#ifndef TESTING
if(SSticker.round_start_time + SHUTTLE_HIJACK_LOCK > world.time)
- to_chat(X, span_xenowarning("It's too early to do this!"))
+ to_chat(xeno_attacker, span_xenowarning("It's too early to do this!"))
return
#endif
var/obj/docking_port/mobile/marine_dropship/M = SSshuttle.getShuttle(shuttleId)
@@ -502,17 +496,16 @@
M.unlock_all()
M.silicon_lock_airlocks(TRUE)
if(M.hijack_state != HIJACK_STATE_CALLED_DOWN)
- to_chat(X, span_xenowarning("We corrupt the bird's controls, unlocking the doors[(M.mode != SHUTTLE_IGNITING) ? "and preventing it from flying." : ", but we are unable to prevent it from flying as it is already taking off!"]"))
+ to_chat(xeno_attacker, span_xenowarning("We corrupt the bird's controls, unlocking the doors[(M.mode != SHUTTLE_IGNITING) ? "and preventing it from flying." : ", but we are unable to prevent it from flying as it is already taking off!"]"))
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_DROPSHIP_CONTROLS_CORRUPTED, src)
if(M.mode != SHUTTLE_IGNITING)
M.set_hijack_state(HIJACK_STATE_CALLED_DOWN)
M.do_start_hijack_timer()
- var/datum/browser/popup = new(X, "computer", M ? M.name : "shuttle", 300, 200)
+ var/datum/browser/popup = new(xeno_attacker, "computer", M ? M.name : "shuttle", 300, 200)
popup.set_content("[dat]")
popup.open()
-
/obj/machinery/computer/shuttle/marine_dropship/can_interact(mob/user)
. = ..()
@@ -521,6 +514,7 @@
if(!(X.xeno_caste.caste_flags & CASTE_IS_INTELLIGENT))
return FALSE
+
else if(!allowed(user))
return FALSE
@@ -703,10 +697,8 @@
do_hijack(M, CT, X)
if(href_list["abduct"])
-//RUTGMC EDIT ADDITION BEGIN - Preds
var/list/living_player_list = SSticker.mode.count_humans_and_xenos(SSmapping.levels_by_any_trait(list(ZTRAIT_GROUND)), COUNT_IGNORE_ALIVE_SSD)
if(living_player_list[1] > 5)
-//RUTGMC EDIT ADDITION END
to_chat(X, span_xenowarning("There is still prey left to hunt!"))
return
@@ -743,7 +735,6 @@
to_chat(user, span_warning("ERROR. This shouldn't happen, please report it."))
CRASH("moveShuttleToDock() returned a non-zero-nor-one value.")
-
/obj/machinery/computer/shuttle/marine_dropship/one
name = "\improper 'Normandy' flight controls"
desc = "The flight controls for the 'Normandy' Dropship. Named after a department in France, noteworthy for the famous naval invasion of Normandy on the 6th of June 1944, a bloody but decisive victory in World War II and the campaign for the Liberation of France."
@@ -886,7 +877,6 @@
/obj/structure/dropship_piece/one/weapon/rightright
icon_state = "brown_weapon_rr"
-
/obj/structure/dropship_piece/one/wing
opacity = FALSE
@@ -902,7 +892,6 @@
/obj/structure/dropship_piece/one/wing/right/bottom
icon_state = "brown_wing_rb"
-
/obj/structure/dropship_piece/one/corner/middleleft
icon_state = "brown_middle_lc"
@@ -915,7 +904,6 @@
/obj/structure/dropship_piece/one/corner/rearright
icon_state = "brown_rear_rc"
-
/obj/structure/dropship_piece/one/engine
opacity = FALSE
@@ -963,8 +951,6 @@
opacity = FALSE
allow_pass_flags = PASSABLE
-
-
/obj/structure/dropship_piece/two
name = "\improper Normandy"
@@ -1055,7 +1041,6 @@
/obj/structure/dropship_piece/two/cockpit/right
icon_state = "blue_cockpit_fr"
-
/obj/structure/dropship_piece/two/weapon
opacity = FALSE
@@ -1071,7 +1056,6 @@
/obj/structure/dropship_piece/two/weapon/rightright
icon_state = "blue_weapon_rr"
-
/obj/structure/dropship_piece/two/wing
opacity = FALSE
@@ -1087,7 +1071,6 @@
/obj/structure/dropship_piece/two/wing/right/bottom
icon_state = "blue_wing_rb"
-
/obj/structure/dropship_piece/two/corner/middleleft
icon_state = "blue_middle_lc"
@@ -1106,7 +1089,6 @@
/obj/structure/dropship_piece/two/corner/frontright
icon_state = "blue_front_rc"
-
/obj/structure/dropship_piece/two/engine
opacity = FALSE
@@ -1122,7 +1104,6 @@
/obj/structure/dropship_piece/two/engine/rightbottom
icon_state = "blue_engine_rb"
-
/obj/structure/dropship_piece/two/rearwing/lefttop
icon_state = "blue_rearwing_lt"
@@ -1151,7 +1132,6 @@
icon_state = "blue_rearwing_rrrb"
opacity = FALSE
-
/obj/structure/dropship_piece/three
name = "\improper Triumph"
@@ -1172,7 +1152,6 @@
/obj/structure/dropship_piece/three/cockpit/right
icon_state = "brown_cockpit_fr"
-
/obj/structure/dropship_piece/three/weapon
opacity = FALSE
@@ -1188,7 +1167,6 @@
/obj/structure/dropship_piece/three/weapon/rightright
icon_state = "brown_weapon_rr"
-
/obj/structure/dropship_piece/three/wing
opacity = FALSE
@@ -1204,7 +1182,6 @@
/obj/structure/dropship_piece/three/wing/right/bottom
icon_state = "brown_wing_rb"
-
/obj/structure/dropship_piece/three/corner/middleleft
icon_state = "brown_middle_lc"
@@ -1217,7 +1194,6 @@
/obj/structure/dropship_piece/three/corner/rearright
icon_state = "brown_rear_rc"
-
/obj/structure/dropship_piece/three/engine
opacity = FALSE
@@ -1233,7 +1209,6 @@
/obj/structure/dropship_piece/three/engine/rightbottom
icon_state = "brown_engine_rb"
-
/obj/structure/dropship_piece/three/rearwing/lefttop
icon_state = "brown_rearwing_lt"
@@ -1262,7 +1237,6 @@
icon_state = "brown_rearwing_rrrb"
opacity = FALSE
-
//Dropship control console
/obj/machinery/computer/shuttle/shuttle_control
@@ -1273,17 +1247,14 @@
///Able to auto-relink to any shuttle with at least one of the flags in common if shuttleId is invalid.
var/compatible_control_flags = NONE
-
/obj/machinery/computer/shuttle/shuttle_control/Initialize(mapload)
. = ..()
GLOB.shuttle_controls_list += src
-
/obj/machinery/computer/shuttle/shuttle_control/Destroy()
GLOB.shuttle_controls_list -= src
return ..()
-
/obj/machinery/computer/shuttle/shuttle_control/ui_interact(mob/user, datum/tgui/ui)
if(!(SSshuttle.getShuttle(shuttleId)))
RelinkShuttleId()
@@ -1421,8 +1392,6 @@
say("Relinked Dropship Control Console to: '[shuttleName]'")
return TRUE //Did relink
-
-
/obj/machinery/computer/shuttle/shuttle_control/dropship
name = "\improper 'Normandy' dropship console"
desc = "The remote controls for the 'Normandy' Dropship. Named after a department in France, noteworthy for the famous naval invasion of Normandy on the 6th of June 1944, a bloody but decisive victory in World War II and the campaign for the Liberation of France."
@@ -1435,7 +1404,6 @@
req_one_access = list(ACCESS_MARINE_DROPSHIP, ACCESS_MARINE_LEADER) // TLs can only operate the remote console
compatible_control_flags = SHUTTLE_MARINE_PRIMARY_DROPSHIP
-
/obj/machinery/computer/shuttle/shuttle_control/dropship/two
name = "\improper 'Alamo' dropship console"
desc = "The remote controls for the 'Alamo' Dropship. Named after the Alamo Mission, stage of the Battle of the Alamo in the United States' state of Texas in the Spring of 1836. The defenders held to the last, encouraging other Texans to rally to the flag."
@@ -1465,7 +1433,6 @@
popup.set_content("[dat]")
popup.open()
-
/obj/machinery/computer/shuttle/shuttle_control/canterbury/Topic(href, href_list)
// Since we want to avoid the standard move topic, we are just gonna override everything.
add_fingerprint(usr, "topic")
diff --git a/code/modules/shuttle/mini_dropship.dm b/code/modules/shuttle/mini_dropship.dm
index 73ee62729ee..e79a4a85420 100644
--- a/code/modules/shuttle/mini_dropship.dm
+++ b/code/modules/shuttle/mini_dropship.dm
@@ -160,23 +160,23 @@
return
nvg_vision_mode = !nvg_vision_mode
-/obj/machinery/computer/camera_advanced/shuttle_docker/minidropship/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+/obj/machinery/computer/camera_advanced/shuttle_docker/minidropship/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
. = ..()
if(machine_stat & BROKEN)
return
- if(X.status_flags & INCORPOREAL)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return
- X.visible_message("[X] begins to slash delicately at the computer",
+ xeno_attacker.visible_message("[xeno_attacker] begins to slash delicately at the computer",
"We start slashing delicately at the computer. This will take a while.")
- if(!do_after(X, 10 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
+ if(!do_after(xeno_attacker, 10 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
return
visible_message("The inner wiring is visible, it can be slashed!")
- X.visible_message("[X] continue to slash at the computer",
+ xeno_attacker.visible_message("[xeno_attacker] continue to slash at the computer",
"We continue slashing at the computer. If we stop now we will have to start all over again.")
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(3, 1, src)
s.start()
- if(!do_after(X, 10 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
+ if(!do_after(xeno_attacker, 10 SECONDS, NONE, src, BUSY_ICON_DANGER, BUSY_ICON_HOSTILE))
return
visible_message("The wiring is destroyed, nobody will be able to repair this computer!")
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_MINI_DROPSHIP_DESTROYED, src)
@@ -248,7 +248,6 @@
.["equipment_data"] += list(list("name"= sanitize(copytext(E.name,1,MAX_MESSAGE_LEN)), "eqp_tag" = element_nbr, "is_weapon" = (E.dropship_equipment_flags & IS_WEAPON), "is_interactable" = (E.dropship_equipment_flags & IS_INTERACTABLE)))
element_nbr++
-
/obj/machinery/computer/camera_advanced/shuttle_docker/minidropship/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
switch(action)
diff --git a/code/modules/vehicles/multitile/cm_armored.dm b/code/modules/vehicles/multitile/cm_armored.dm
index ded3f673849..2ce17a9ef33 100644
--- a/code/modules/vehicles/multitile/cm_armored.dm
+++ b/code/modules/vehicles/multitile/cm_armored.dm
@@ -1,4 +1,3 @@
-
//NOT bitflags, just global constant values
#define HDPT_PRIMARY "primary"
#define HDPT_SECDGUN "secondary"
@@ -20,21 +19,15 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
desc = "Get inside to operate the vehicle."
hitbox_type = /obj/vehicle/multitile/hitbox/cm_armored //Used for emergencies and respawning hitboxes
- //What slots the vehicle can have
+ ///What slots the vehicle can have
var/list/hardpoints = list(HDPT_ARMOR, HDPT_TREADS, HDPT_SECDGUN, HDPT_SUPPORT, HDPT_PRIMARY)
-
- //The next world.time when the tank can move
+ ///The next world.time when the tank can move
var/next_move = 0
-
//Below are vars that can be affected by hardpoints, generally used as ratios or decisecond timers
-
move_delay = 30 //default 3 seconds per tile
-
var/active_hp
-
var/list/dmg_distribs = list()
-
- //Changes cooldowns and accuracies
+ ///Changes cooldowns and accuracies
var/list/misc_ratios = list(
"move" = 1.0,
"prim_acc" = 1.0,
@@ -43,8 +36,7 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
"prim_cool" = 1.0,
"secd_cool" = 1.0,
"supp_cool" = 1.0)
-
- //Changes how much damage the tank takes
+ ///Changes how much damage the tank takes
var/list/dmg_multipliers = list(
"all" = 1.0, //for when you want to make it invincible
"acid" = 1.0,
@@ -53,14 +45,12 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
"explosive" = 1.0,
"blunt" = 1.0,
"abstract" = 1.0) //abstract for when you just want to hurt it
-
- //Decisecond cooldowns for the slots
+ ///Decisecond cooldowns for the slots
var/list/internal_cooldowns = list(
"primary" = 300,
"secondary" = 200,
"support" = 150)
-
- //Percentage accuracies for slot
+ ///Percentage accuracies for slot
var/list/accuracies = list(
"primary" = 0.97,
"secondary" = 0.67,
@@ -70,13 +60,11 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
icon = 'icons/obj/vehicles.dmi'
icon_state = "cargo_engine"
-
/obj/vehicle/multitile/root/cm_armored/Initialize(mapload)
. = ..()
GLOB.tank_list += src
set_light(0.01)
-
/obj/vehicle/multitile/root/cm_armored/Destroy()
for(var/i in linked_objs)
var/obj/O = linked_objs[i]
@@ -189,7 +177,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
to_chat(usr, span_notice("You reload the [slot] module."))
-
/obj/vehicle/multitile/root/cm_armored/proc/get_activatable_hardpoints()
var/list/slots = list()
for(var/slot in hardpoints)
@@ -202,8 +189,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
return slots
-
-
//Special armored vic healthcheck that mainly updates the hardpoint states
/obj/vehicle/multitile/root/cm_armored/proc/healthcheck()
repair_damage(max_integrity) //The tank itself doesn't take damage
@@ -278,7 +263,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
if(isliving(A))
log_attack("[get_driver()] drove over [A] with [root]")
-
/obj/vehicle/multitile/hitbox/cm_armored/proc/get_driver()
return "Someone"
@@ -428,8 +412,8 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
/obj/vehicle/multitile/hitbox/cm_armored/attackby(obj/item/I, mob/user, params)
return root.attackby(I, user, params)
-/obj/vehicle/multitile/hitbox/cm_armored/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- return root.attack_alien(X, damage_amount)
+/obj/vehicle/multitile/hitbox/cm_armored/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ return root.attack_alien(xeno_attacker, damage_amount)
/obj/vehicle/multitile/hitbox/cm_armored/effect_smoke(obj/effect/particle_effect/smoke/S)
. = ..()
@@ -437,7 +421,7 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
return
if(CHECK_BITFIELD(S.smoke_traits, SMOKE_XENO_ACID))
var/obj/vehicle/multitile/root/cm_armored/T = root
- T.take_damage_type(30, "acid")
+ T.take_damage_type(30, ACID)
//A bit icky, but basically if you're adjacent to the tank hitbox, you are then adjacent to the root object
/obj/vehicle/multitile/root/cm_armored/Adjacent(atom/A)
@@ -477,7 +461,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
return ..()
-
//severity 1.0 explosions never really happen so we're gonna follow everyone else's example
/obj/vehicle/multitile/root/cm_armored/ex_act(severity)
@@ -489,7 +472,7 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
take_damage(rand(30, 40)) //Heavy explosions do some damage, but are largely deferred by the armour/bulk.
//Honestly copies some code from the Xeno files, just handling some special cases
-/obj/vehicle/multitile/root/cm_armored/attack_alien(mob/living/carbon/xenomorph/M, damage_amount = M.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+/obj/vehicle/multitile/root/cm_armored/attack_alien(mob/living/carbon/xenomorph/M, damage_amount = M.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
if(M.loc == entrance.loc && M.a_intent == INTENT_HELP)
handle_player_entrance(M) //will call the get out of tank proc on its own
@@ -523,7 +506,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
handle_player_entrance(user)
return
-
/obj/vehicle/multitile/root/cm_armored/Entered(atom/movable/A)
if(istype(A, /obj) && !istype(A, /obj/item/ammo_magazine/tank) && !istype(A, /obj/item/hardpoint))
A.forceMove(loc)
@@ -531,7 +513,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
return ..()
-
//Redistributes damage ratios based off of what things are attached (no armor means the armor doesn't mitigate any damage)
/obj/vehicle/multitile/root/cm_armored/proc/update_damage_distribs()
dmg_distribs = GLOB.armorvic_dmg_distributions.Copy() //Assume full installs
@@ -572,7 +553,6 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
if(!(O.flags_item & NOBLUDGEON))
take_damage_type(O.force * 0.05, "blunt", user) //Melee weapons from people do very little damage
-
/obj/vehicle/multitile/root/cm_armored/proc/handle_hardpoint_repair(obj/item/O, mob/user)
//Need to the what the hell you're doing
@@ -803,7 +783,5 @@ GLOBAL_LIST_INIT(armorvic_dmg_distributions, list(
update_damage_distribs()
update_icon()
-
-
/obj/vehicle/multitile/root/cm_armored/contents_explosion(severity)
return
diff --git a/code/modules/xenomorph/xeno_structures.dm b/code/modules/xenomorph/xeno_structures.dm
index be02df49348..55b5a858495 100644
--- a/code/modules/xenomorph/xeno_structures.dm
+++ b/code/modules/xenomorph/xeno_structures.dm
@@ -48,17 +48,16 @@
else
obj_destruction()
-/obj/structure/xeno/attack_alien(mob/living/carbon/xenomorph/X, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
- if(!(HAS_TRAIT(X, TRAIT_VALHALLA_XENO) && X.a_intent == INTENT_HARM && (tgui_alert(X, "Are you sure you want to tear down [src]?", "Tear down [src]?", list("Yes","No"))) == "Yes"))
+/obj/structure/xeno/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount, damage_type, damage_flag, effects, armor_penetration, isrightclick)
+ if(!(HAS_TRAIT(xeno_attacker, TRAIT_VALHALLA_XENO) && xeno_attacker.a_intent == INTENT_HARM && (tgui_alert(xeno_attacker, "Are you sure you want to tear down [src]?", "Tear down [src]?", list("Yes","No"))) == "Yes"))
return ..()
- if(!do_after(X, 3 SECONDS, NONE, src))
+ if(!do_after(xeno_attacker, 3 SECONDS, NONE, src))
return
- X.do_attack_animation(src, ATTACK_EFFECT_CLAW)
- balloon_alert_to_viewers("\The [X] tears down \the [src]!", "We tear down \the [src].")
+ xeno_attacker.do_attack_animation(src, ATTACK_EFFECT_CLAW)
+ balloon_alert_to_viewers("\The [xeno_attacker] tears down \the [src]!", "We tear down \the [src].")
playsound(src, "alien_resin_break", 25)
take_damage(max_integrity) // Ensure its destroyed
-
//Carrier trap
/obj/structure/xeno/trap
desc = "It looks like a hiding hole."
@@ -179,18 +178,6 @@
drop_hugger()
if(TRAP_SMOKE_NEURO, TRAP_SMOKE_ACID)
smoke.start()
-//RUTGMC EDIT START
-/* //RUTGMC edit - sprite and stats changes
- if(TRAP_ACID_WEAK)
- for(var/turf/acided AS in RANGE_TURFS(1, src))
- new /obj/effect/xenomorph/spray(acided, 7 SECONDS, XENO_DEFAULT_ACID_PUDDLE_DAMAGE)
- if(TRAP_ACID_NORMAL)
- for(var/turf/acided AS in RANGE_TURFS(1, src))
- new /obj/effect/xenomorph/spray(acided, 10 SECONDS, XENO_DEFAULT_ACID_PUDDLE_DAMAGE)
- if(TRAP_ACID_STRONG)
- for(var/turf/acided AS in RANGE_TURFS(1, src))
- new /obj/effect/xenomorph/spray(acided, 12 SECONDS, XENO_DEFAULT_ACID_PUDDLE_DAMAGE)
-*/
if(TRAP_ACID_WEAK)
for(var/turf/acided AS in RANGE_TURFS(1, src))
new /obj/effect/xenomorph/spray/weak(acided, 8 SECONDS, XENO_WEAK_ACID_PUDDLE_DAMAGE)
@@ -200,7 +187,6 @@
if(TRAP_ACID_STRONG)
for(var/turf/acided AS in RANGE_TURFS(1, src))
new /obj/effect/xenomorph/spray/strong(acided, 12 SECONDS, XENO_HIGH_ACID_PUDDLE_DAMAGE)
-//RUTGMC EDIT END
xeno_message("A [trap_type] trap at [AREACOORD_NO_Z(src)] has been triggered!", "xenoannounce", 5, hivenumber, FALSE, get_turf(src), 'sound/voice/alien_talk2.ogg', FALSE, null, /atom/movable/screen/arrow/attack_order_arrow, COLOR_ORANGE, TRUE)
set_trap_type(null)
@@ -212,31 +198,31 @@
hugger = null
set_trap_type(null)
-/obj/structure/xeno/trap/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/xeno/trap/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- if(X.a_intent == INTENT_HARM)
+ if(xeno_attacker.a_intent == INTENT_HARM)
return ..()
if(trap_type == TRAP_HUGGER)
- if(!(X.xeno_caste.can_flags & CASTE_CAN_HOLD_FACEHUGGERS))
+ if(!(xeno_attacker.xeno_caste.can_flags & CASTE_CAN_HOLD_FACEHUGGERS))
return
if(!hugger)
- balloon_alert(X, "It is empty")
+ balloon_alert(xeno_attacker, "It is empty")
return
- X.put_in_active_hand(hugger)
+ xeno_attacker.put_in_active_hand(hugger)
hugger.go_active(TRUE)
hugger = null
set_trap_type(null)
- balloon_alert(X, "Removed facehugger")
+ balloon_alert(xeno_attacker, "Removed facehugger")
return
- var/datum/action/ability/activable/xeno/corrosive_acid/acid_action = locate(/datum/action/ability/activable/xeno/corrosive_acid) in X.actions
- if(istype(X.ammo, /datum/ammo/xeno/boiler_gas))
- var/datum/ammo/xeno/boiler_gas/boiler_glob = X.ammo
- if(!boiler_glob.enhance_trap(src, X))
+ var/datum/action/ability/activable/xeno/corrosive_acid/acid_action = locate(/datum/action/ability/activable/xeno/corrosive_acid) in xeno_attacker.actions
+ if(istype(xeno_attacker.ammo, /datum/ammo/xeno/boiler_gas))
+ var/datum/ammo/xeno/boiler_gas/boiler_glob = xeno_attacker.ammo
+ if(!boiler_glob.enhance_trap(src, xeno_attacker))
return
else if(acid_action)
- if(!do_after(X, 2 SECONDS, NONE, src))
+ if(!do_after(xeno_attacker, 2 SECONDS, NONE, src))
return
switch(acid_action.acid_type)
if(/obj/effect/xenomorph/acid/weak)
@@ -247,8 +233,8 @@
set_trap_type(TRAP_ACID_STRONG)
else
return // nothing happened!
- playsound(X.loc, 'sound/effects/refill.ogg', 25, 1)
- balloon_alert(X, "Filled with [trap_type]")
+ playsound(xeno_attacker.loc, 'sound/effects/refill.ogg', 25, 1)
+ balloon_alert(xeno_attacker, "Filled with [trap_type]")
/obj/structure/xeno/trap/attackby(obj/item/I, mob/user, params)
. = ..()
@@ -365,25 +351,25 @@ TUNNEL
return ..()
attack_alien(user)
-/obj/structure/xeno/tunnel/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(!istype(X) || X.stat || X.lying_angle || X.status_flags & INCORPOREAL)
+/obj/structure/xeno/tunnel/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(!istype(xeno_attacker) || xeno_attacker.stat || xeno_attacker.lying_angle || xeno_attacker.status_flags & INCORPOREAL)
return
- if(X.a_intent == INTENT_HARM && X == creator)
- balloon_alert(X, "Filling in tunnel...")
- if(do_after(X, HIVELORD_TUNNEL_DISMANTLE_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
+ if(xeno_attacker.a_intent == INTENT_HARM && xeno_attacker == creator)
+ balloon_alert(xeno_attacker, "Filling in tunnel...")
+ if(do_after(xeno_attacker, HIVELORD_TUNNEL_DISMANTLE_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
deconstruct(FALSE)
return
- if(X.anchored)
- balloon_alert(X, "Cannot enter while immobile")
+ if(xeno_attacker.anchored)
+ balloon_alert(xeno_attacker, "Cannot enter while immobile")
return FALSE
if(length(GLOB.xeno_tunnels_by_hive[hivenumber]) < 2)
- balloon_alert(X, "No exit tunnel")
+ balloon_alert(xeno_attacker, "No exit tunnel")
return FALSE
- pick_a_tunnel(X)
+ pick_a_tunnel(xeno_attacker)
/obj/structure/xeno/tunnel/attack_larva(mob/living/carbon/xenomorph/larva/L) //So larvas can actually use tunnels
attack_alien(L)
@@ -585,46 +571,46 @@ TUNNEL
return ..()
attack_alien(user)
-/obj/structure/xeno/acidwell/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.a_intent == INTENT_HARM && (CHECK_BITFIELD(X.xeno_caste.caste_flags, CASTE_IS_BUILDER) || X == creator) ) //If we're a builder caste or the creator and we're on harm intent, deconstruct it.
- balloon_alert(X, "Removing...")
- if(!do_after(X, XENO_ACID_WELL_FILL_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE))
- balloon_alert(X, "Stopped removing")
+/obj/structure/xeno/acidwell/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.a_intent == INTENT_HARM && (CHECK_BITFIELD(xeno_attacker.xeno_caste.caste_flags, CASTE_IS_BUILDER) || xeno_attacker == creator) ) //If we're a builder caste or the creator and we're on harm intent, deconstruct it.
+ balloon_alert(xeno_attacker, "Removing...")
+ if(!do_after(xeno_attacker, XENO_ACID_WELL_FILL_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_HOSTILE))
+ balloon_alert(xeno_attacker, "Stopped removing")
return
playsound(src, "alien_resin_break", 25)
- deconstruct(TRUE, X)
+ deconstruct(TRUE, xeno_attacker)
return
if(charges >= 5)
- balloon_alert(X, "Already full")
+ balloon_alert(xeno_attacker, "Already full")
return
if(charging)
- balloon_alert(X, "Already being filled")
+ balloon_alert(xeno_attacker, "Already being filled")
return
- if(X.plasma_stored < XENO_ACID_WELL_FILL_COST) //You need to have enough plasma to attempt to fill the well
- balloon_alert(X, "Need [XENO_ACID_WELL_FILL_COST - X.plasma_stored] more plasma")
+ if(xeno_attacker.plasma_stored < XENO_ACID_WELL_FILL_COST) //You need to have enough plasma to attempt to fill the well
+ balloon_alert(xeno_attacker, "Need [XENO_ACID_WELL_FILL_COST - xeno_attacker.plasma_stored] more plasma")
return
charging = TRUE
- balloon_alert(X, "Refilling...")
- if(!do_after(X, XENO_ACID_WELL_FILL_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
+ balloon_alert(xeno_attacker, "Refilling...")
+ if(!do_after(xeno_attacker, XENO_ACID_WELL_FILL_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
charging = FALSE
- balloon_alert(X, "Aborted refilling")
+ balloon_alert(xeno_attacker, "Aborted refilling")
return
- if(X.plasma_stored < XENO_ACID_WELL_FILL_COST)
+ if(xeno_attacker.plasma_stored < XENO_ACID_WELL_FILL_COST)
charging = FALSE
- balloon_alert(X, "Need [XENO_ACID_WELL_FILL_COST - X.plasma_stored] more plasma")
+ balloon_alert(xeno_attacker, "Need [XENO_ACID_WELL_FILL_COST - xeno_attacker.plasma_stored] more plasma")
return
- X.plasma_stored -= XENO_ACID_WELL_FILL_COST
+ xeno_attacker.plasma_stored -= XENO_ACID_WELL_FILL_COST
charges++
charging = FALSE
update_icon()
- balloon_alert(X, "Now has [charges] / [XENO_ACID_WELL_MAX_CHARGES] charges")
- to_chat(X,span_xenonotice("We add acid to [src]. It is currently has [charges] / [XENO_ACID_WELL_MAX_CHARGES] charges.") )
+ balloon_alert(xeno_attacker, "Now has [charges] / [XENO_ACID_WELL_MAX_CHARGES] charges")
+ to_chat(xeno_attacker,span_xenonotice("We add acid to [src]. It is currently has [charges] / [XENO_ACID_WELL_MAX_CHARGES] charges.") )
/obj/structure/xeno/acidwell/proc/on_cross(datum/source, atom/movable/A, oldloc, oldlocs)
SIGNAL_HANDLER
@@ -727,21 +713,21 @@ TUNNEL
if(chargesleft >= maxcharges)
return PROCESS_KILL
-/obj/structure/xeno/resin_jelly_pod/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if(X.status_flags & INCORPOREAL)
+/obj/structure/xeno/resin_jelly_pod/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if(xeno_attacker.status_flags & INCORPOREAL)
return FALSE
- if((X.a_intent == INTENT_HARM && isxenohivelord(X)) || X.hivenumber != hivenumber)
- balloon_alert(X, "Destroying...")
- if(do_after(X, HIVELORD_TUNNEL_DISMANTLE_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
+ if((xeno_attacker.a_intent == INTENT_HARM && isxenohivelord(xeno_attacker)) || xeno_attacker.hivenumber != hivenumber)
+ balloon_alert(xeno_attacker, "Destroying...")
+ if(do_after(xeno_attacker, HIVELORD_TUNNEL_DISMANTLE_TIME, IGNORE_HELD_ITEM, src, BUSY_ICON_BUILD))
deconstruct(FALSE)
return
if(!chargesleft)
- balloon_alert(X, "No jelly remaining")
- to_chat(X, span_xenonotice("We reach into \the [src], but only find dregs of resin. We should wait some more.") )
+ balloon_alert(xeno_attacker, "No jelly remaining")
+ to_chat(xeno_attacker, span_xenonotice("We reach into \the [src], but only find dregs of resin. We should wait some more.") )
return
- balloon_alert(X, "Retrieved jelly")
+ balloon_alert(xeno_attacker, "Retrieved jelly")
new /obj/item/resin_jelly(loc)
chargesleft--
if(!(datum_flags & DF_ISPROCESSING) && (chargesleft < maxcharges))
@@ -1273,15 +1259,15 @@ TUNNEL
return ..()
// Clicking on the tower brings up a radial menu that allows you to select the type of pheromone that this tower will emit.
-/obj/structure/xeno/pherotower/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- var/phero_choice = show_radial_menu(X, src, GLOB.pheromone_images_list, radius = 35, require_near = TRUE)
+/obj/structure/xeno/pherotower/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ var/phero_choice = show_radial_menu(xeno_attacker, src, GLOB.pheromone_images_list, radius = 35, require_near = TRUE)
if(!phero_choice)
return
QDEL_NULL(current_aura)
current_aura = SSaura.add_emitter(src, phero_choice, aura_radius, aura_strength, -1, FACTION_XENO, hivenumber)
- balloon_alert(X, "[phero_choice]")
+ balloon_alert(xeno_attacker, "[phero_choice]")
playsound(src, "alien_drool", 25)
update_icon()
@@ -1466,17 +1452,17 @@ TUNNEL
return ..()
return on_use(user)
-/obj/structure/xeno/plant/attack_alien(mob/living/carbon/xenomorph/X, damage_amount = X.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = "", effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
- if((X.status_flags & INCORPOREAL))
+/obj/structure/xeno/plant/attack_alien(mob/living/carbon/xenomorph/xeno_attacker, damage_amount = xeno_attacker.xeno_caste.melee_damage, damage_type = BRUTE, damage_flag = MELEE, effects = TRUE, armor_penetration = 0, isrightclick = FALSE)
+ if((xeno_attacker.status_flags & INCORPOREAL))
return FALSE
- if(X.a_intent == INTENT_HARM && isxenodrone(X))
- balloon_alert(X, "Uprooted the plant")
- X.do_attack_animation(src)
+ if(xeno_attacker.a_intent == INTENT_HARM && isxenodrone(xeno_attacker))
+ balloon_alert(xeno_attacker, "Uprooted the plant")
+ xeno_attacker.do_attack_animation(src)
deconstruct(FALSE)
return FALSE
- if(can_interact(X))
- return on_use(X)
+ if(can_interact(xeno_attacker))
+ return on_use(xeno_attacker)
return TRUE
/obj/structure/xeno/plant/heal_fruit
@@ -1587,7 +1573,6 @@ TUNNEL
playsound(user, "alien_drool", 25)
return ..()
-
/obj/structure/xeno/plant/stealth_plant
name = "night shade"
desc = "A beautiful flower, what purpose it could serve to the alien hive is beyond you however..."