mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Adds tackling (VIDEO INSIDE) (#49476)
* huthtuthuthuthtuhtuthuthuthuthtuthuthuthtuthut * documents and expands, adds new glove types * Adds slamming into tables and neatens up throwingdatum handling (+stuff) * bit less squishy * adds sprites, offbrands, swaps most combat insuls for tacklers * adds dolphin and rocket gloves to BEPIS * changes dna to traits, buffs tackling * same as last commit but moreso * updates docs, nerfs stuns * vending machines, better docs * window tackles for good measure * gets window splats working * polish off * LAST DAY OF SCHOOL
This commit is contained in:
@@ -67,7 +67,7 @@
|
||||
suit = /obj/item/clothing/suit/armor/vest/blueshirt
|
||||
belt = /obj/item/gun/ballistic/automatic/pistol/m1911
|
||||
head = /obj/item/clothing/head/helmet/police
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat/spacepol
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
@@ -97,7 +97,7 @@
|
||||
uniform = /obj/item/clothing/under/rank/prisoner
|
||||
head = /obj/item/clothing/head/hunter
|
||||
suit = /obj/item/clothing/suit/space/hunter
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
shoes = /obj/item/clothing/shoes/jackboots
|
||||
mask = /obj/item/clothing/mask/gas/hunter
|
||||
glasses = /obj/item/clothing/glasses/sunglasses/garb
|
||||
|
||||
@@ -485,7 +485,7 @@
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/shielded/ctf
|
||||
toggle_helmet = FALSE // see the whites of their eyes
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
id = /obj/item/card/id/away
|
||||
belt = /obj/item/gun/ballistic/automatic/pistol/deagle/ctf
|
||||
l_pocket = /obj/item/ammo_box/magazine/recharge/ctf
|
||||
|
||||
@@ -475,7 +475,7 @@
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
head = /obj/item/clothing/head/centhat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
r_pocket = /obj/item/lighter
|
||||
id = /obj/item/card/id
|
||||
@@ -492,7 +492,7 @@
|
||||
uniform = /obj/item/clothing/under/rank/security/officer
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
head = /obj/item/clothing/head/helmet/swat/nanotrasen
|
||||
back = /obj/item/storage/backpack/security
|
||||
|
||||
@@ -602,7 +602,7 @@
|
||||
/obj/item/clothing/suit/armor/vest/russian,
|
||||
/obj/item/clothing/head/helmet/rus_helmet,
|
||||
/obj/item/clothing/shoes/russian,
|
||||
/obj/item/clothing/gloves/combat,
|
||||
/obj/item/clothing/gloves/tackler/combat,
|
||||
/obj/item/clothing/under/syndicate/rus_army,
|
||||
/obj/item/clothing/under/costume/soviet,
|
||||
/obj/item/clothing/mask/russian_balaclava,
|
||||
@@ -629,8 +629,8 @@
|
||||
/obj/item/clothing/mask/gas/sechailer/swat,
|
||||
/obj/item/storage/belt/military/assault,
|
||||
/obj/item/storage/belt/military/assault,
|
||||
/obj/item/clothing/gloves/combat,
|
||||
/obj/item/clothing/gloves/combat)
|
||||
/obj/item/clothing/gloves/tackler/combat,
|
||||
/obj/item/clothing/gloves/tackler/combat)
|
||||
crate_name = "swat crate"
|
||||
|
||||
/datum/supply_pack/security/armory/wt550_single
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
/obj/item/clothing/gloves/tackler
|
||||
name = "gripper gloves"
|
||||
desc = "Special gloves that manipulate the blood vessels in the wearer's hands, granting them the ability to launch headfirst into walls."
|
||||
icon_state = "tackle"
|
||||
item_state = "tackle"
|
||||
transfer_prints = TRUE
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
custom_premium_price = 350
|
||||
/// For storing our tackler datum so we can remove it after
|
||||
var/datum/component/tackler
|
||||
/// See: [/datum/component/tackler/var/stamina_cost]
|
||||
var/tackle_stam_cost = 25
|
||||
/// See: [/datum/component/tackler/var/base_knockdown]
|
||||
var/base_knockdown = 1 SECONDS
|
||||
/// See: [/datum/component/tackler/var/range]
|
||||
var/tackle_range = 4
|
||||
/// See: [/datum/component/tackler/var/min_distance]
|
||||
var/min_distance = 0
|
||||
/// See: [/datum/component/tackler/var/speed]
|
||||
var/tackle_speed = 1
|
||||
/// See: [/datum/component/tackler/var/skill_mod]
|
||||
var/skill_mod = 0
|
||||
|
||||
/obj/item/clothing/gloves/tackler/equipped(mob/user, slot)
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
if(slot == ITEM_SLOT_GLOVES)
|
||||
var/mob/living/carbon/human/H = user
|
||||
tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance)
|
||||
|
||||
/obj/item/clothing/gloves/tackler/dropped(mob/user)
|
||||
. = ..()
|
||||
if(!ishuman(user))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_item_by_slot(ITEM_SLOT_GLOVES) == src)
|
||||
qdel(tackler)
|
||||
|
||||
/obj/item/clothing/gloves/tackler/dolphin
|
||||
name = "dolphin gloves"
|
||||
desc = "Sleek, aerodynamic gripper gloves that are less effective at actually performing takedowns, but more effective at letting the user sail through the hallways and cause accidents."
|
||||
icon_state = "tackledolphin"
|
||||
item_state = "tackledolphin"
|
||||
|
||||
tackle_stam_cost = 15
|
||||
base_knockdown = 0.5 SECONDS
|
||||
tackle_range = 5
|
||||
tackle_speed = 2
|
||||
min_distance = 2
|
||||
skill_mod = -2
|
||||
|
||||
/obj/item/clothing/gloves/tackler/combat
|
||||
name = "gorilla gloves"
|
||||
desc = "Premium quality combative gloves, heavily reinforced to give the user an edge in close combat tackles, though they are more taxing to use than normal gripper gloves. Fireproof to boot!"
|
||||
icon_state = "black"
|
||||
item_state = "blackgloves"
|
||||
|
||||
tackle_stam_cost = 35
|
||||
base_knockdown = 1.5 SECONDS
|
||||
tackle_range = 5
|
||||
skill_mod = 2
|
||||
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
|
||||
/obj/item/clothing/gloves/tackler/combat/insulated
|
||||
name = "guerilla gloves"
|
||||
desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks."
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
|
||||
/obj/item/clothing/gloves/tackler/rocket
|
||||
name = "rocket gloves"
|
||||
desc = "The ultimate in high risk, high reward, perfect for when you need to stop a criminal from fifty feet away or die trying. Banned in most Spinward gridiron football and rugby leagues."
|
||||
icon_state = "tacklerocket"
|
||||
item_state = "tacklerocket"
|
||||
|
||||
tackle_stam_cost = 50
|
||||
base_knockdown = 2 SECONDS
|
||||
tackle_range = 10
|
||||
min_distance = 7
|
||||
tackle_speed = 6
|
||||
skill_mod = 7
|
||||
|
||||
/obj/item/clothing/gloves/tackler/offbrand
|
||||
name = "improvised gripper gloves"
|
||||
desc = "Ratty looking fingerless gloves wrapped with sticky tape. Beware anyone wearing these, for they clearly have no shame and nothing to lose."
|
||||
icon_state = "fingerless"
|
||||
item_state = "fingerless"
|
||||
|
||||
tackle_stam_cost = 30
|
||||
base_knockdown = 1.75 SECONDS
|
||||
min_distance = 2
|
||||
skill_mod = -1
|
||||
@@ -59,6 +59,7 @@
|
||||
id = /obj/item/card/id/ert/security
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
back = /obj/item/storage/backpack/ert/security
|
||||
belt = /obj/item/storage/belt/security/full
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/space/officer
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
ears = /obj/item/radio/headset/headset_cent/commander
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/havana
|
||||
@@ -244,7 +244,7 @@
|
||||
uniform = /obj/item/clothing/under/rank/centcom/commander
|
||||
suit = /obj/item/clothing/suit/armor/bulletproof
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
ears = /obj/item/radio/headset/headset_cent/commander
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
|
||||
@@ -322,7 +322,7 @@
|
||||
uniform = /obj/item/clothing/under/costume/soviet
|
||||
head = /obj/item/clothing/head/pirate/captain
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
ears = /obj/item/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
suit = /obj/item/clothing/suit/pirate/captain
|
||||
@@ -380,7 +380,7 @@
|
||||
uniform = /obj/item/clothing/under/rank/centcom/commander
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
glasses = /obj/item/clothing/glasses/hud/toggle/thermal
|
||||
back = /obj/item/storage/backpack/security
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
name = "Syndicate VR Operative - Basic"
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
back = /obj/item/storage/backpack
|
||||
id = /obj/item/card/id/syndicate
|
||||
belt = /obj/item/gun/ballistic/automatic/pistol
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
ears = /obj/item/radio/headset
|
||||
mask = /obj/item/clothing/mask/gas
|
||||
head = /obj/item/clothing/head/helmet/swat
|
||||
@@ -39,7 +39,7 @@
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/syndi
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
ears = /obj/item/radio/headset
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
back = /obj/item/tank/jetpack/oxygen
|
||||
@@ -59,7 +59,7 @@
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/syndi/elite
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
ears = /obj/item/radio/headset
|
||||
mask = /obj/item/clothing/mask/gas/syndicate
|
||||
back = /obj/item/tank/jetpack/oxygen/harness
|
||||
@@ -130,7 +130,7 @@
|
||||
uniform = /obj/item/clothing/under/syndicate/camo
|
||||
suit = /obj/item/clothing/suit/armor/bulletproof
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
ears = /obj/item/radio/headset
|
||||
head = /obj/item/clothing/head/helmet/alt
|
||||
mask = /obj/item/clothing/mask/balaclava
|
||||
@@ -177,7 +177,7 @@
|
||||
uniform = /obj/item/clothing/under/rank/security/officer
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat
|
||||
ears = /obj/item/radio/headset
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
head = /obj/item/clothing/head/helmet/swat/nanotrasen
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H)
|
||||
visible_message("<span class='warning'>[name] burrows into the flesh of [H]!</span>")
|
||||
var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L
|
||||
if(H.dna.check_mutation(DWARFISM)) //dwarf legions aren't just fluff!
|
||||
if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff!
|
||||
L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc)
|
||||
else
|
||||
L = new(H.loc)
|
||||
|
||||
@@ -717,7 +717,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
/datum/reagent/consumable/ethanol/manly_dorf/on_mob_metabolize(mob/living/M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.dna.check_mutation(DWARFISM) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE))
|
||||
if(HAS_TRAIT(H, TRAIT_DWARF) || HAS_TRAIT(H, TRAIT_ALCOHOL_TOLERANCE))
|
||||
to_chat(H, "<span class='notice'>Now THAT is MANLY!</span>")
|
||||
boozepwr = 5 //We've had worse in the mines
|
||||
dorf_mode = TRUE
|
||||
|
||||
@@ -584,3 +584,27 @@
|
||||
build_path = /obj/item/stack/sticky_tape/pointy
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Tackle Gloves////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/tackle_dolphin
|
||||
name = "Dolphin Gloves"
|
||||
id = "tackle_dolphin"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/plastic = 2500)
|
||||
build_path = /obj/item/clothing/gloves/tackler/dolphin
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/tackle_rocket
|
||||
name = "Rocket Gloves"
|
||||
id = "tackle_rocket"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/plasma = 1000, /datum/material/plastic = 2000)
|
||||
build_path = /obj/item/clothing/gloves/tackler/rocket
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
@@ -1145,9 +1145,6 @@
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
|
||||
|
||||
// Can be researched after getting the basic sticky technology from the BEPIS major reward
|
||||
/datum/techweb_node/sticky_advanced
|
||||
id = "sticky_advanced"
|
||||
display_name = "Advanced Sticky Technology"
|
||||
@@ -1159,6 +1156,18 @@
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/tackle_advanced
|
||||
id = "tackle_advanced"
|
||||
display_name = "Advanced Grapple Technology"
|
||||
description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \
|
||||
will no longer be accepted in its academic journals."
|
||||
design_ids = list("tackle_dolphin", "tackle_rocket")
|
||||
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 2500
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
//Helpers for debugging/balancing the techweb in its entirety!
|
||||
/proc/total_techweb_exports()
|
||||
var/list/datum/techweb_node/processing = list()
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
uniform = /obj/item/clothing/under/syndicate
|
||||
suit = /obj/item/clothing/suit/toggle/labcoat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
ears = /obj/item/radio/headset/syndicate/alt
|
||||
back = /obj/item/storage/backpack
|
||||
r_pocket = /obj/item/gun/ballistic/automatic/pistol
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
premium = list(/obj/item/storage/belt/security/webbing = 5,
|
||||
/obj/item/coin/antagtoken = 1,
|
||||
/obj/item/clothing/head/helmet/blueshirt = 1,
|
||||
/obj/item/clothing/suit/armor/vest/blueshirt = 1)
|
||||
/obj/item/clothing/suit/armor/vest/blueshirt = 1,
|
||||
/obj/item/clothing/gloves/tackler = 5)
|
||||
refill_canister = /obj/item/vending_refill/security
|
||||
default_price = 650
|
||||
extra_price = 700
|
||||
|
||||
Reference in New Issue
Block a user