mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 16:18:01 +01:00
Refactors armor into dedicated subtypes (#71986)
## About The Pull Request See title. ## Why It's Good For The Game Code is cleaner, and more readable/intuitive Technically closes https://github.com/tgstation/dev-cycles-initiative/issues/8 ## Changelog 🆑 refactor: armor, from the ground up basically /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
This commit is contained in:
@@ -24,7 +24,7 @@ RLD
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
custom_materials = list(/datum/material/iron=100000)
|
||||
req_access = list(ACCESS_ENGINE_EQUIP)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50)
|
||||
armor_type = /datum/armor/item_construction
|
||||
resistance_flags = FIRE_PROOF
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
var/matter = 0
|
||||
@@ -39,6 +39,10 @@ RLD
|
||||
var/datum/component/remote_materials/silo_mats //remote connection to the silo
|
||||
var/silo_link = FALSE //switch to use internal or remote storage
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/Initialize(mapload)
|
||||
. = ..()
|
||||
spark_system = new /datum/effect_system/spark_spread
|
||||
@@ -408,6 +412,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
|
||||
// `initial` does not work here. Neither does instantiating a wall/whatever
|
||||
// and referencing that. I don't know why.
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/proc/init_holographic_wall()
|
||||
return getHologramIcon(
|
||||
icon('icons/turf/walls/wall.dmi', "wall-0"),
|
||||
@@ -481,6 +489,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
name = "hologram"
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/effect/rcd_hologram/Initialize(mapload)
|
||||
. = ..()
|
||||
QDEL_IN(src, RCD_HOLOGRAM_FADE_TIME)
|
||||
@@ -747,6 +759,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
var/energyfactor = 72
|
||||
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/rcd/borg/useResource(amount, mob/user)
|
||||
if(!iscyborg(user))
|
||||
return 0
|
||||
@@ -848,6 +864,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
inhand_icon_state = "oldrcd"
|
||||
has_ammobar = FALSE
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/rcd/arcd/afterattack(atom/A, mob/user)
|
||||
. = ..()
|
||||
if(range_check(A,user))
|
||||
@@ -908,6 +928,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
var/list/display_options = list()
|
||||
var/color_choice = null
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/rld/Initialize(mapload)
|
||||
. = ..()
|
||||
for(var/option in original_options)
|
||||
@@ -1106,6 +1130,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
"Fifth Layer" = 5,
|
||||
)
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/plumbing/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -1359,6 +1387,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
has_ammobar = TRUE
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/plumbing/research/set_plumbing_designs()
|
||||
plumbing_design_types = list(
|
||||
//category 1 synthesizers
|
||||
@@ -1385,6 +1417,10 @@ GLOBAL_VAR_INIT(icon_holographic_window, init_holographic_window())
|
||||
icon_state = "plumberer_service"
|
||||
has_ammobar = TRUE
|
||||
|
||||
/datum/armor/item_construction
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/construction/plumbing/service/set_plumbing_designs()
|
||||
plumbing_design_types = list(
|
||||
//category 1 synthesizers
|
||||
|
||||
@@ -220,7 +220,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
slot_flags = ITEM_SLOT_BELT
|
||||
custom_materials = list(/datum/material/iron=75000, /datum/material/glass=37500)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50)
|
||||
armor_type = /datum/armor/item_pipe_dispenser
|
||||
resistance_flags = FIRE_PROOF
|
||||
///Sparks system used when changing device in the UI
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
@@ -261,6 +261,10 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
|
||||
/// Bitflags for upgrades
|
||||
var/upgrade_flags
|
||||
|
||||
/datum/armor/item_pipe_dispenser
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/pipe_dispenser/Initialize(mapload)
|
||||
. = ..()
|
||||
spark_system = new
|
||||
@@ -313,7 +317,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
|
||||
if(istype(target, /obj/machinery/air_sensor))
|
||||
if(!do_after(user, destroy_speed, target))
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
|
||||
|
||||
qdel(target)
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ RSF
|
||||
density = FALSE
|
||||
anchored = FALSE
|
||||
item_flags = NOBLUDGEON
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0)
|
||||
armor_type = /datum/armor/none
|
||||
///The current matter count
|
||||
var/matter = 0
|
||||
///The max amount of matter in the device
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
|
||||
slot_flags = ITEM_SLOT_ID
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/card_id
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
|
||||
/// Cached icon that has been built for this card. Intended for use in chat.
|
||||
@@ -102,6 +102,10 @@
|
||||
/// Boolean value. If TRUE, the [Intern] tag gets prepended to this ID card when the label is updated.
|
||||
var/is_intern = FALSE
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -835,6 +839,10 @@
|
||||
desc = "An ID card that allows access to bots maintenance protocols."
|
||||
trim = /datum/id_trim/away/old/robo
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/away/deep_storage //deepstorage.dmm space ruin
|
||||
name = "bunker access ID"
|
||||
|
||||
@@ -846,6 +854,10 @@
|
||||
var/department_name = ACCOUNT_CIV_NAME
|
||||
registered_age = null
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/departmental_budget/Initialize(mapload)
|
||||
. = ..()
|
||||
var/datum/bank_account/B = SSeconomy.get_dep_account(department_ID)
|
||||
@@ -869,6 +881,10 @@
|
||||
department_name = ACCOUNT_CAR_NAME
|
||||
icon_state = "car_budget" //saving up for a new tesla
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/departmental_budget/AltClick(mob/living/user)
|
||||
registered_account.bank_card_talk(span_warning("Withdrawing is not compatible with this card design."), TRUE) //prevents the vault bank machine being useless and putting money from the budget to your card to go over personal crates
|
||||
|
||||
@@ -899,6 +915,10 @@
|
||||
/// If this is set, will manually override the trim shown for SecHUDs. Intended for admins to VV edit and chameleon ID cards.
|
||||
var/sechud_icon_state_override = null
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/Initialize(mapload)
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_ITEM_EQUIPPED, PROC_REF(update_intern_status))
|
||||
@@ -1064,6 +1084,10 @@
|
||||
assigned_icon_state = "assigned_gold"
|
||||
wildcard_slots = WILDCARD_LIMIT_GOLD
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/gold/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_TASTEFULLY_THICK_ID_CARD, ROUNDSTART_TRAIT)
|
||||
@@ -1075,6 +1099,10 @@
|
||||
trim = /datum/id_trim/job/captain
|
||||
registered_age = null
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/gold/captains_spare/update_label() //so it doesn't change to Captain's ID card (Captain) on a sneeze
|
||||
if(registered_name == "Captain")
|
||||
name = "[initial(name)][(!assignment || assignment == "Captain") ? "" : " ([assignment])"]"
|
||||
@@ -1170,6 +1198,10 @@
|
||||
registered_name = "Captain"
|
||||
registered_age = null
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/black/syndicate_command/captain_id/syndie_spare/update_label()
|
||||
if(registered_name == "Captain")
|
||||
name = "[initial(name)][(!assignment || assignment == "Captain") ? "" : " ([assignment])"]"
|
||||
@@ -1187,6 +1219,10 @@
|
||||
trim = /datum/id_trim/admin
|
||||
wildcard_slots = WILDCARD_LIMIT_ADMIN
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/debug/Initialize(mapload)
|
||||
. = ..()
|
||||
registered_account = SSeconomy.get_dep_account(ACCOUNT_CAR)
|
||||
@@ -1216,6 +1252,10 @@
|
||||
/// Time left on a card till they can leave.
|
||||
var/time_left = 0
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/prisoner/attackby(obj/item/card/id/C, mob/user)
|
||||
..()
|
||||
var/list/id_access = C.GetAccess()
|
||||
@@ -1326,6 +1366,10 @@
|
||||
/// Weak ref to the ID card we're currently attempting to steal access from.
|
||||
var/datum/weakref/theft_target
|
||||
|
||||
/datum/armor/card_id
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/card/id/advanced/chameleon/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
throwforce = 6
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
actions_types = list(/datum/action/item_action/toggle_paddles)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50)
|
||||
armor_type = /datum/armor/item_defibrillator
|
||||
|
||||
var/obj/item/shockpaddles/paddle_type = /obj/item/shockpaddles
|
||||
/// If the paddles are equipped (1) or on the defib (0)
|
||||
@@ -44,6 +44,10 @@
|
||||
/// The icon state for the emagged overlay, not applied if null
|
||||
var/emagged_state = "defibunit-emagged"
|
||||
|
||||
/datum/armor/item_defibrillator
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/defibrillator/get_cell()
|
||||
return cell
|
||||
|
||||
@@ -290,6 +294,10 @@
|
||||
nocell_state = "defibcompact-nocell"
|
||||
emagged_state = "defibcompact-emagged"
|
||||
|
||||
/datum/armor/item_defibrillator
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/defibrillator/compact/item_action_slot_check(slot, mob/user)
|
||||
if(slot & user.getBeltSlot())
|
||||
return TRUE
|
||||
@@ -316,6 +324,10 @@
|
||||
/obj/item/defibrillator/compact/combat/loaded
|
||||
cell_removable = FALSE // Don't let people just have an infinite power cell
|
||||
|
||||
/datum/armor/item_defibrillator
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/defibrillator/compact/combat/loaded/Initialize(mapload)
|
||||
. = ..()
|
||||
cell = new /obj/item/stock_parts/cell/infinite(src)
|
||||
@@ -360,6 +372,10 @@
|
||||
var/recharge_time = 6 SECONDS // Only applies to defibs that do not require a defibrilator. See: do_success()
|
||||
var/combat = FALSE //If it penetrates armor and gives additional functionality
|
||||
|
||||
/datum/armor/item_defibrillator
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/shockpaddles/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/update_icon_updates_onmob, ITEM_SLOT_HANDS|ITEM_SLOT_BACK)
|
||||
@@ -685,6 +701,10 @@
|
||||
inhand_icon_state = "defibpaddles0"
|
||||
req_defib = FALSE
|
||||
|
||||
/datum/armor/item_defibrillator
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/shockpaddles/cyborg/attack(mob/M, mob/user)
|
||||
if(iscyborg(user))
|
||||
var/mob/living/silicon/robot/R = user
|
||||
|
||||
@@ -104,9 +104,17 @@
|
||||
mouse_opacity = MOUSE_OPACITY_OPAQUE
|
||||
resistance_flags = INDESTRUCTIBLE
|
||||
can_atmos_pass = ATMOS_PASS_DENSITY
|
||||
armor = list(MELEE = 0, BULLET = 25, LASER = 50, ENERGY = 50, BOMB = 25, BIO = 0, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/structure_projected_forcefield
|
||||
var/obj/item/forcefield_projector/generator
|
||||
|
||||
/datum/armor/structure_projected_forcefield
|
||||
bullet = 25
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 25
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/structure/projected_forcefield/Initialize(mapload, obj/item/forcefield_projector/origin)
|
||||
. = ..()
|
||||
generator = origin
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
||||
block_chance = 75
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70)
|
||||
armor_type = /datum/armor/item_dualsaber
|
||||
resistance_flags = FIRE_PROOF
|
||||
wound_bonus = -10
|
||||
bare_wound_bonus = 20
|
||||
@@ -35,6 +35,10 @@
|
||||
var/hacked = FALSE
|
||||
var/list/possible_colors = list("red", "blue", "green", "purple")
|
||||
|
||||
/datum/armor/item_dualsaber
|
||||
fire = 100
|
||||
acid = 70
|
||||
|
||||
/obj/item/dualsaber/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, \
|
||||
@@ -188,6 +192,10 @@
|
||||
/obj/item/dualsaber/purple
|
||||
possible_colors = list("purple")
|
||||
|
||||
/datum/armor/item_dualsaber
|
||||
fire = 100
|
||||
acid = 70
|
||||
|
||||
/obj/item/dualsaber/attackby(obj/item/W, mob/user, params)
|
||||
if(W.tool_behaviour == TOOL_MULTITOOL)
|
||||
if(!hacked)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
attack_verb_simple = list("attack", "chop", "cleave", "tear", "lacerate", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = SHARP_EDGED
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30)
|
||||
armor_type = /datum/armor/item_fireaxe
|
||||
resistance_flags = FIRE_PROOF
|
||||
wound_bonus = -15
|
||||
bare_wound_bonus = 20
|
||||
@@ -28,6 +28,10 @@
|
||||
/// How much damage to do wielded
|
||||
var/force_wielded = 24
|
||||
|
||||
/datum/armor/item_fireaxe
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/fireaxe/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, \
|
||||
@@ -70,6 +74,10 @@
|
||||
/*
|
||||
* Metal Hydrogen Axe
|
||||
*/
|
||||
/datum/armor/item_fireaxe
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/fireaxe/metal_h2_axe
|
||||
icon_state = "metalh2_axe0"
|
||||
base_icon_state = "metalh2_axe"
|
||||
|
||||
@@ -40,13 +40,17 @@
|
||||
throw_range = 5
|
||||
custom_materials = list(/datum/material/iron=500)
|
||||
breakouttime = 1 MINUTES
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50)
|
||||
armor_type = /datum/armor/restraints_handcuffs
|
||||
custom_price = PAYCHECK_COMMAND * 0.35
|
||||
///Sound that plays when starting to put handcuffs on someone
|
||||
var/cuffsound = 'sound/weapons/handcuffs.ogg'
|
||||
///If set, handcuffs will be destroyed on application and leave behind whatever this is set to.
|
||||
var/trashtype = null
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/handcuffs/attack(mob/living/carbon/C, mob/living/user)
|
||||
if(!istype(C))
|
||||
return
|
||||
@@ -148,6 +152,10 @@
|
||||
breakouttime = 30 SECONDS
|
||||
cuffsound = 'sound/weapons/cablecuff.ogg'
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/handcuffs/cable/Initialize(mapload, new_color)
|
||||
. = ..()
|
||||
|
||||
@@ -266,6 +274,10 @@
|
||||
cable_color = CABLE_COLOR_WHITE
|
||||
inhand_icon_state = "coil_white"
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params) //Slapcrafting
|
||||
if(istype(I, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/R = I
|
||||
@@ -323,6 +335,10 @@
|
||||
desc = "A pair of broken zipties."
|
||||
icon_state = "cuff_used"
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/handcuffs/cable/zipties/used/attack()
|
||||
return
|
||||
|
||||
@@ -379,6 +395,10 @@
|
||||
/obj/item/restraints/legcuffs/beartrap/prearmed
|
||||
armed = TRUE
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/Initialize(mapload)
|
||||
. = ..()
|
||||
update_appearance()
|
||||
@@ -468,6 +488,10 @@
|
||||
item_flags = DROPDEL
|
||||
flags_1 = NONE
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/Initialize(mapload)
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, PROC_REF(dissipate)), 100)
|
||||
@@ -502,6 +526,10 @@
|
||||
///Amount of time to knock the target down for once it's hit in deciseconds.
|
||||
var/knockdown = 0
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/legcuffs/bola/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, gentle = FALSE, quickstart = TRUE)
|
||||
if(!..())
|
||||
return
|
||||
@@ -554,6 +582,10 @@
|
||||
breakouttime = 6 SECONDS
|
||||
custom_price = PAYCHECK_COMMAND * 0.35
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/legcuffs/bola/energy/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_UNCATCHABLE, TRAIT_GENERIC) // People said energy bolas being uncatchable is a feature.
|
||||
@@ -577,6 +609,10 @@
|
||||
slowdown = 0
|
||||
var/datum/status_effect/gonbola_pacify/effectReference
|
||||
|
||||
/datum/armor/restraints_handcuffs
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/restraints/legcuffs/bola/gonbola/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
. = ..()
|
||||
if(iscarbon(hit_atom))
|
||||
|
||||
@@ -31,11 +31,15 @@
|
||||
attack_verb_continuous = list("attacks", "stabs", "pokes")
|
||||
attack_verb_simple = list("attack", "stab", "poke")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/kitchen_fork
|
||||
sharpness = SHARP_POINTY
|
||||
var/datum/reagent/forkload //used to eat omelette
|
||||
custom_price = PAYCHECK_LOWER
|
||||
|
||||
/datum/armor/kitchen_fork
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/kitchen/fork/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/eyestab)
|
||||
@@ -71,6 +75,10 @@
|
||||
custom_materials = list(/datum/material/plastic=80)
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
|
||||
/datum/armor/kitchen_fork
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/kitchen/fork/plastic/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/easily_fragmented, PLASTIC_BREAK_PROBABILITY)
|
||||
@@ -94,6 +102,10 @@
|
||||
sharpness = SHARP_EDGED
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
|
||||
/datum/armor/kitchen_fork
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/knife/plastic/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/easily_fragmented, PLASTIC_BREAK_PROBABILITY)
|
||||
@@ -126,6 +138,10 @@
|
||||
custom_price = PAYCHECK_CREW * 2
|
||||
bare_wound_bonus = 14
|
||||
|
||||
/datum/armor/kitchen_fork
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/kitchen/rollingpin/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message(span_suicide("[user] begins flattening [user.p_their()] head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
return BRUTELOSS
|
||||
@@ -142,7 +158,7 @@
|
||||
throw_range = 5
|
||||
attack_verb_simple = list("whack", "spoon", "tap")
|
||||
attack_verb_continuous = list("whacks", "spoons", "taps")
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/kitchen_spoon
|
||||
custom_materials = list(/datum/material/iron=120)
|
||||
custom_price = PAYCHECK_LOWER * 5
|
||||
tool_behaviour = TOOL_MINING
|
||||
@@ -156,6 +172,10 @@
|
||||
custom_price = PAYCHECK_LOWER * 2
|
||||
toolspeed = 75 // The plastic spoon takes 5 minutes to dig through a single mineral turf... It's one, continuous, breakable, do_after...
|
||||
|
||||
/datum/armor/kitchen_spoon
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/kitchen/spoon/plastic/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/easily_fragmented, PLASTIC_BREAK_PROBABILITY)
|
||||
|
||||
@@ -20,12 +20,16 @@
|
||||
attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
||||
attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
||||
sharpness = SHARP_EDGED
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 50)
|
||||
armor_type = /datum/armor/item_knife
|
||||
var/bayonet = FALSE //Can this be attached to a gun?
|
||||
wound_bonus = 5
|
||||
bare_wound_bonus = 15
|
||||
tool_behaviour = TOOL_KNIFE
|
||||
|
||||
/datum/armor/item_knife
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/knife/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/eyestab)
|
||||
@@ -162,7 +166,7 @@
|
||||
throwforce = 12
|
||||
attack_verb_continuous = list("shanks", "shivs")
|
||||
attack_verb_simple = list("shank", "shiv")
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0)
|
||||
armor_type = /datum/armor/none
|
||||
custom_materials = list(/datum/material/glass=400)
|
||||
|
||||
/obj/item/knife/shiv/plasma
|
||||
@@ -172,9 +176,18 @@
|
||||
desc = "A makeshift plasma glass shiv."
|
||||
force = 9
|
||||
throwforce = 13
|
||||
armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50)
|
||||
armor_type = /datum/armor/shiv_plasma
|
||||
custom_materials = list(/datum/material/glass=400, /datum/material/plasma=200)
|
||||
|
||||
/datum/armor/shiv_plasma
|
||||
melee = 25
|
||||
bullet = 25
|
||||
laser = 25
|
||||
energy = 25
|
||||
bomb = 25
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/knife/shiv/titanium
|
||||
name = "titanium shiv"
|
||||
icon_state = "titaniumshiv"
|
||||
@@ -183,9 +196,18 @@
|
||||
throwforce = 14
|
||||
throw_range = 7
|
||||
wound_bonus = 10
|
||||
armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50)
|
||||
armor_type = /datum/armor/shiv_titanium
|
||||
custom_materials = list(/datum/material/glass=400, /datum/material/titanium=200)
|
||||
|
||||
/datum/armor/shiv_titanium
|
||||
melee = 25
|
||||
bullet = 25
|
||||
laser = 25
|
||||
energy = 25
|
||||
bomb = 25
|
||||
fire = 50
|
||||
acid = 50
|
||||
|
||||
/obj/item/knife/shiv/plastitanium
|
||||
name = "plastitanium shiv"
|
||||
icon_state = "plastitaniumshiv"
|
||||
@@ -197,9 +219,18 @@
|
||||
throw_range = 8
|
||||
wound_bonus = 10
|
||||
bare_wound_bonus = 20
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 0, FIRE = 75, ACID = 75)
|
||||
armor_type = /datum/armor/shiv_plastitanium
|
||||
custom_materials = list(/datum/material/glass=400, /datum/material/alloy/plastitanium=200)
|
||||
|
||||
/datum/armor/shiv_plastitanium
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 50
|
||||
fire = 75
|
||||
acid = 75
|
||||
|
||||
/obj/item/knife/shiv/carrot
|
||||
name = "carrot shiv"
|
||||
icon_state = "carrotshiv"
|
||||
|
||||
@@ -395,7 +395,7 @@
|
||||
attack_verb_continuous = list("beats")
|
||||
attack_verb_simple = list("beat")
|
||||
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 80, ACID = 80)
|
||||
armor_type = /datum/armor/baton_security
|
||||
|
||||
throwforce = 7
|
||||
stamina_damage = 60
|
||||
@@ -415,6 +415,11 @@
|
||||
var/can_remove_cell = TRUE
|
||||
var/convertible = TRUE //if it can be converted with a conversion kit
|
||||
|
||||
/datum/armor/baton_security
|
||||
bomb = 50
|
||||
fire = 80
|
||||
acid = 80
|
||||
|
||||
/obj/item/melee/baton/security/Initialize(mapload)
|
||||
. = ..()
|
||||
if(preload_cell_type)
|
||||
@@ -647,6 +652,11 @@
|
||||
convertible = FALSE
|
||||
var/obj/item/assembly/igniter/sparkler
|
||||
|
||||
/datum/armor/baton_security
|
||||
bomb = 50
|
||||
fire = 80
|
||||
acid = 80
|
||||
|
||||
/obj/item/melee/baton/security/cattleprod/Initialize(mapload)
|
||||
. = ..()
|
||||
sparkler = new (src)
|
||||
@@ -689,6 +699,11 @@
|
||||
convertible = FALSE
|
||||
custom_materials = list(/datum/material/iron = 10000, /datum/material/glass = 4000, /datum/material/silver = 10000, /datum/material/gold = 2000)
|
||||
|
||||
/datum/armor/baton_security
|
||||
bomb = 50
|
||||
fire = 80
|
||||
acid = 80
|
||||
|
||||
/obj/item/melee/baton/security/boomerang/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/boomerang, throw_range+2, TRUE)
|
||||
@@ -712,6 +727,11 @@
|
||||
inhand_icon_state = "teleprod"
|
||||
slot_flags = null
|
||||
|
||||
/datum/armor/baton_security
|
||||
bomb = 50
|
||||
fire = 80
|
||||
acid = 80
|
||||
|
||||
/obj/item/melee/baton/security/cattleprod/teleprod/clumsy_check(mob/living/carbon/human/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/melee/energy
|
||||
icon = 'icons/obj/weapons/transforming_energy.dmi'
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30)
|
||||
armor_type = /datum/armor/melee_energy
|
||||
attack_verb_continuous = list("hits", "taps", "pokes")
|
||||
attack_verb_simple = list("hit", "tap", "poke")
|
||||
resistance_flags = FIRE_PROOF
|
||||
@@ -30,6 +30,10 @@
|
||||
/// The heat given off when active.
|
||||
var/active_heat = 3500
|
||||
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/Initialize(mapload)
|
||||
. = ..()
|
||||
make_transformable()
|
||||
@@ -146,6 +150,10 @@
|
||||
active_throwforce = 30
|
||||
active_w_class = WEIGHT_CLASS_HUGE
|
||||
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/axe/make_transformable()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
force_on = active_force, \
|
||||
@@ -176,6 +184,10 @@
|
||||
block_chance = 50
|
||||
embedding = list("embed_chance" = 75, "impact_pain_mult" = 10)
|
||||
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(blade_active)
|
||||
return ..()
|
||||
@@ -187,6 +199,10 @@
|
||||
/// The cell cost of hitting something.
|
||||
var/hitcost = 50
|
||||
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/sword/cyborg/attack(mob/target, mob/living/silicon/robot/user)
|
||||
if(!user.cell)
|
||||
return
|
||||
@@ -236,6 +252,10 @@
|
||||
var/hacked = FALSE
|
||||
var/hacked_color
|
||||
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/sword/saber/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!sword_color_icon && LAZYLEN(possible_sword_colors))
|
||||
@@ -271,6 +291,10 @@
|
||||
/obj/item/melee/energy/sword/saber/purple
|
||||
sword_color_icon = "purple"
|
||||
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/sword/saber/multitool_act(mob/living/user, obj/item/tool)
|
||||
if(hacked)
|
||||
to_chat(user, span_warning("It's already fabulous!"))
|
||||
@@ -314,6 +338,10 @@
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
|
||||
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
|
||||
/datum/armor/melee_energy
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/melee/energy/blade/Initialize(mapload)
|
||||
. = ..()
|
||||
spark_system = new /datum/effect_system/spark_spread()
|
||||
|
||||
@@ -129,9 +129,13 @@
|
||||
icon = 'icons/obj/pillow.dmi'
|
||||
worn_icon = 'icons/mob/clothing/suits/pillow.dmi'
|
||||
icon_state = "pillow_suit"
|
||||
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 75) //fluffy amor
|
||||
armor_type = /datum/armor/suit_pillow_suit
|
||||
var/obj/item/pillow/unstoppably_plushed
|
||||
|
||||
/datum/armor/suit_pillow_suit
|
||||
melee = 5
|
||||
acid = 75
|
||||
|
||||
/obj/item/clothing/suit/pillow_suit/Initialize(mapload)
|
||||
. = ..()
|
||||
unstoppably_plushed = new(src)
|
||||
@@ -150,7 +154,11 @@
|
||||
icon_state = "pillowcase_hat"
|
||||
body_parts_covered = HEAD
|
||||
flags_inv = HIDEHAIR|HIDEEARS
|
||||
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 75) //fluffy amor
|
||||
armor_type = /datum/armor/head_pillow_hood
|
||||
|
||||
/datum/armor/head_pillow_hood
|
||||
melee = 5
|
||||
acid = 75
|
||||
|
||||
/obj/item/clothing/neck/pillow_tag
|
||||
name = "pillow tag"
|
||||
|
||||
@@ -19,9 +19,13 @@
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
sharpness = SHARP_EDGED
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30)
|
||||
armor_type = /datum/armor/item_pitchfork
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/datum/armor/item_pitchfork
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/pitchfork/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=7, force_wielded=15, icon_wielded="[base_icon_state]1")
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
inhand_icon_state = "bulldog"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi'
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 60, ACID = 50)
|
||||
armor_type = /datum/armor/item_pneumatic_cannon
|
||||
var/maxWeightClass = 20 //The max weight of items that can fit into the cannon
|
||||
var/loadedWeightClass = 0 //The weight of items currently in the cannon
|
||||
var/obj/item/tank/internals/tank = null //The gas tank that is drawn from to fire things
|
||||
@@ -38,6 +38,10 @@
|
||||
trigger_guard = TRIGGER_GUARD_NORMAL
|
||||
|
||||
|
||||
/datum/armor/item_pneumatic_cannon
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/pneumatic_cannon/Initialize(mapload)
|
||||
. = ..()
|
||||
if(selfcharge)
|
||||
@@ -307,6 +311,10 @@
|
||||
clumsyCheck = FALSE
|
||||
var/static/list/pie_typecache = typecacheof(/obj/item/food/pie)
|
||||
|
||||
/datum/armor/item_pneumatic_cannon
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/pneumatic_cannon/pie/Initialize(mapload)
|
||||
. = ..()
|
||||
allowed_typecache = pie_typecache
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
throwforce = 10
|
||||
throw_range = 7
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 40)
|
||||
armor_type = /datum/armor/melee_powerfist
|
||||
resistance_flags = FIRE_PROOF
|
||||
/// Delay between attacks
|
||||
var/click_delay = 0.15 SECONDS
|
||||
@@ -31,6 +31,10 @@
|
||||
/// Tank used for the gauntlet's piston-ram.
|
||||
var/obj/item/tank/internals/tank
|
||||
|
||||
/datum/armor/melee_powerfist
|
||||
fire = 100
|
||||
acid = 40
|
||||
|
||||
/obj/item/melee/powerfist/examine(mob/user)
|
||||
. = ..()
|
||||
if(!in_range(user, src))
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
explosion_block = 3
|
||||
heat_proof = TRUE
|
||||
max_integrity = 600
|
||||
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/door_puzzle
|
||||
resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
|
||||
move_resist = MOVE_FORCE_OVERPOWERING
|
||||
damage_deflection = 70
|
||||
@@ -50,6 +50,16 @@
|
||||
var/open_message = "The door beeps, and slides opens."
|
||||
|
||||
//Standard Expressions to make keycard doors basically un-cheeseable
|
||||
/datum/armor/door_puzzle
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/machinery/door/puzzle/Bumped(atom/movable/AM)
|
||||
return !density && ..()
|
||||
|
||||
@@ -78,6 +88,16 @@
|
||||
/obj/machinery/door/puzzle/keycard
|
||||
desc = "This door only opens when a keycard is swiped. It looks virtually indestructible."
|
||||
|
||||
/datum/armor/door_puzzle
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/machinery/door/puzzle/keycard/attackby(obj/item/attacking_item, mob/user, params)
|
||||
. = ..()
|
||||
if(!istype(attacking_item, /obj/item/keycard))
|
||||
@@ -100,6 +120,16 @@
|
||||
/obj/machinery/door/puzzle/light
|
||||
desc = "This door only opens when a linked mechanism is powered. It looks virtually indestructible."
|
||||
|
||||
/datum/armor/door_puzzle
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/machinery/door/puzzle/light/Initialize(mapload)
|
||||
. = ..()
|
||||
RegisterSignal(SSdcs, COMSIG_GLOB_LIGHT_MECHANISM_COMPLETED, PROC_REF(check_mechanism))
|
||||
@@ -141,6 +171,16 @@
|
||||
var/reward = /obj/item/food/cookie
|
||||
var/claimed = FALSE
|
||||
|
||||
/datum/armor/door_puzzle
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/pressure_plate/hologrid/Initialize(mapload)
|
||||
. = ..()
|
||||
if(undertile_pressureplate)
|
||||
@@ -174,7 +214,7 @@
|
||||
icon_state = "light_puzzle"
|
||||
anchored = TRUE
|
||||
explosion_block = 3
|
||||
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/structure_light_puzzle
|
||||
resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
|
||||
light_range = MINIMUM_USEFUL_LIGHT_RANGE
|
||||
light_power = 3
|
||||
@@ -189,6 +229,16 @@
|
||||
/// Banned combinations of the list in decimal
|
||||
var/static/list/banned_combinations = list(-1, 47, 95, 203, 311, 325, 422, 473, 488, 500, 511)
|
||||
|
||||
/datum/armor/structure_light_puzzle
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/structure/light_puzzle/Initialize(mapload)
|
||||
. = ..()
|
||||
var/generated_board = -1
|
||||
|
||||
@@ -276,7 +276,16 @@
|
||||
inhand_icon_state = null
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 60, BIO = 0, FIRE = 60, ACID = 60)
|
||||
armor_type = /datum/armor/plate_crusader
|
||||
|
||||
/datum/armor/plate_crusader
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 60
|
||||
fire = 60
|
||||
acid = 60
|
||||
|
||||
/obj/item/clothing/head/helmet/plate/crusader/blue
|
||||
icon_state = "crusader-blue"
|
||||
@@ -293,9 +302,19 @@
|
||||
icon_state = null
|
||||
inhand_icon_state = null
|
||||
flags_1 = 0
|
||||
armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 70, BIO = 50, FIRE = 60, ACID = 60) //religion protects you from disease, honk.
|
||||
armor_type = /datum/armor/crusader_prophet
|
||||
worn_y_offset = 6
|
||||
|
||||
/datum/armor/crusader_prophet
|
||||
melee = 60
|
||||
bullet = 60
|
||||
laser = 60
|
||||
energy = 60
|
||||
bomb = 70
|
||||
bio = 50
|
||||
fire = 60
|
||||
acid = 60
|
||||
|
||||
/obj/item/clothing/head/helmet/plate/crusader/prophet/red
|
||||
icon_state = "prophet-red"
|
||||
inhand_icon_state = null
|
||||
@@ -354,13 +373,22 @@
|
||||
desc = "Metal boots, they look heavy."
|
||||
icon_state = "crusader"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 60, BIO = 0, FIRE = 60, ACID = 60) //does this even do anything on boots?
|
||||
armor_type = /datum/armor/shoes_plate
|
||||
clothing_flags = NOSLIP
|
||||
cold_protection = FEET
|
||||
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
|
||||
heat_protection = FEET
|
||||
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
|
||||
|
||||
/datum/armor/shoes_plate
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 60
|
||||
fire = 60
|
||||
acid = 60
|
||||
|
||||
/obj/item/clothing/shoes/plate/red
|
||||
icon_state = "crusader-red"
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
attack_verb_continuous = list("shoves", "bashes")
|
||||
attack_verb_simple = list("shove", "bash")
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 80, ACID = 70)
|
||||
armor_type = /datum/armor/item_shield
|
||||
/// makes beam projectiles pass through the shield
|
||||
var/transparent = FALSE
|
||||
/// if the shield will break by sustaining damage
|
||||
@@ -26,6 +26,14 @@
|
||||
/// baton bash cooldown
|
||||
COOLDOWN_DECLARE(baton_bash)
|
||||
|
||||
/datum/armor/item_shield
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 30
|
||||
fire = 80
|
||||
acid = 70
|
||||
|
||||
/obj/item/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(transparent && (hitby.pass_flags & PASSGLASS))
|
||||
return FALSE
|
||||
@@ -88,7 +96,7 @@
|
||||
/obj/item/shield/roman/fake
|
||||
desc = "Bears an inscription on the inside: <i>\"Romanes venio domus\"</i>. It appears to be a bit flimsy."
|
||||
block_chance = 0
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0)
|
||||
armor_type = /datum/armor/none
|
||||
max_integrity = 30
|
||||
|
||||
/obj/item/shield/riot
|
||||
@@ -102,6 +110,14 @@
|
||||
shield_break_sound = 'sound/effects/glassbr3.ogg'
|
||||
shield_break_leftover = /obj/item/shard
|
||||
|
||||
/datum/armor/item_shield
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 30
|
||||
fire = 80
|
||||
acid = 70
|
||||
|
||||
/obj/item/shield/riot/attackby(obj/item/attackby_item, mob/user, params)
|
||||
if(istype(attackby_item, /obj/item/melee/baton))
|
||||
if(!COOLDOWN_FINISHED(src, baton_bash))
|
||||
@@ -128,6 +144,14 @@
|
||||
inhand_icon_state = "flashshield"
|
||||
var/obj/item/assembly/flash/handheld/embedded_flash = /obj/item/assembly/flash/handheld
|
||||
|
||||
/datum/armor/item_shield
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 30
|
||||
fire = 80
|
||||
acid = 70
|
||||
|
||||
/obj/item/shield/riot/flash/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/update_icon_updates_onmob)
|
||||
@@ -245,6 +269,14 @@
|
||||
/// Whether clumsy people can transform this without side effects.
|
||||
var/can_clumsy_use = FALSE
|
||||
|
||||
/datum/armor/item_shield
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 30
|
||||
fire = 80
|
||||
acid = 70
|
||||
|
||||
/obj/item/shield/energy/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
@@ -289,6 +321,14 @@
|
||||
/// Whether the shield is extended and protecting the user..
|
||||
var/extended = FALSE
|
||||
|
||||
/datum/armor/item_shield
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 30
|
||||
fire = 80
|
||||
acid = 70
|
||||
|
||||
/obj/item/shield/riot/tele/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
|
||||
@@ -12,12 +12,20 @@
|
||||
throwforce = 15
|
||||
throw_range = 1
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 0, BOMB = 50, BIO = 0, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/item_singularityhammer
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
force_string = "LORD SINGULOTH HIMSELF"
|
||||
///Is it able to pull shit right now?
|
||||
var/charged = TRUE
|
||||
|
||||
/datum/armor/item_singularityhammer
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 50
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/singularityhammer/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/kneejerk)
|
||||
@@ -80,6 +88,14 @@
|
||||
throw_range = 7
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
|
||||
/datum/armor/item_singularityhammer
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
bomb = 50
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/mjollnir/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, \
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
attack_verb_simple = list("attack", "poke", "jab", "tear", "lacerate", "gore")
|
||||
sharpness = SHARP_EDGED // i know the whole point of spears is that they're pointy, but edged is more devastating at the moment so
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/item_spear
|
||||
wound_bonus = -15
|
||||
bare_wound_bonus = 15
|
||||
/// For explosive spears, what we cry out when we use this to bap someone
|
||||
@@ -31,6 +31,10 @@
|
||||
/// How much damage to do wielded
|
||||
var/force_wielded = 18
|
||||
|
||||
/datum/armor/item_spear
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/spear/Initialize(mapload)
|
||||
. = ..()
|
||||
force = force_unwielded
|
||||
@@ -103,6 +107,10 @@
|
||||
icon_prefix = "spearbomb"
|
||||
var/obj/item/grenade/explosive = null
|
||||
|
||||
/datum/armor/item_spear
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/spear/explosive/Initialize(mapload)
|
||||
. = ..()
|
||||
set_explosive(new /obj/item/grenade/iedcasing/spawned()) //For admin-spawned explosive lances
|
||||
@@ -179,6 +187,10 @@
|
||||
force_unwielded = 15
|
||||
force_wielded = 25
|
||||
|
||||
/datum/armor/item_spear
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity)
|
||||
. = ..()
|
||||
if(!proximity)
|
||||
|
||||
@@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
|
||||
icon_state = "sheet-glass"
|
||||
inhand_icon_state = "sheet-glass"
|
||||
mats_per_unit = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 100)
|
||||
armor_type = /datum/armor/sheet_glass
|
||||
resistance_flags = ACID_PROOF
|
||||
merge_type = /obj/item/stack/sheet/glass
|
||||
grind_results = list(/datum/reagent/silicon = 20)
|
||||
@@ -33,6 +33,10 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
|
||||
cost = 500
|
||||
source = /datum/robot_energy_storage/glass
|
||||
|
||||
/datum/armor/sheet_glass
|
||||
fire = 50
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message(span_suicide("[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
return BRUTELOSS
|
||||
@@ -40,6 +44,10 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
|
||||
/obj/item/stack/sheet/glass/fifty
|
||||
amount = 50
|
||||
|
||||
/datum/armor/sheet_glass
|
||||
fire = 50
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/glass/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.glass_recipes
|
||||
@@ -89,7 +97,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
|
||||
inhand_icon_state = "sheet-pglass"
|
||||
mats_per_unit = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT)
|
||||
material_type = /datum/material/alloy/plasmaglass
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 75, ACID = 100)
|
||||
armor_type = /datum/armor/sheet_plasmaglass
|
||||
resistance_flags = ACID_PROOF
|
||||
merge_type = /obj/item/stack/sheet/plasmaglass
|
||||
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10)
|
||||
@@ -99,6 +107,10 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
|
||||
/obj/item/stack/sheet/plasmaglass/fifty
|
||||
amount = 50
|
||||
|
||||
/datum/armor/sheet_plasmaglass
|
||||
fire = 75
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/plasmaglass/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.pglass_recipes
|
||||
@@ -143,7 +155,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
|
||||
icon_state = "sheet-rglass"
|
||||
inhand_icon_state = "sheet-rglass"
|
||||
mats_per_unit = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 100)
|
||||
armor_type = /datum/armor/sheet_rglass
|
||||
resistance_flags = ACID_PROOF
|
||||
merge_type = /obj/item/stack/sheet/rglass
|
||||
grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10)
|
||||
@@ -151,6 +163,10 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
|
||||
matter_amount = 6
|
||||
tableVariant = /obj/structure/table/reinforced/rglass
|
||||
|
||||
/datum/armor/sheet_rglass
|
||||
fire = 70
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
..()
|
||||
@@ -165,6 +181,10 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
|
||||
/// The amount of energy this draws from the glass source per stack unit.
|
||||
var/glacost = 500
|
||||
|
||||
/datum/armor/sheet_rglass
|
||||
fire = 70
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/rglass/cyborg/get_amount()
|
||||
return min(round(source.energy / cost), round(glasource.energy / glacost))
|
||||
|
||||
@@ -196,7 +216,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
|
||||
icon_state = "sheet-prglass"
|
||||
inhand_icon_state = "sheet-prglass"
|
||||
mats_per_unit = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5)
|
||||
armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100)
|
||||
armor_type = /datum/armor/sheet_plasmarglass
|
||||
resistance_flags = ACID_PROOF
|
||||
material_flags = NONE
|
||||
merge_type = /obj/item/stack/sheet/plasmarglass
|
||||
@@ -205,6 +225,11 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
|
||||
matter_amount = 8
|
||||
tableVariant = /obj/structure/table/reinforced/plasmarglass
|
||||
|
||||
/datum/armor/sheet_plasmarglass
|
||||
melee = 20
|
||||
fire = 80
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/plasmarglass/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.prglass_recipes
|
||||
@@ -222,7 +247,7 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list(
|
||||
inhand_icon_state = "sheet-titaniumglass"
|
||||
mats_per_unit = list(/datum/material/alloy/titaniumglass=MINERAL_MATERIAL_AMOUNT)
|
||||
material_type = /datum/material/alloy/titaniumglass
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100)
|
||||
armor_type = /datum/armor/sheet_titaniumglass
|
||||
resistance_flags = ACID_PROOF
|
||||
merge_type = /obj/item/stack/sheet/titaniumglass
|
||||
tableVariant = /obj/structure/table/reinforced/titaniumglass
|
||||
@@ -230,6 +255,10 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list(
|
||||
/obj/item/stack/sheet/titaniumglass/fifty
|
||||
amount = 50
|
||||
|
||||
/datum/armor/sheet_titaniumglass
|
||||
fire = 80
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/titaniumglass/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.titaniumglass_recipes
|
||||
@@ -246,12 +275,16 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
|
||||
inhand_icon_state = "sheet-plastitaniumglass"
|
||||
mats_per_unit = list(/datum/material/alloy/plastitaniumglass=MINERAL_MATERIAL_AMOUNT)
|
||||
material_type = /datum/material/alloy/plastitaniumglass
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100)
|
||||
armor_type = /datum/armor/sheet_plastitaniumglass
|
||||
material_flags = NONE
|
||||
resistance_flags = ACID_PROOF
|
||||
merge_type = /obj/item/stack/sheet/plastitaniumglass
|
||||
tableVariant = /obj/structure/table/reinforced/plastitaniumglass
|
||||
|
||||
/datum/armor/sheet_plastitaniumglass
|
||||
fire = 80
|
||||
acid = 100
|
||||
|
||||
/obj/item/stack/sheet/plastitaniumglass/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.plastitaniumglass_recipes
|
||||
@@ -272,7 +305,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
|
||||
attack_verb_simple = list("stab", "slash", "slice", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
resistance_flags = ACID_PROOF
|
||||
armor = list(MELEE = 100, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 50, ACID = 100)
|
||||
armor_type = /datum/armor/item_shard
|
||||
max_integrity = 40
|
||||
sharpness = SHARP_EDGED
|
||||
var/icon_prefix
|
||||
@@ -281,6 +314,12 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
|
||||
var/obj/item/stack/sheet/weld_material = /obj/item/stack/sheet/glass
|
||||
embedding = list("embed_chance" = 65)
|
||||
|
||||
/datum/armor/item_shard
|
||||
melee = 100
|
||||
energy = 100
|
||||
fire = 50
|
||||
acid = 100
|
||||
|
||||
/obj/item/shard/suicide_act(mob/living/user)
|
||||
user.visible_message(span_suicide("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide."))
|
||||
return BRUTELOSS
|
||||
|
||||
@@ -260,7 +260,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \
|
||||
material_type = /datum/material/alloy/plasteel
|
||||
throwforce = 10
|
||||
flags_1 = CONDUCT_1
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 80)
|
||||
armor_type = /datum/armor/sheet_plasteel
|
||||
resistance_flags = FIRE_PROOF
|
||||
merge_type = /obj/item/stack/sheet/plasteel
|
||||
grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20)
|
||||
@@ -269,6 +269,10 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \
|
||||
material_flags = NONE
|
||||
matter_amount = 12
|
||||
|
||||
/datum/armor/sheet_plasteel
|
||||
fire = 100
|
||||
acid = 80
|
||||
|
||||
/obj/item/stack/sheet/plasteel/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.plasteel_recipes
|
||||
@@ -333,7 +337,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
icon = 'icons/obj/stack_objects.dmi'
|
||||
mats_per_unit = list(/datum/material/wood=MINERAL_MATERIAL_AMOUNT)
|
||||
sheettype = "wood"
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 0)
|
||||
armor_type = /datum/armor/mineral_wood
|
||||
resistance_flags = FLAMMABLE
|
||||
merge_type = /obj/item/stack/sheet/mineral/wood
|
||||
novariants = TRUE
|
||||
@@ -342,6 +346,9 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
walltype = /turf/closed/wall/mineral/wood
|
||||
stairs_type = /obj/structure/stairs/wood
|
||||
|
||||
/datum/armor/mineral_wood
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/mineral/wood/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.wood_recipes
|
||||
@@ -380,13 +387,16 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \
|
||||
sheettype = "bamboo"
|
||||
mats_per_unit = list(/datum/material/bamboo = MINERAL_MATERIAL_AMOUNT)
|
||||
throwforce = 15
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 0)
|
||||
armor_type = /datum/armor/mineral_bamboo
|
||||
resistance_flags = FLAMMABLE
|
||||
merge_type = /obj/item/stack/sheet/mineral/bamboo
|
||||
grind_results = list(/datum/reagent/cellulose = 10)
|
||||
material_type = /datum/material/bamboo
|
||||
walltype = /turf/closed/wall/mineral/bamboo
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/mineral/bamboo/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.bamboo_recipes
|
||||
@@ -448,6 +458,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \
|
||||
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
|
||||
grind_results = list(/datum/reagent/cellulose = 20)
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/cloth/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.cloth_recipes
|
||||
@@ -478,6 +491,9 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \
|
||||
drop_sound = 'sound/items/handling/cloth_drop.ogg'
|
||||
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/durathread/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.durathread_recipes
|
||||
@@ -576,6 +592,9 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
|
||||
null, \
|
||||
))
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/cardboard //BubbleWrap //it's cardboard you fuck
|
||||
name = "cardboard"
|
||||
desc = "Large sheets of card, like boxes folded flat."
|
||||
@@ -598,6 +617,9 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \
|
||||
/obj/item/stack/sheet/cardboard/fifty
|
||||
amount = 50
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/cardboard/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/stamp/clown) && !istype(loc, /obj/item/storage))
|
||||
var/atom/droploc = drop_location()
|
||||
@@ -659,6 +681,9 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
|
||||
walltype = /turf/closed/wall/mineral/bronze
|
||||
has_unique_girder = TRUE
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/bronze/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.bronze_recipes
|
||||
@@ -741,6 +766,9 @@ GLOBAL_LIST_INIT(plastic_recipes, list(
|
||||
/obj/item/stack/sheet/plastic/five
|
||||
amount = 5
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/plastic/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.plastic_recipes
|
||||
@@ -761,6 +789,9 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra
|
||||
grind_results = list(/datum/reagent/cellulose = 20)
|
||||
material_type = /datum/material/paper
|
||||
|
||||
/datum/armor/mineral_bamboo
|
||||
fire = 50
|
||||
|
||||
/obj/item/stack/sheet/paperframes/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.paperframe_recipes
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
throwforce = 10
|
||||
flags_1 = CONDUCT_1
|
||||
turf_type = /turf/open/floor/iron
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70)
|
||||
armor_type = /datum/armor/tile_iron
|
||||
resistance_flags = FIRE_PROOF
|
||||
matter_amount = 1
|
||||
cost = 125
|
||||
@@ -89,6 +89,10 @@
|
||||
/obj/item/stack/tile/iron/four
|
||||
amount = 4
|
||||
|
||||
/datum/armor/tile_iron
|
||||
fire = 100
|
||||
acid = 70
|
||||
|
||||
/obj/item/stack/tile/iron/Initialize(mapload)
|
||||
. = ..()
|
||||
var/static/list/tool_behaviors = list(
|
||||
|
||||
@@ -56,7 +56,11 @@
|
||||
inhand_icon_state = "holdingpack"
|
||||
resistance_flags = FIRE_PROOF
|
||||
item_flags = NO_MAT_REDEMPTION
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 60, ACID = 50)
|
||||
armor_type = /datum/armor/backpack_holding
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/holding/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -80,6 +84,10 @@
|
||||
inhand_icon_state = "giftbag"
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/santabag/Initialize(mapload)
|
||||
. = ..()
|
||||
regenerate_presents()
|
||||
@@ -225,6 +233,10 @@
|
||||
worn_icon = 'icons/mob/clothing/back/ethereal.dmi'
|
||||
icon_state = "saddlepack"
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/saddlepack/Initialize(mapload)
|
||||
. = ..()
|
||||
atom_storage.max_total_storage = 26
|
||||
@@ -245,6 +257,10 @@
|
||||
icon_state = "satchel-leather"
|
||||
inhand_icon_state = "satchel"
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/satchel/leather/withwallet/PopulateContents()
|
||||
new /obj/item/storage/wallet/random(src)
|
||||
|
||||
@@ -319,6 +335,10 @@
|
||||
inhand_icon_state = "satchel-flat"
|
||||
w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself.
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/satchel/flat/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/undertile, TRAIT_T_RAY_VISIBLE, INVISIBILITY_OBSERVER, use_anchor = TRUE)
|
||||
@@ -349,6 +369,10 @@
|
||||
inhand_icon_state = "duffel"
|
||||
slowdown = 1
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/Initialize(mapload)
|
||||
. = ..()
|
||||
atom_storage.max_total_storage = 30
|
||||
@@ -363,6 +387,10 @@
|
||||
slowdown = 2
|
||||
max_integrity = 100
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/cursed/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/curse_of_hunger, add_dropdel = TRUE)
|
||||
@@ -421,6 +449,10 @@
|
||||
|
||||
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery/PopulateContents()
|
||||
new /obj/item/scalpel(src)
|
||||
new /obj/item/hemostat(src)
|
||||
@@ -444,6 +476,10 @@
|
||||
name = "surgical duffel bag"
|
||||
desc = "A large duffel bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/sec/surgery/PopulateContents()
|
||||
new /obj/item/scalpel(src)
|
||||
new /obj/item/hemostat(src)
|
||||
@@ -470,6 +506,10 @@
|
||||
inhand_icon_state = "duffel-drone"
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/drone/PopulateContents()
|
||||
new /obj/item/screwdriver(src)
|
||||
new /obj/item/wrench(src)
|
||||
@@ -485,6 +525,10 @@
|
||||
icon_state = "duffel-clown"
|
||||
inhand_icon_state = "duffel-clown"
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/clown/cream_pie/PopulateContents()
|
||||
for(var/i in 1 to 10)
|
||||
new /obj/item/food/pie/cream(src)
|
||||
@@ -500,6 +544,10 @@
|
||||
slowdown = 0
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/Initialize(mapload)
|
||||
. = ..()
|
||||
atom_storage.silent = TRUE
|
||||
@@ -509,6 +557,10 @@
|
||||
icon_state = "duffel-syndieammo"
|
||||
inhand_icon_state = "duffel-syndieammo"
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/hitman/PopulateContents()
|
||||
new /obj/item/clothing/under/suit/black(src)
|
||||
new /obj/item/clothing/neck/tie/red/hitman(src)
|
||||
@@ -531,6 +583,10 @@
|
||||
icon_state = "duffel-syndiemed"
|
||||
inhand_icon_state = "duffel-syndiemed"
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/surgery/PopulateContents()
|
||||
new /obj/item/scalpel(src)
|
||||
new /obj/item/hemostat(src)
|
||||
@@ -555,6 +611,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun
|
||||
desc = "A large duffel bag, packed to the brim with Bulldog shotgun magazines."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents()
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
@@ -565,6 +625,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/smg
|
||||
desc = "A large duffel bag, packed to the brim with C-20r magazines."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents()
|
||||
for(var/i in 1 to 9)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
@@ -572,6 +636,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/mech
|
||||
desc = "A large duffel bag, packed to the brim with various exosuit ammo."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/mech/PopulateContents()
|
||||
new /obj/item/mecha_ammo/scattershot(src)
|
||||
new /obj/item/mecha_ammo/scattershot(src)
|
||||
@@ -582,6 +650,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/mauler
|
||||
desc = "A large duffel bag, packed to the brim with various exosuit ammo."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo/mauler/PopulateContents()
|
||||
new /obj/item/mecha_ammo/lmg(src)
|
||||
new /obj/item/mecha_ammo/lmg(src)
|
||||
@@ -596,6 +668,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/c20rbundle
|
||||
desc = "A large duffel bag containing a C-20r, some magazines, and a cheap looking suppressor."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents()
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
@@ -605,6 +681,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle
|
||||
desc = "A large duffel bag containing a Bulldog, some drums, and a pair of thermal imaging glasses."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents()
|
||||
new /obj/item/gun/ballistic/shotgun/bulldog(src)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
@@ -614,6 +694,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle
|
||||
desc = "A large duffel bag containing a medical equipment, a Donksoft LMG, a big jumbo box of riot darts, and a magboot MODsuit module."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents()
|
||||
new /obj/item/mod/module/magboot(src)
|
||||
new /obj/item/storage/medkit/tactical(src)
|
||||
@@ -623,6 +707,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle
|
||||
desc = "A large duffel bag containing deadly chemicals, a handheld chem sprayer, Bioterror foam grenade, a Donksoft assault rifle, box of riot grade darts, a dart pistol, and a box of syringes."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle/PopulateContents()
|
||||
new /obj/item/reagent_containers/spray/chemsprayer/bioterror(src)
|
||||
new /obj/item/storage/box/syndie_kit/chemical(src)
|
||||
@@ -645,6 +733,10 @@
|
||||
/obj/item/storage/backpack/duffelbag/syndie/firestarter
|
||||
desc = "A large duffel bag containing a New Russian pyro backpack sprayer, Elite MODsuit, a Stechkin APS pistol, minibomb, ammo, and other equipment."
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/firestarter/PopulateContents()
|
||||
new /obj/item/clothing/under/syndicate/soviet(src)
|
||||
new /obj/item/mod/control/pre_equipped/elite/flamethrower(src)
|
||||
@@ -686,6 +778,10 @@
|
||||
icon_state = "duffel-explorer"
|
||||
inhand_icon_state = "duffel-explorer"
|
||||
|
||||
/datum/armor/backpack_holding
|
||||
fire = 60
|
||||
acid = 50
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/mining_conscript/PopulateContents()
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
new /obj/item/t_scanner/adv_mining_scanner/lesser(src)
|
||||
|
||||
@@ -210,12 +210,21 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/storage/secure/safe, 32)
|
||||
It is made out of the same material as the station's Black Box and is designed to resist all conventional weaponry. \
|
||||
There appears to be a small amount of surface corrosion. It doesn't look like it could withstand much of an explosion."
|
||||
can_hack_open = FALSE
|
||||
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 70, BIO = 0, FIRE = 80, ACID = 70)
|
||||
armor_type = /datum/armor/safe_caps_spare
|
||||
max_integrity = 300
|
||||
color = "#ffdd33"
|
||||
|
||||
MAPPING_DIRECTIONAL_HELPERS(/obj/item/storage/secure/safe/caps_spare, 32)
|
||||
|
||||
/datum/armor/safe_caps_spare
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 70
|
||||
fire = 80
|
||||
acid = 70
|
||||
|
||||
/obj/item/storage/secure/safe/caps_spare/Initialize(mapload)
|
||||
. = ..()
|
||||
lock_code = SSid_access.spare_id_safe_code
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
demolition_mod = 1.25
|
||||
custom_materials = list(/datum/material/iron = 500)
|
||||
actions_types = list(/datum/action/item_action/set_internals)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 10, BIO = 0, FIRE = 80, ACID = 30)
|
||||
armor_type = /datum/armor/item_tank
|
||||
integrity_failure = 0.5
|
||||
/// The gases this tank contains. Don't modify this directly, use return_air() to get it instead
|
||||
var/datum/gas_mixture/air_contents = null
|
||||
@@ -48,6 +48,11 @@
|
||||
var/mob/living/carbon/breathing_mob = null
|
||||
|
||||
/// Closes the tank if dropped while open.
|
||||
/datum/armor/item_tank
|
||||
bomb = 10
|
||||
fire = 80
|
||||
acid = 30
|
||||
|
||||
/obj/item/tank/dropped(mob/living/user, silent)
|
||||
. = ..()
|
||||
// Close open air tank if its current user got sent to the shadowrealm.
|
||||
|
||||
@@ -12,12 +12,16 @@
|
||||
slowdown = 1
|
||||
actions_types = list(/datum/action/item_action/toggle_mister)
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30)
|
||||
armor_type = /datum/armor/item_watertank
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
var/obj/item/noz
|
||||
var/volume = 500
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/watertank/Initialize(mapload)
|
||||
. = ..()
|
||||
create_reagents(volume, OPENCONTAINER)
|
||||
@@ -129,6 +133,10 @@
|
||||
|
||||
var/obj/item/watertank/tank
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/reagent_containers/spray/mister/Initialize(mapload)
|
||||
. = ..()
|
||||
tank = loc
|
||||
@@ -149,6 +157,10 @@
|
||||
inhand_icon_state = "waterbackpackjani"
|
||||
custom_price = PAYCHECK_CREW * 5
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/watertank/janitor/Initialize(mapload)
|
||||
. = ..()
|
||||
reagents.add_reagent(/datum/reagent/space_cleaner, 500)
|
||||
@@ -165,6 +177,10 @@
|
||||
possible_transfer_amounts = list(5, 10)
|
||||
current_range = 5
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/watertank/janitor/make_noz()
|
||||
return new /obj/item/reagent_containers/spray/mister/janitor(src)
|
||||
|
||||
@@ -181,6 +197,10 @@
|
||||
custom_price = PAYCHECK_CREW * 2
|
||||
volume = 1000
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/watertank/pepperspray/Initialize(mapload)
|
||||
. = ..()
|
||||
reagents.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 1000)
|
||||
@@ -197,6 +217,10 @@
|
||||
possible_transfer_amounts = list(5, 10)
|
||||
current_range = 6
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/watertank/pepperspray/make_noz()
|
||||
return new /obj/item/reagent_containers/spray/mister/pepperspray(src)
|
||||
|
||||
@@ -218,6 +242,10 @@
|
||||
volume = 200
|
||||
slowdown = 0
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/watertank/atmos/Initialize(mapload)
|
||||
. = ..()
|
||||
reagents.add_reagent(/datum/reagent/water, 200)
|
||||
@@ -254,6 +282,10 @@
|
||||
var/metal_synthesis_cooldown = 0
|
||||
COOLDOWN_DECLARE(resin_cooldown)
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/extinguisher/mini/nozzle/Initialize(mapload)
|
||||
. = ..()
|
||||
tank = loc
|
||||
@@ -362,6 +394,10 @@
|
||||
pass_flags = PASSTABLE
|
||||
anchored = TRUE
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/effect/resin_container/proc/Smoke()
|
||||
var/datum/effect_system/fluid_spread/foam/metal/resin/foaming = new
|
||||
foaming.set_up(4, holder = src, location = loc)
|
||||
@@ -402,6 +438,10 @@
|
||||
fill_icon_thresholds = list(0, 15, 60)
|
||||
fill_icon_state = "backpack"
|
||||
|
||||
/datum/armor/item_watertank
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/reagent_containers/chemtank/ui_action_click()
|
||||
toggle_injection()
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
custom_materials = list(/datum/material/iron=10000)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 30, BIO = 0, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/item_hand_tele
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
var/list/active_portal_pairs
|
||||
var/max_portal_pairs = 3
|
||||
@@ -125,6 +125,11 @@
|
||||
*/
|
||||
var/last_portal_location
|
||||
|
||||
/datum/armor/item_hand_tele
|
||||
bomb = 30
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/hand_tele/Initialize(mapload)
|
||||
. = ..()
|
||||
active_portal_pairs = list()
|
||||
@@ -333,6 +338,11 @@
|
||||
//How far the emergency teleport checks for a safe position
|
||||
var/parallel_teleport_distance = 3
|
||||
|
||||
/datum/armor/item_hand_tele
|
||||
bomb = 30
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/syndicate_teleporter/Initialize(mapload)
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
@@ -502,6 +512,11 @@
|
||||
/obj/item/storage/box/syndie_kit/syndicate_teleporter
|
||||
name = "syndicate teleporter kit"
|
||||
|
||||
/datum/armor/item_hand_tele
|
||||
bomb = 30
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/obj/item/storage/box/syndie_kit/syndicate_teleporter/PopulateContents()
|
||||
new /obj/item/syndicate_teleporter(src)
|
||||
new /obj/item/paper/syndicate_teleporter(src)
|
||||
|
||||
@@ -21,9 +21,13 @@
|
||||
attack_verb_simple = list("attack", "bash", "batter", "bludgeon", "whack")
|
||||
tool_behaviour = TOOL_CROWBAR
|
||||
toolspeed = 1
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/item_crowbar
|
||||
var/force_opens = FALSE
|
||||
|
||||
/datum/armor/item_crowbar
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/crowbar/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/falling_hazard, damage = force, wound_bonus = wound_bonus, hardhat_safety = TRUE, crushes = FALSE, impact_sound = hitsound)
|
||||
@@ -66,6 +70,10 @@
|
||||
desc = "It's a bulky crowbar. It almost seems deliberately designed to not be able to fit inside of a backpack."
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
|
||||
/datum/armor/item_crowbar
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/crowbar/large/heavy //from space ruin
|
||||
name = "heavy crowbar"
|
||||
desc = "It's a big crowbar. It doesn't fit in your pockets, because it's big. It feels oddly heavy.."
|
||||
@@ -79,6 +87,10 @@
|
||||
throwforce = 10
|
||||
throw_speed = 2
|
||||
|
||||
/datum/armor/item_crowbar
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/crowbar/large/old/Initialize(mapload)
|
||||
. = ..()
|
||||
if(prob(50))
|
||||
@@ -99,6 +111,10 @@
|
||||
toolspeed = 0.7
|
||||
force_opens = TRUE
|
||||
|
||||
/datum/armor/item_crowbar
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/crowbar/power/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
@@ -130,6 +146,10 @@
|
||||
toolspeed = 0.5
|
||||
force_opens = TRUE
|
||||
|
||||
/datum/armor/item_crowbar
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/crowbar/power/examine()
|
||||
. = ..()
|
||||
. += " It's fitted with a [tool_behaviour == TOOL_CROWBAR ? "prying" : "cutting"] head."
|
||||
@@ -177,11 +197,15 @@
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
slot_flags = NONE
|
||||
toolspeed = 1.25
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 100, BIO = 0, FIRE = 100, ACID = 0)
|
||||
armor_type = /datum/armor/crowbar_mechremoval
|
||||
resistance_flags = FIRE_PROOF
|
||||
bare_wound_bonus = 15
|
||||
wound_bonus = 10
|
||||
|
||||
/datum/armor/crowbar_mechremoval
|
||||
bomb = 100
|
||||
fire = 100
|
||||
|
||||
/obj/item/crowbar/mechremoval/Initialize(mapload)
|
||||
. = ..()
|
||||
transform = transform.Translate(0, -8)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg')
|
||||
tool_behaviour = TOOL_SCREWDRIVER
|
||||
toolspeed = 1
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/item_screwdriver
|
||||
drop_sound = 'sound/items/handling/screwdriver_drop.ogg'
|
||||
pickup_sound = 'sound/items/handling/screwdriver_pickup.ogg'
|
||||
sharpness = SHARP_POINTY
|
||||
@@ -44,6 +44,10 @@
|
||||
COLOR_TOOL_YELLOW,
|
||||
)
|
||||
|
||||
/datum/armor/item_screwdriver
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/screwdriver/suicide_act(mob/living/user)
|
||||
user.visible_message(span_suicide("[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
return BRUTELOSS
|
||||
@@ -68,6 +72,10 @@
|
||||
greyscale_config_inhand_left = null
|
||||
greyscale_config_inhand_right = null
|
||||
|
||||
/datum/armor/item_screwdriver
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/screwdriver/abductor/get_belt_overlay()
|
||||
return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "screwdriver_alien")
|
||||
|
||||
@@ -97,6 +105,10 @@
|
||||
greyscale_config_inhand_left = null
|
||||
greyscale_config_inhand_right = null
|
||||
|
||||
/datum/armor/item_screwdriver
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/screwdriver/power/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
@@ -145,6 +157,10 @@
|
||||
/obj/item/screwdriver/red
|
||||
random_color = FALSE
|
||||
|
||||
/datum/armor/item_screwdriver
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/screwdriver/red/Initialize(mapload)
|
||||
. = ..()
|
||||
set_greyscale(colors=list(screwdriver_colors["red"]))
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 30)
|
||||
armor_type = /datum/armor/item_weldingtool
|
||||
resistance_flags = FIRE_PROOF
|
||||
heat = 3800
|
||||
tool_behaviour = TOOL_WELDER
|
||||
@@ -51,6 +51,10 @@
|
||||
var/activation_sound = 'sound/items/welderactivate.ogg'
|
||||
var/deactivation_sound = 'sound/items/welderdeactivate.ogg'
|
||||
|
||||
/datum/armor/item_weldingtool
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/weldingtool/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/update_icon_updates_onmob, ITEM_SLOT_HANDS)
|
||||
@@ -331,6 +335,10 @@
|
||||
max_fuel = 40
|
||||
custom_materials = list(/datum/material/glass=60)
|
||||
|
||||
/datum/armor/item_weldingtool
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/weldingtool/largetank/flamethrower_screwdriver()
|
||||
return
|
||||
|
||||
@@ -344,6 +352,10 @@
|
||||
icon_state = "indwelder_cyborg"
|
||||
toolspeed = 0.5
|
||||
|
||||
/datum/armor/item_weldingtool
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/weldingtool/largetank/cyborg/cyborg_unequip(mob/user)
|
||||
if(!isOn())
|
||||
return
|
||||
@@ -359,6 +371,10 @@
|
||||
custom_materials = list(/datum/material/iron=30, /datum/material/glass=10)
|
||||
change_icons = FALSE
|
||||
|
||||
/datum/armor/item_weldingtool
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/weldingtool/mini/flamethrower_screwdriver()
|
||||
return
|
||||
|
||||
@@ -376,6 +392,10 @@
|
||||
light_range = 0
|
||||
change_icons = FALSE
|
||||
|
||||
/datum/armor/item_weldingtool
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/weldingtool/abductor/process()
|
||||
if(get_fuel() <= max_fuel)
|
||||
reagents.add_reagent(/datum/reagent/fuel, 1)
|
||||
@@ -404,6 +424,10 @@
|
||||
var/last_gen = 0
|
||||
var/nextrefueltick = 0
|
||||
|
||||
/datum/armor/item_weldingtool
|
||||
fire = 100
|
||||
acid = 30
|
||||
|
||||
/obj/item/weldingtool/experimental/process()
|
||||
..()
|
||||
if(get_fuel() < max_fuel && nextrefueltick < world.time)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
pickup_sound = 'sound/items/handling/wirecutter_pickup.ogg'
|
||||
tool_behaviour = TOOL_WIRECUTTER
|
||||
toolspeed = 1
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/item_wirecutters
|
||||
/// If the item should be assigned a random color
|
||||
var/random_color = TRUE
|
||||
/// List of possible random colors
|
||||
@@ -42,6 +42,10 @@
|
||||
COLOR_TOOL_YELLOW,
|
||||
)
|
||||
|
||||
/datum/armor/item_wirecutters
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/wirecutters/Initialize(mapload)
|
||||
if(random_color)
|
||||
set_greyscale(colors = list(pick(wirecutter_colors)))
|
||||
|
||||
@@ -22,7 +22,11 @@
|
||||
attack_verb_simple = list("bash", "batter", "bludgeon", "whack")
|
||||
tool_behaviour = TOOL_WRENCH
|
||||
toolspeed = 1
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 30)
|
||||
armor_type = /datum/armor/item_wrench
|
||||
|
||||
/datum/armor/item_wrench
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/wrench/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -55,6 +59,10 @@
|
||||
///var to hold the name of the person who suicided
|
||||
var/suicider
|
||||
|
||||
/datum/armor/item_wrench
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/wrench/medical/examine(mob/user)
|
||||
. = ..()
|
||||
if(suicider)
|
||||
@@ -96,6 +104,10 @@
|
||||
attack_verb_simple = list("devastate", "brutalize", "commit a war crime against", "obliterate", "humiliate")
|
||||
tool_behaviour = null
|
||||
|
||||
/datum/armor/item_wrench
|
||||
fire = 50
|
||||
acid = 30
|
||||
|
||||
/obj/item/wrench/combat/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
throw_speed = 1
|
||||
throw_range = 7
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 30)
|
||||
armor_type = /datum/armor/item_vending_refill
|
||||
|
||||
// Built automatically from the corresponding vending machine.
|
||||
// If null, considered to be full. Otherwise, is list(/typepath = amount).
|
||||
@@ -26,6 +26,10 @@
|
||||
var/list/contraband
|
||||
var/list/premium
|
||||
|
||||
/datum/armor/item_vending_refill
|
||||
fire = 70
|
||||
acid = 30
|
||||
|
||||
/obj/item/vending_refill/Initialize(mapload)
|
||||
. = ..()
|
||||
name = "\improper [machine_name] restocking unit"
|
||||
|
||||
@@ -12,9 +12,13 @@
|
||||
attack_verb_continuous = list("bans")
|
||||
attack_verb_simple = list("ban")
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 70)
|
||||
armor_type = /datum/armor/item_banhammer
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/datum/armor/item_banhammer
|
||||
fire = 100
|
||||
acid = 70
|
||||
|
||||
/obj/item/banhammer/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/kneejerk)
|
||||
@@ -51,6 +55,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
attack_verb_continuous = list("attacks", "slashes", "stabs", "slices", "tears", "lacerates", "rips", "dices", "cuts")
|
||||
attack_verb_simple = list("attack", "slash", "stab", "slice", "tear", "lacerate", "rip", "dice", "cut")
|
||||
|
||||
/datum/armor/item_banhammer
|
||||
fire = 100
|
||||
acid = 70
|
||||
|
||||
/obj/item/sord/suicide_act(mob/living/user)
|
||||
user.visible_message(span_suicide("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty."), \
|
||||
span_suicide("You try to impale yourself with [src], but it's USELESS..."))
|
||||
@@ -74,9 +82,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
block_chance = 50
|
||||
sharpness = SHARP_EDGED
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50)
|
||||
armor_type = /datum/armor/item_claymore
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/datum/armor/item_claymore
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/claymore/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, \
|
||||
@@ -102,6 +114,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
throw_range = 5
|
||||
armour_penetration = 35
|
||||
|
||||
/datum/armor/item_claymore
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS
|
||||
desc = "<b><i>THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!</i></b>\nActivate it in your hand to point to the nearest victim."
|
||||
flags_1 = CONDUCT_1
|
||||
@@ -269,9 +285,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
block_chance = 50
|
||||
sharpness = SHARP_EDGED
|
||||
max_integrity = 200
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 100, ACID = 50)
|
||||
armor_type = /datum/armor/item_katana
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/katana/suicide_act(mob/living/user)
|
||||
user.visible_message(span_suicide("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!"))
|
||||
return BRUTELOSS
|
||||
@@ -292,6 +312,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
attack_verb_continuous = list("hits", "bludgeons", "whacks", "bonks")
|
||||
attack_verb_simple = list("hit", "bludgeon", "whack", "bonk")
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/wirerod/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -394,6 +418,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
/// Whether the switchblade starts extended or not.
|
||||
var/start_extended = FALSE
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/switchblade/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/update_icon_updates_onmob, ITEM_SLOT_HANDS)
|
||||
@@ -443,6 +471,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
attack_verb_simple = list("call", "ring")
|
||||
hitsound = 'sound/weapons/ring.ogg'
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/phone/suicide_act(mob/living/user)
|
||||
if(locate(/obj/structure/chair/stool) in user.loc)
|
||||
user.visible_message(span_suicide("[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
@@ -476,6 +508,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
custom_materials = list(/datum/material/iron = 600)
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/cane/white/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/transforming, \
|
||||
@@ -546,6 +582,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "ectoplasm"
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/ectoplasm/suicide_act(mob/living/user)
|
||||
user.visible_message(span_suicide("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane!"))
|
||||
return OXYLOSS
|
||||
@@ -578,6 +618,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
tool_behaviour = TOOL_SAW
|
||||
toolspeed = 1
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/mounted_chainsaw/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_NODROP, HAND_REPLACEMENT_TRAIT)
|
||||
@@ -607,6 +651,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
attack_verb_simple = list("bust")
|
||||
var/impressiveness = 45
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/statuebust/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/art, impressiveness)
|
||||
@@ -655,6 +703,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
///The vehicle counterpart for the board
|
||||
var/board_item_type = /obj/vehicle/ridden/scooter/skateboard
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/melee/skateboard/attack_self(mob/user)
|
||||
var/obj/vehicle/ridden/scooter/skateboard/S = new board_item_type(get_turf(user))//this probably has fucky interactions with telekinesis but for the record it wasn't my fault
|
||||
S.buckle_mob(user)
|
||||
@@ -713,6 +765,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
/// List of all thrown datums we sent.
|
||||
var/list/thrown_datums = list()
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/melee/baseball_bat/Initialize(mapload)
|
||||
. = ..()
|
||||
if(prob(1))
|
||||
@@ -831,6 +887,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
throwforce = 15
|
||||
mob_thrower = TRUE
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers
|
||||
playsound(src, pick('sound/weapons/effects/batreflect1.ogg', 'sound/weapons/effects/batreflect2.ogg'), 50, TRUE)
|
||||
return TRUE
|
||||
@@ -856,6 +916,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
/// How much extra damage the fly swatter does against mobs it is strong against
|
||||
var/extra_strength_damage = 24
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/melee/flyswatter/Initialize(mapload)
|
||||
. = ..()
|
||||
splattable = typecacheof(list(
|
||||
@@ -913,6 +977,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
name = "\improper ACME Extendo-Hand"
|
||||
desc = "A novelty extendo-hand produced by the ACME corporation. Originally designed to knock out roadrunners."
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/extendohand/attack(atom/M, mob/living/carbon/human/user, params)
|
||||
var/dist = get_dist(M, user)
|
||||
if(dist < min_reach)
|
||||
@@ -982,6 +1050,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
/// The previous target we attacked
|
||||
var/datum/weakref/previous_target
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/highfrequencyblade/Initialize(mapload)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, \
|
||||
@@ -1072,6 +1144,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
layer = ABOVE_ALL_MOB_LAYER
|
||||
plane = ABOVE_GAME_PLANE
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/effect/temp_visual/slash/Initialize(mapload, atom/target, x_slashed, y_slashed, slash_color)
|
||||
. = ..()
|
||||
if(!target)
|
||||
@@ -1096,6 +1172,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
wound_bonus = 20
|
||||
bare_wound_bonus = 25
|
||||
|
||||
/datum/armor/item_katana
|
||||
fire = 100
|
||||
acid = 50
|
||||
|
||||
/obj/item/highfrequencyblade/wizard/attack_self(mob/user, modifiers)
|
||||
if(!IS_WIZARD(user))
|
||||
balloon_alert(user, "you're too weak!")
|
||||
|
||||
Reference in New Issue
Block a user