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) breaktape(/obj/item/weapon/wirecutters,user)
/obj/item/tape/proc/breaktape(obj/item/weapon/W as obj, mob/user as mob) /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)))) if(user.a_intent == I_HELP && (!W || !W.is_sharp()) && !src.allowed(user))
user << "<span class='notice'>You can't break [src] with that!</span>" user << "<span class='notice'>You can't break [src] [W ? "with \the [W] " : ""]unless you use force.</span>"
return return
user.visible_message("<span class='warning'>[user] breaks [src]!</span>") 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() 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() /obj/item/stack/cable_coil/update_icon()
if(!_color) if(!_color)
_color = pick("red", "yellow", "blue", "green") _color = pick("red", "yellow", "blue", "green")

View File

@@ -186,13 +186,16 @@
for (var/obj/item/stack/item in usr.loc) for (var/obj/item/stack/item in usr.loc)
if (src == item) if (src == item)
continue continue
if(src.type != item.type) if(!can_stack_with(item))
continue continue
if (item.amount>=item.max_amount) if (item.amount>=item.max_amount)
continue continue
src.preattack(item, usr,1) src.preattack(item, usr,1)
break 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) /obj/item/stack/attack_hand(mob/user as mob)
if (user.get_inactive_hand() == src) if (user.get_inactive_hand() == src)
var/obj/item/stack/F = new src.type( user, amount=1) var/obj/item/stack/F = new src.type( user, amount=1)
@@ -211,7 +214,7 @@
if (!proximity_flag) if (!proximity_flag)
return 0 return 0
if (istype(target, src.type) && src.type==target.type) if (can_stack_with(target))
var/obj/item/stack/S = target var/obj/item/stack/S = target
if (amount >= max_amount) if (amount >= max_amount)
user << "\The [src] cannot hold anymore [singular_name]." user << "\The [src] cannot hold anymore [singular_name]."
@@ -276,7 +279,7 @@
/obj/item/stack/verb_pickup(mob/living/user) /obj/item/stack/verb_pickup(mob/living/user)
var/obj/item/I = user.get_active_hand() var/obj/item/I = user.get_active_hand()
if(I && I.type == src.type) if(I && can_stack_with(I))
src.attackby(I, user) I.preattack(src, user, 1)
return return
return ..() return ..()

View File

@@ -454,7 +454,10 @@
if(E.damage > 10) if(E.damage > 10)
E.damage += rand(4,10) E.damage += rand(4,10)
if(-1) 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) user.eye_blurry += rand(12,20)
E.damage += rand(12, 16) E.damage += rand(12, 16)
if(E.damage > 10 && safety < 2) if(E.damage > 10 && safety < 2)

View File

@@ -15,6 +15,7 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
pressure_resistance = 200 * ONE_ATMOSPHERE pressure_resistance = 200 * ONE_ATMOSPHERE
eyeprot = 3 eyeprot = 3
species_restricted = list("exclude","Vox")
/obj/item/clothing/head/helmet/space/rig/New() /obj/item/clothing/head/helmet/space/rig/New()
..() ..()
@@ -156,6 +157,8 @@
var/obj/machinery/camera/camera var/obj/machinery/camera/camera
pressure_resistance = 40 * ONE_ATMOSPHERE pressure_resistance = 40 * ONE_ATMOSPHERE
species_restricted = null
/obj/item/clothing/head/helmet/space/rig/syndi/attack_self(mob/user) /obj/item/clothing/head/helmet/space/rig/syndi/attack_self(mob/user)
if(camera) if(camera)
..(user) ..(user)
@@ -184,6 +187,7 @@
siemens_coefficient = 0.6 siemens_coefficient = 0.6
pressure_resistance = 40 * ONE_ATMOSPHERE pressure_resistance = 40 * ONE_ATMOSPHERE
species_restricted = null
//Wizard Rig //Wizard Rig
/obj/item/clothing/head/helmet/space/rig/wizard /obj/item/clothing/head/helmet/space/rig/wizard
@@ -199,6 +203,8 @@
wizard_garb = 1 wizard_garb = 1
species_restricted = null
/obj/item/clothing/suit/space/rig/wizard /obj/item/clothing/suit/space/rig/wizard
icon_state = "rig-wiz" icon_state = "rig-wiz"
name = "gem-encrusted hardsuit" name = "gem-encrusted hardsuit"
@@ -213,6 +219,8 @@
wizard_garb = 1 wizard_garb = 1
species_restricted = null
//Medical Rig //Medical Rig
/obj/item/clothing/head/helmet/space/rig/medical /obj/item/clothing/head/helmet/space/rig/medical
name = "medical hardsuit helmet" name = "medical hardsuit helmet"

View File

@@ -39,16 +39,8 @@
src << "<span class='warning'>Your hands are full.</span>" src << "<span class='warning'>Your hands are full.</span>"
user << "<span class='warning'>Their hands are full.</span>" user << "<span class='warning'>Their hands are full.</span>"
return return
else user.drop_item(I)
user.drop_item(I) src.put_in_hands(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()
src.visible_message("<span class='notice'>[user] handed \the [I] to [src].</span>") src.visible_message("<span class='notice'>[user] handed \the [I] to [src].</span>")
if("No") if("No")
src.visible_message("<span class='warning'>[user] tried to hand \the [I] to [src] but \he didn't want it.</span>") 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(..())
if(istype(newloc, /turf/unsimulated/floor/asteroid) && istype(module, /obj/item/weapon/robot_module/miner)) 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/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)
if(ore_bag && to_collect.len) for(var/obj/item/weapon/ore/ore in newloc.contents)
ore_bag.preattack(newloc, src, 1) //collects everything ore_bag.preattack(newloc, src, 1) //collects everything
break