Merge pull request #11868 from Arturlang/tackling_and_lunge

Ports TG Tackling and uses it to rework bloodsucker lunge
This commit is contained in:
Ghom
2020-04-21 15:50:44 +02:00
committed by GitHub
46 changed files with 794 additions and 151 deletions
+100
View File
@@ -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 = 1
/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 = "combat"
item_state = "blackgloves"
tackle_stam_cost = 35
base_knockdown = 1.5 SECONDS
tackle_range = 5
skill_mod = 3
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 = "guerrilla 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
+2 -2
View File
@@ -3,7 +3,7 @@
uniform = /obj/item/clothing/under/rank/centcom/officer
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/alt
/datum/outfit/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
@@ -69,8 +69,8 @@
id = /obj/item/card/id/ert/Security
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
back = /obj/item/storage/backpack/security
belt = /obj/item/storage/belt/security/full
back = /obj/item/storage/backpack/security
backpack_contents = list(/obj/item/storage/box/engineer=1,\
/obj/item/storage/box/handcuffs=1,\
/obj/item/clothing/mask/gas/sechailer=1,\
+5 -5
View File
@@ -205,7 +205,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
@@ -234,7 +234,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
@@ -316,7 +316,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
@@ -372,7 +372,7 @@
uniform = /obj/item/clothing/under/color/green
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
@@ -431,7 +431,7 @@
glasses = /obj/item/clothing/glasses/debug
ears = /obj/item/radio/headset/headset_cent/commander
mask = /obj/item/clothing/mask/gas/welding/up
gloves = /obj/item/clothing/gloves/combat
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
belt = /obj/item/storage/belt/utility/chief/full
l_pocket = /obj/item/gun/magic/wand/resurrection/debug
r_pocket = /obj/item/gun/magic/wand/death/debug
+1 -1
View File
@@ -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