mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
General bugfixing.
I don't really get this if statement in policetape, but it should be fixed now maybe. Added a proc for checking if two stacks can merge, used it on coloured cables. Fixes #4156. Made the welding damage message list the item intensifying the damage. Fixes #4187. Added Vox exclusion to RIG helmets, removed it from Wiz and Nukeops hardsuits. Fixes #4790, fixes #4756, fixes #4496. Orebag now only gives borgs a message if it finds ore. Fixes #4150. Throws something at #4267, hardcode is bad and everyone should feel bad.
This commit is contained in:
@@ -173,8 +173,8 @@
|
||||
breaktape(/obj/item/weapon/wirecutters,user)
|
||||
|
||||
/obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(user.a_intent == I_HELP && ((!is_sharp(W) && src.allowed(user))))
|
||||
user << "<span class='notice'>You can't break [src] with that!</span>"
|
||||
if(user.a_intent == I_HELP && (!W || !W.is_sharp()) && !src.allowed(user))
|
||||
user << "<span class='notice'>You can't break [src] [W ? "with \the [W] " : ""]unless you use force.</span>"
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] breaks [src]!</span>")
|
||||
|
||||
|
||||
@@ -81,6 +81,9 @@ var/global/list/datum/stack_recipe/cable_recipes = list ( \
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/stack/cable_coil/can_stack_with(obj/item/other_stack)
|
||||
return istype(other_stack, /obj/item/stack/cable_coil) && !istype(other_stack, /obj/item/stack/cable_coil/heavyduty) //it can be any cable, except the fat stuff
|
||||
|
||||
/obj/item/stack/cable_coil/update_icon()
|
||||
if(!_color)
|
||||
_color = pick("red", "yellow", "blue", "green")
|
||||
|
||||
@@ -186,13 +186,16 @@
|
||||
for (var/obj/item/stack/item in usr.loc)
|
||||
if (src == item)
|
||||
continue
|
||||
if(src.type != item.type)
|
||||
if(!can_stack_with(item))
|
||||
continue
|
||||
if (item.amount>=item.max_amount)
|
||||
continue
|
||||
src.preattack(item, usr,1)
|
||||
break
|
||||
|
||||
/obj/item/stack/proc/can_stack_with(obj/item/other_stack)
|
||||
return src.type == other_stack.type
|
||||
|
||||
/obj/item/stack/attack_hand(mob/user as mob)
|
||||
if (user.get_inactive_hand() == src)
|
||||
var/obj/item/stack/F = new src.type( user, amount=1)
|
||||
@@ -211,7 +214,7 @@
|
||||
if (!proximity_flag)
|
||||
return 0
|
||||
|
||||
if (istype(target, src.type) && src.type==target.type)
|
||||
if (can_stack_with(target))
|
||||
var/obj/item/stack/S = target
|
||||
if (amount >= max_amount)
|
||||
user << "\The [src] cannot hold anymore [singular_name]."
|
||||
@@ -276,7 +279,7 @@
|
||||
|
||||
/obj/item/stack/verb_pickup(mob/living/user)
|
||||
var/obj/item/I = user.get_active_hand()
|
||||
if(I && I.type == src.type)
|
||||
src.attackby(I, user)
|
||||
if(I && can_stack_with(I))
|
||||
I.preattack(src, user, 1)
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -454,7 +454,10 @@
|
||||
if(E.damage > 10)
|
||||
E.damage += rand(4,10)
|
||||
if(-1)
|
||||
usr << "<span class='warning'>Your thermals intensify the welder's glow. Your eyes itch and burn severely.</span>"
|
||||
var/obj/item/clothing/to_blame = H.head //blame the hat
|
||||
if(!to_blame || (istype(to_blame) && H.glasses && H.glasses.eyeprot < to_blame.eyeprot)) //if we don't have a hat, the issue is the glasses. Otherwise, if the glasses are worse, blame the glasses
|
||||
to_blame = H.glasses
|
||||
usr << "<span class='warning'>Your [to_blame] intensifies the welder's glow. Your eyes itch and burn severely.</span>"
|
||||
user.eye_blurry += rand(12,20)
|
||||
E.damage += rand(12, 16)
|
||||
if(E.damage > 10 && safety < 2)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
pressure_resistance = 200 * ONE_ATMOSPHERE
|
||||
eyeprot = 3
|
||||
species_restricted = list("exclude","Vox")
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/New()
|
||||
..()
|
||||
@@ -156,6 +157,8 @@
|
||||
var/obj/machinery/camera/camera
|
||||
pressure_resistance = 40 * ONE_ATMOSPHERE
|
||||
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/head/helmet/space/rig/syndi/attack_self(mob/user)
|
||||
if(camera)
|
||||
..(user)
|
||||
@@ -184,6 +187,7 @@
|
||||
siemens_coefficient = 0.6
|
||||
pressure_resistance = 40 * ONE_ATMOSPHERE
|
||||
|
||||
species_restricted = null
|
||||
|
||||
//Wizard Rig
|
||||
/obj/item/clothing/head/helmet/space/rig/wizard
|
||||
@@ -199,6 +203,8 @@
|
||||
|
||||
wizard_garb = 1
|
||||
|
||||
species_restricted = null
|
||||
|
||||
/obj/item/clothing/suit/space/rig/wizard
|
||||
icon_state = "rig-wiz"
|
||||
name = "gem-encrusted hardsuit"
|
||||
@@ -213,6 +219,8 @@
|
||||
|
||||
wizard_garb = 1
|
||||
|
||||
species_restricted = null
|
||||
|
||||
//Medical Rig
|
||||
/obj/item/clothing/head/helmet/space/rig/medical
|
||||
name = "medical hardsuit helmet"
|
||||
|
||||
@@ -39,16 +39,8 @@
|
||||
src << "<span class='warning'>Your hands are full.</span>"
|
||||
user << "<span class='warning'>Their hands are full.</span>"
|
||||
return
|
||||
else
|
||||
user.drop_item(I)
|
||||
src.put_in_hands(I)
|
||||
I.loc = src
|
||||
I.layer = 20
|
||||
I.add_fingerprint(src)
|
||||
src.update_inv_l_hand()
|
||||
src.update_inv_r_hand()
|
||||
user.update_inv_l_hand()
|
||||
user.update_inv_r_hand()
|
||||
user.drop_item(I)
|
||||
src.put_in_hands(I)
|
||||
src.visible_message("<span class='notice'>[user] handed \the [I] to [src].</span>")
|
||||
if("No")
|
||||
src.visible_message("<span class='warning'>[user] tried to hand \the [I] to [src] but \he didn't want it.</span>")
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
if(..())
|
||||
if(istype(newloc, /turf/unsimulated/floor/asteroid) && istype(module, /obj/item/weapon/robot_module/miner))
|
||||
var/obj/item/weapon/storage/bag/ore/ore_bag = locate(/obj/item/weapon/storage/bag/ore) in get_all_slots() //find it in our modules
|
||||
var/list/to_collect = newloc.contents - src
|
||||
if(ore_bag && to_collect.len)
|
||||
ore_bag.preattack(newloc, src, 1) //collects everything
|
||||
if(ore_bag)
|
||||
for(var/obj/item/weapon/ore/ore in newloc.contents)
|
||||
ore_bag.preattack(newloc, src, 1) //collects everything
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user