Rig slowdown on the chestpiece, not the back item.

Allows wearing shoes with a rigsuit
This commit is contained in:
Mars
2017-11-15 15:15:27 +01:00
parent aa9bbd877f
commit 306f93acd2
6 changed files with 40 additions and 22 deletions
+24 -6
View File
@@ -43,6 +43,7 @@
//Component/device holders.
var/obj/item/weapon/tank/air_supply // Air tank, if any.
var/obj/item/clothing/shoes/magboots/boots = null // Deployable boots, if any.
var/obj/item/clothing/shoes/under_boots = null //Boots that are between the feet and the rib boots, if any.
var/obj/item/clothing/suit/space/new_rig/chest // Deployable chestpiece, if any.
var/obj/item/clothing/head/helmet/space/new_rig/helmet = null // Deployable helmet, if any.
var/obj/item/clothing/gloves/rig/gloves = null // Deployable gauntlets, if any.
@@ -71,6 +72,7 @@
var/sealing // Keeps track of seal status independantly of NODROP.
var/offline = 1 // Should we be applying suit maluses?
var/offline_slowdown = 3 // If the suit is deployed and unpowered, it sets slowdown to this.
var/active_slowdown = 3 // How much the deployed suit slows down if powered.
var/vision_restriction
var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets.
var/airtight = 1 //If set, will adjust AIRTIGHT and STOPSPRESSUREDMAGE flags on components. Otherwise it should leave them untouched.
@@ -462,7 +464,7 @@
offline = 0
if(istype(wearer) && !wearer.wearing_rig)
wearer.wearing_rig = src
chest.slowdown = initial(slowdown)
chest.slowdown = active_slowdown
if(offline)
if(offline == 1)
@@ -721,6 +723,12 @@
if(isliving(uneq_piece.loc))
var/mob/living/L = uneq_piece.loc
L.unEquip(uneq_piece, 1)
if(uneq_piece == boots)
if(under_boots)
if(L.equip_to_slot_if_possible(under_boots, slot_shoes))
under_boots = null
else
to_chat(user, "<span class='warning'>Somehow, your [under_boots] got stuck to the [boots], and were retracted with them. ((This shouldn't happen, bug report this.))</span>")
uneq_piece.forceMove(src)
return 0
@@ -767,7 +775,12 @@
if(to_strip)
to_strip.unEquip(use_obj, 1)
if(use_obj == boots)
if(under_boots)
if(to_strip.equip_to_slot_if_possible(under_boots, slot_shoes))
under_boots = null
else
to_chat(user, "<span class='warning'>Somehow, your [under_boots] got stuck to the [boots], and were retracted with them. ((This shouldn't happen, bug report this.))</span>")
use_obj.forceMove(src)
if(wearer)
to_chat(wearer, "<span class='notice'>Your [use_obj] [use_obj.gender == PLURAL ? "retract" : "retracts"] swiftly.")
@@ -775,8 +788,13 @@
else if(deploy_mode != ONLY_RETRACT)
if(check_slot)
if(check_slot != use_obj) //If use_obj is already in check_slot, silently bail. Otherwise, tell the user why the part didn't deploy.
to_chat(wearer, "<span class='danger'>You are unable to deploy \the [piece] as \the [check_slot] [check_slot.gender == PLURAL ? "are" : "is"] in the way.</span>")
return
if(use_obj == boots)
under_boots = check_slot
wearer.unEquip(under_boots)
under_boots.forceMove(src)
else
to_chat(wearer, "<span class='danger'>You are unable to deploy \the [piece] as \the [check_slot] [check_slot.gender == PLURAL ? "are" : "is"] in the way.</span>")
return
use_obj.forceMove(wearer)
if(!wearer.equip_to_slot_if_possible(use_obj, equip_to, 0, 1))
use_obj.forceMove(src)
@@ -798,9 +816,9 @@
if(gloves && wearer.gloves && wearer.gloves != gloves)
to_chat(user, "<span class='danger'>\The [wearer.gloves] is preventing \the [src] from deploying!</span>")
return 0
if(boots && wearer.shoes && wearer.shoes != boots)
/*if(boots && wearer.shoes && wearer.shoes != boots)
to_chat(user, "<span class='danger'>\The [wearer.shoes] is preventing \the [src] from deploying!</span>")
return 0
return 0*/
if(chest && wearer.wear_suit && wearer.wear_suit != chest)
to_chat(user, "<span class='danger'>\The [wearer.wear_suit] is preventing \the [src] from deploying!</span>")
return 0
@@ -5,7 +5,7 @@
icon_state = "breacher_rig_cheap"
armor = list(melee = 30, bullet = 30, laser = 30, energy = 30, bomb = 45, bio = 100, rad = 50)
emp_protection = -20
slowdown = 6
active_slowdown = 6
offline_slowdown = 10
vision_restriction = 1
offline_vision_restriction = 2
@@ -43,4 +43,4 @@
species_restricted = list("Unathi")
sprite_sheets = list(
"Unathi" = 'icons/mob/species/unathi/feet.dmi'
)
)
@@ -6,7 +6,7 @@
icon_state = "security_rig"
suit_type = "combat hardsuit"
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
slowdown = 1
active_slowdown = 1
offline_slowdown = 3
offline_vision_restriction = 1
@@ -25,4 +25,4 @@
// /obj/item/rig_module/power_sink,
/obj/item/rig_module/electrowarfare_suite,
/obj/item/rig_module/chem_dispenser/combat
)
)
@@ -6,7 +6,7 @@
suit_type = "light suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank,/obj/item/weapon/stock_parts/cell)
emp_protection = 10
slowdown = 0
active_slowdown = 0
flags = STOPSPRESSUREDMAGE | THICKMATERIAL
offline_slowdown = 0
offline_vision_restriction = 0
@@ -77,7 +77,7 @@
icon_state = "ninja_rig"
armor = list(melee = 50, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 30)
emp_protection = 40 //change this to 30 if too high.
slowdown = 0
active_slowdown = 0
chest_type = /obj/item/clothing/suit/space/new_rig/light/ninja
glove_type = /obj/item/clothing/gloves/rig/light/ninja
@@ -6,7 +6,7 @@
icon_state = "merc_rig"
suit_type = "crimson hardsuit"
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
slowdown = 1
active_slowdown = 1
offline_slowdown = 3
offline_vision_restriction = 1
@@ -29,4 +29,4 @@
initial_modules = list(
/obj/item/rig_module/ai_container,
/obj/item/rig_module/electrowarfare_suite, //might as well
)
)
@@ -17,7 +17,7 @@
icon_state = "internalaffairs_rig"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 0.9
slowdown = 0
active_slowdown = 0
offline_slowdown = 0
offline_vision_restriction = 0
@@ -52,7 +52,7 @@
desc = "A heavy, powerful rig used by construction crews and mining corporations."
icon_state = "engineering_rig"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
slowdown = 3
active_slowdown = 3
offline_slowdown = 10
offline_vision_restriction = 2
emp_protection = -20
@@ -80,7 +80,7 @@
suit_type = "EVA hardsuit"
desc = "A light rig for repairs and maintenance to the outside of habitats and vessels."
icon_state = "eva_rig"
slowdown = 0
active_slowdown = 0
offline_slowdown = 1
offline_vision_restriction = 1
@@ -108,7 +108,7 @@
desc = "An advanced voidsuit that protects against hazardous, low pressure environments. Shines with a high polish."
icon_state = "ce_rig"
armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90)
slowdown = 0
active_slowdown = 0
offline_slowdown = 0
offline_vision_restriction = 0
@@ -149,7 +149,7 @@
suit_type = "hazmat hardsuit"
desc = "An Anomalous Material Interaction hardsuit that protects against the strangest energies the universe can throw at it."
icon_state = "science_rig"
slowdown = 1
active_slowdown = 1
offline_vision_restriction = 1
helm_type = /obj/item/clothing/head/helmet/space/new_rig/hazmat
@@ -176,7 +176,7 @@
desc = "A durable suit designed for medical rescue in high risk areas."
icon_state = "medical_rig"
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
slowdown = 1
active_slowdown = 1
offline_vision_restriction = 1
helm_type = /obj/item/clothing/head/helmet/space/new_rig/medical
@@ -201,7 +201,7 @@
desc = "A Security hardsuit designed for prolonged EVA in dangerous environments."
icon_state = "hazard_rig"
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
slowdown = 1
active_slowdown = 1
offline_slowdown = 3
offline_vision_restriction = 1
@@ -220,4 +220,4 @@
/obj/item/rig_module/maneuvering_jets,
/obj/item/rig_module/grenade_launcher,
/obj/item/rig_module/mounted/taser
)
)