diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 72ee42ae792..e033cbb3aad 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -91,9 +91,11 @@
/obj/item/weapon/cane/concealed/New()
..()
- concealed_blade = new/obj/item/weapon/butterfly/switchblade(src)
+ var/obj/item/weapon/butterfly/switchblade/temp_blade = new(src)
+ concealed_blade = temp_blade
+ temp_blade.attack_self()
-/obj/item/weapon/cane/concealed/attack_self(mob/user)
+/obj/item/weapon/cane/concealed/attack_self(var/mob/user)
if(concealed_blade)
user.visible_message("[user] has unsheathed \a [concealed_blade] from \his [src]!", "You unsheathe \the [concealed_blade] from \the [src].")
// Calling drop/put in hands to properly call item drop/pickup procs
@@ -101,8 +103,9 @@
user.drop_from_inventory(src)
user.put_in_hands(concealed_blade)
user.put_in_hands(src)
+ user.update_inv_l_hand(0)
+ user.update_inv_r_hand()
concealed_blade = null
- update_icon()
else
..()
diff --git a/code/modules/clothing/spacesuits/rig/modules/computer.dm b/code/modules/clothing/spacesuits/rig/modules/computer.dm
index a6c549b6663..45fc029ca22 100644
--- a/code/modules/clothing/spacesuits/rig/modules/computer.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/computer.dm
@@ -104,7 +104,14 @@
// Okay, it wasn't a terminal being touched, check for all the simple insertions.
if(input_device.type in list(/obj/item/device/paicard, /obj/item/device/mmi, /obj/item/device/mmi/digital/posibrain))
- integrate_ai(input_device,user)
+ if(integrated_ai)
+ integrated_ai.attackby(input_device,user)
+ // If the transfer was successful, we can clear out our vars.
+ if(integrated_ai.loc != src)
+ integrated_ai = null
+ eject_ai()
+ else
+ integrate_ai(input_device,user)
return 1
return 0
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index a3b601ebce9..9248d741401 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -62,7 +62,7 @@
matter = list("metal" = 3750)
var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO
origin_tech = "materials=1;engineering=1"
- attack_verb = list("hit", "pierced", "sliced", "attacked", "drilled")
+ attack_verb = list("hit", "pierced", "sliced", "attacked")
var/drill_sound = 'sound/weapons/Genhit.ogg'
var/drill_verb = "drilling"
sharp = 1
@@ -107,6 +107,7 @@
digspeed = 20
origin_tech = "materials=4"
desc = "This makes no metallurgic sense."
+ drill_verb = "picking"
/obj/item/weapon/pickaxe/plasmacutter
name = "plasma cutter"
@@ -125,7 +126,8 @@
item_state = "dpickaxe"
digspeed = 10
origin_tech = "materials=6;engineering=4"
- desc = "A pickaxe with a diamond pick head, this is just like minecraft."
+ desc = "A pickaxe with a diamond pick head."
+ drill_verb = "picking"
/obj/item/weapon/pickaxe/diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME!
name = "diamond mining drill"
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 9571a789a87..466742046bb 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -80,7 +80,7 @@
mutations.Add(HUSK)
status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools
- update_body(0)
+ update_body(1)
return
/mob/living/carbon/human/proc/Drain()
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index bd4a8e00927..d35cef24fd9 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -216,14 +216,14 @@
if (istype(l_hand,/obj/item/weapon/gun))
W = l_hand
- chance = hand ? 40 : 20
+ chance += hand ? 40 : 20
- if (istype(r_hand,/obj/item/weapon/gun))
+ else if (istype(r_hand,/obj/item/weapon/gun))
W = r_hand
- chance = !hand ? 40 : 20
+ chance += !hand ? 40 : 20
if (prob(chance))
- visible_message("[src]'s [W] goes off during struggle!")
+ visible_message("[src]'s [W.name] goes off during struggle!")
var/list/turfs = list()
for(var/turf/T in view())
turfs += T
diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm
index d033e70610d..7ed48d6e2ad 100644
--- a/code/modules/mob/living/carbon/human/unarmed_attack.dm
+++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm
@@ -41,12 +41,12 @@
if (target.l_hand)
// Disarm left hand
//Urist McAssistant dropped the macguffin with a scream just sounds odd. Plus it doesn't work with NO_PAIN
- target.visible_message("\The [target.l_hand] was knocked right out of [src]'s grasp!")
+ target.visible_message("\The [target.l_hand] was knocked right out of [target]'s grasp!")
target.drop_l_hand()
if("r_arm", "r_hand")
if (target.r_hand)
// Disarm right hand
- target.visible_message("\The [target.r_hand] was knocked right out of [src]'s grasp!")
+ target.visible_message("\The [target.r_hand] was knocked right out of [target]'s grasp!")
target.drop_r_hand()
if("chest")
if(!target.lying)
diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm
index 022726b00ac..d5510ac509c 100644
--- a/code/modules/mob/living/carbon/metroid/death.dm
+++ b/code/modules/mob/living/carbon/metroid/death.dm
@@ -10,14 +10,13 @@
is_adult = 0
maxHealth = 150
revive()
- regenerate_icons()
if (!client) rabid = 1
number = rand(1, 1000)
name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])"
return
. = ..(gibbed, "seizes up and falls limp...")
-
+ mood = null
regenerate_icons()
return
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm
index d6c8c226c41..1ba3b82cafd 100644
--- a/code/modules/mob/living/carbon/metroid/metroid.dm
+++ b/code/modules/mob/living/carbon/metroid/metroid.dm
@@ -71,6 +71,7 @@
mutation_chance = rand(25, 35)
var/sanitizedcolour = replacetext(colour, " ", "")
coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]")
+ regenerate_icons()
..(location)
/mob/living/carbon/slime/movement_delay()
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index b2b98dd3160..08cfa2e432f 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -8,7 +8,7 @@
load_method = MAGAZINE
/obj/item/weapon/gun/projectile/colt/detective
- desc = "A cheap Martian knock-off of a Colt M1911. Uses less-than-lethal .45 rounds."
+ desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds."
magazine_type = /obj/item/ammo_magazine/c45m/rubber
/obj/item/weapon/gun/projectile/colt/detective/verb/rename_gun()
@@ -30,7 +30,7 @@
return 1
/obj/item/weapon/gun/projectile/sec
- desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses less-than-lethal .45 rounds."
+ desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 rounds."
name = "\improper NT Mk58"
icon_state = "secguncomp"
magazine_type = /obj/item/ammo_magazine/c45m/rubber
@@ -40,11 +40,10 @@
/obj/item/weapon/gun/projectile/sec/flash
name = "\improper NT Mk58 signal pistol"
- desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 signal flash rounds."
magazine_type = /obj/item/ammo_magazine/c45m/flash
/obj/item/weapon/gun/projectile/sec/wood
- desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses less-than-lethal .45 rounds."
+ desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses .45 rounds."
name = "\improper Custom NT Mk58"
icon_state = "secgundark"
@@ -118,7 +117,7 @@
/obj/item/weapon/gun/projectile/pistol/flash
name = "\improper Stechtkin signal pistol"
- desc = "A small, easily concealable gun. Uses 9mm signal flash rounds."
+ desc = "A small, easily concealable gun. Uses 9mm rounds."
magazine_type = /obj/item/ammo_magazine/mc9mm/flash
/obj/item/weapon/gun/projectile/pistol/attack_hand(mob/user as mob)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 1400c6ca583..0ec99be4e91 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -136,11 +136,13 @@
//Called when the projectile intercepts a mob. Returns 1 if the projectile hit the mob, 0 if it missed and should keep flying.
/obj/item/projectile/proc/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0)
+ if(!istype(target_mob))
+ return
//accuracy bonus from aiming
if (istype(shot_from, /obj/item/weapon/gun))
var/obj/item/weapon/gun/daddy = shot_from
miss_modifier -= round(15*daddy.accuracy)
-
+
//If you aim at someone beforehead, it'll hit more often.
//Kinda balanced by fact you need like 2 seconds to aim
//As opposed to no-delay pew pew
@@ -184,7 +186,7 @@
/obj/item/projectile/Bump(atom/A as mob|obj|turf|area, forced=0)
if(A == src)
return 0 //no
-
+
if(A == firer)
loc = A.loc
return 0 //cannot shoot yourself
@@ -205,7 +207,7 @@
visible_message("\The [M] uses [G.affecting] as a shield!")
if(Bump(G.affecting, forced=1))
return //If Bump() returns 0 (keep going) then we continue on to attack M.
-
+
passthrough = !attack_mob(M, distance)
else
passthrough = 1 //so ghosts don't stop bullets
@@ -214,7 +216,7 @@
if(isturf(A))
for(var/obj/O in A)
O.bullet_act(src)
- for(var/mob/M in A)
+ for(var/mob/living/M in A)
attack_mob(M, distance)
//penetrating projectiles can pass through things that otherwise would not let them
@@ -237,7 +239,7 @@
//stop flying
on_impact(A)
-
+
density = 0
invisibility = 101
del(src)
@@ -268,8 +270,8 @@
if(!(original in permutated))
Bump(original)
sleep(1)
-
-//"Tracing" projectile
+
+//"Tracing" projectile
/obj/item/projectile/test //Used to see if you can hit them.
invisibility = 101 //Nope! Can't see me!
yo = null