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:
ComicIronic
2015-06-02 01:05:43 +01:00
parent 19f8657d31
commit 62f737535d
7 changed files with 30 additions and 20 deletions

View File

@@ -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>")

View File

@@ -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")

View File

@@ -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 ..()

View File

@@ -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)

View File

@@ -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"

View File

@@ -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>")

View File

@@ -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