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