diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 72f6c4d6772..81b93c6a84b 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -226,9 +226,6 @@ force = 10 throwforce = 7 w_class = 3 - var/charges = 50.0 - var/maximum_charges = 50.0 - var/status = 1 origin_tech = "combat=4" /obj/item/weapon/melee/energy diff --git a/code/game/magic/cultist/runes.dm b/code/game/magic/cultist/runes.dm index dc48bd11bac..489639b3c1f 100644 --- a/code/game/magic/cultist/runes.dm +++ b/code/game/magic/cultist/runes.dm @@ -945,16 +945,24 @@ var/list/sacrificed = list() ////////// Rune 24 (counting burningblood, which kinda doesnt work yet.) - runestun(var/mob/living/carbon/T as mob) + runestun(var/mob/living/T as mob) if(istype(src,/obj/effect/rune)) ///When invoked as rune, flash and stun everyone around. usr.say("Fuu ma'jin!") - for(var/mob/living/carbon/C in viewers(src)) - flick("e_flash", C.flash) - if (C.stuttering < 1 && (!(HULK in C.mutations))) - C.stuttering = 1 - C.Weaken(1) - C.Stun(1) - C.show_message("\red The rune explodes in a bright flash.", 3) + for(var/mob/living/L in viewers(src)) + + if(iscarbon(L) && !iscultist(L)) + var/mob/living/carbon/C = L + flick("e_flash", C.flash) + if(C.stuttering < 1 && (!(HULK in C.mutations))) + C.stuttering = 1 + C.Weaken(1) + C.Stun(1) + C.show_message("\red The rune explodes in a bright flash.", 3) + + else if(issilicon(L)) + var/mob/living/silicon/S = L + S.Weaken(5) + S.show_message("\red BZZZT... The rune has exploded in a bright flash.", 3) del(src) else ///When invoked as talisman, stun and mute the target mob. usr.say("Dream sign ''Evil sealing talisman''!") @@ -965,11 +973,17 @@ var/list/sacrificed = list() else for(var/mob/O in viewers(T, null)) O.show_message(text("\red [] invokes a talisman at []", usr, T), 1) - flick("e_flash", T.flash) - if (!(HULK in T.mutations)) - T.silent += 15 - T.Weaken(25) - T.Stun(25) + + if(issilicon(T)) + T.Weaken(15) + + else if(iscarbon(T)) + var/mob/living/carbon/C = T + flick("e_flash", C.flash) + if (!(HULK in C.mutations)) + C.silent += 15 + C.Weaken(25) + C.Stun(25) return /////////////////////////////////////////TWENTY-FIFTH RUNE diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 673ec0bcc32..34ecd31840f 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -41,53 +41,21 @@ for(var/obj/O in contents) O.emp_act(severity) -/* - New() - spawn(15) // Hack, but I need to wait for sub-calls to load the gun before loading the chamber. 1.5 seconds should be fine. - load_into_chamber() - - afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)//TODO: go over this - if(inrange) - if(!doafterattack(target , src)) - return //we're placing gun on a table or in backpack. What the fuck was the previous check? - if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) - return//Shouldnt flag take care of this? -{R} */ afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)//TODO: go over this if(flag) return //we're placing gun on a table or in backpack if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this? - if(istype(user, /mob/living)) - var/mob/living/M = user - if ((CLUMSY in M.mutations) && prob(50)) - M << "\red The [src.name] blows up in your face." - M.take_organ_damage(0,20) - M.drop_item() - del(src) - return - -/* - attack(mob/M as mob, mob/user as mob) - if(!in_chamber) - if(!load_into_chamber()) - ..() // No ammo, we're going to get bashy now. - - - return// fuck you, guns. you stick to shooting when you have ammo - - New() - spawn(15) // Hack, but I need to wait for sub-calls to load the gun before loading the chamber. 1.5 seconds should be fine. - load_into_chamber() - - - afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)//TODO: go over this - if(inrange) - if(!doafterattack(target , src)) - return //we're placing gun on a table or in backpack. What the fuck was the previous check? - if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) - return//Shouldnt flag take care of this? -{R} */ + //Exclude lasertag guns from the CLUMSY check. + if(src.name != "laser tag gun") + if(istype(user, /mob/living)) + var/mob/living/M = user + if ((CLUMSY in M.mutations) && prob(50)) + M << "\red The [src.name] blows up in your face." + M.take_organ_damage(0,20) + M.drop_item() + del(src) + return if (!user.IsAdvancedToolUser()) user << "\red You don't have the dexterity to do this!" @@ -112,57 +80,8 @@ in_chamber.firer = user in_chamber.def_zone = user.zone_sel.selecting -/* - if(user == target) // What the FUCK was this code? If shoot anything on the same tile, you're shooting yourself? What? - if(!determination) - user << "Are you really sure you want to shoot yourself? You put the gun against your head." - determination = 1 - spawn(30) - if(determination == 2) - return - determination = 0 - user << "You don't have the guts." - return - - determination = 2 - - if(silenced) - playsound(user, fire_sound, 10, 1) - else - playsound(user, fire_sound, 50, 1) - user.visible_message("\red [user.name] fires the [src.name] at their own head!", "\red You fire the [src.name] at yourself!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") - in_chamber.def_zone = "head" - in_chamber.damage *= 5 - user.bullet_act(in_chamber, in_chamber.def_zone) - del(in_chamber) - update_icon() - return - - if(inrange) - if(silenced) - playsound(user, fire_sound, 10, 1) - else - playsound(user, fire_sound, 50, 1) - if(ismob(target)) - user.visible_message("\red [user.name] shoots [target] point-blank in the [in_chamber.def_zone] with the [src.name]!", "\red You fire the [src.name] point-blank at [target]'s [in_chamber.def_zone]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") - else - user.visible_message("\red [user.name] fires the [src.name] point-blank at [target]!", "\red You fire the [src.name] point-blank at [target]!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") - in_chamber.damage *= 1.25 - target.bullet_act(in_chamber, in_chamber.def_zone) - del(in_chamber) - update_icon() - return -{R}*/ if(targloc == curloc) -/* - if(silenced) - playsound(user, fire_sound, 10, 1) - else - playsound(user, fire_sound, 50, 1) - user.visible_message("\red [user.name] fires the [src.name] at themselves!", "\red You fire the [src.name] at yourself!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") -{R}*/ - user.bullet_act(in_chamber) del(in_chamber) update_icon()