Merge pull request #7015 from Zuhayr/attackverbremoval

Attack proc removal/refactor.
This commit is contained in:
Chinsky
2014-11-14 11:18:43 +03:00
170 changed files with 909 additions and 2011 deletions

View File

@@ -981,7 +981,6 @@
#include "code\modules\mob\living\carbon\human\examine.dm" #include "code\modules\mob\living\carbon\human\examine.dm"
#include "code\modules\mob\living\carbon\human\human.dm" #include "code\modules\mob\living\carbon\human\human.dm"
#include "code\modules\mob\living\carbon\human\human_attackhand.dm" #include "code\modules\mob\living\carbon\human\human_attackhand.dm"
#include "code\modules\mob\living\carbon\human\human_attackpaw.dm"
#include "code\modules\mob\living\carbon\human\human_damage.dm" #include "code\modules\mob\living\carbon\human\human_damage.dm"
#include "code\modules\mob\living\carbon\human\human_defense.dm" #include "code\modules\mob\living\carbon\human\human_defense.dm"
#include "code\modules\mob\living\carbon\human\human_defines.dm" #include "code\modules\mob\living\carbon\human\human_defines.dm"

View File

@@ -172,9 +172,6 @@
/obj/machinery/atmospherics/tvalve/attack_ai(mob/user as mob) /obj/machinery/atmospherics/tvalve/attack_ai(mob/user as mob)
return return
/obj/machinery/atmospherics/tvalve/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/atmospherics/tvalve/attack_hand(mob/user as mob) /obj/machinery/atmospherics/tvalve/attack_hand(mob/user as mob)
src.add_fingerprint(usr) src.add_fingerprint(usr)
update_icon(1) update_icon(1)

View File

@@ -65,9 +65,6 @@
/obj/machinery/atmospherics/unary/freezer/attack_ai(mob/user as mob) /obj/machinery/atmospherics/unary/freezer/attack_ai(mob/user as mob)
src.ui_interact(user) src.ui_interact(user)
/obj/machinery/atmospherics/unary/freezer/attack_paw(mob/user as mob)
src.ui_interact(user)
/obj/machinery/atmospherics/unary/freezer/attack_hand(mob/user as mob) /obj/machinery/atmospherics/unary/freezer/attack_hand(mob/user as mob)
src.ui_interact(user) src.ui_interact(user)

View File

@@ -86,9 +86,6 @@
/obj/machinery/atmospherics/unary/heater/attack_ai(mob/user as mob) /obj/machinery/atmospherics/unary/heater/attack_ai(mob/user as mob)
src.ui_interact(user) src.ui_interact(user)
/obj/machinery/atmospherics/unary/heater/attack_paw(mob/user as mob)
src.ui_interact(user)
/obj/machinery/atmospherics/unary/heater/attack_hand(mob/user as mob) /obj/machinery/atmospherics/unary/heater/attack_hand(mob/user as mob)
src.ui_interact(user) src.ui_interact(user)

View File

@@ -130,9 +130,6 @@
/obj/machinery/atmospherics/valve/attack_ai(mob/user as mob) /obj/machinery/atmospherics/valve/attack_ai(mob/user as mob)
return return
/obj/machinery/atmospherics/valve/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/atmospherics/valve/attack_hand(mob/user as mob) /obj/machinery/atmospherics/valve/attack_hand(mob/user as mob)
src.add_fingerprint(usr) src.add_fingerprint(usr)
update_icon(1) update_icon(1)

View File

@@ -55,9 +55,6 @@
del target del target
return ..() return ..()
attack_paw(var/mob/M)
return attack_hand(M)
attackby(obj/item/C as obj, mob/user as mob) attackby(obj/item/C as obj, mob/user as mob)
(..) (..)

View File

@@ -68,7 +68,7 @@
harm_intent_damage = 8 harm_intent_damage = 8
melee_damage_lower = 15 melee_damage_lower = 15
melee_damage_upper = 15 melee_damage_upper = 15
attacktext = "slashes" attacktext = "slashed"
attack_sound = 'sound/weapons/bite.ogg' attack_sound = 'sound/weapons/bite.ogg'
layer = 3.1 //so they can stay hidde under the /obj/structure/bush layer = 3.1 //so they can stay hidde under the /obj/structure/bush
@@ -126,7 +126,7 @@
harm_intent_damage = 2 harm_intent_damage = 2
melee_damage_lower = 3 melee_damage_lower = 3
melee_damage_upper = 10 melee_damage_upper = 10
attacktext = "bites" attacktext = "bitten"
attack_sound = 'sound/weapons/bite.ogg' attack_sound = 'sound/weapons/bite.ogg'
layer = 3.1 //so they can stay hidde under the /obj/structure/bush layer = 3.1 //so they can stay hidde under the /obj/structure/bush

View File

@@ -71,9 +71,6 @@
/obj/machinery/computer/guestpass/attack_ai(var/mob/user as mob) /obj/machinery/computer/guestpass/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/guestpass/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/guestpass/attack_hand(var/mob/user as mob) /obj/machinery/computer/guestpass/attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -34,9 +34,6 @@
/obj/machinery/computer/atmoscontrol/attack_ai(var/mob/user as mob) /obj/machinery/computer/atmoscontrol/attack_ai(var/mob/user as mob)
return interact(user) return interact(user)
/obj/machinery/computer/atmoscontrol/attack_paw(var/mob/user as mob)
return interact(user)
/obj/machinery/computer/atmoscontrol/attack_hand(mob/user) /obj/machinery/computer/atmoscontrol/attack_hand(mob/user)
if(..()) if(..())
return return

View File

@@ -135,8 +135,7 @@
else else
breaktape(null, user) breaktape(null, user)
/obj/item/tape/attack_paw(mob/user as mob)
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 == "help" && ((!can_puncture(W) && src.allowed(user)))) if(user.a_intent == "help" && ((!can_puncture(W) && src.allowed(user))))

View File

@@ -38,9 +38,6 @@ var/list/alldepartments = list("Central Command")
/obj/machinery/faxmachine/attack_ai(mob/user as mob) /obj/machinery/faxmachine/attack_ai(mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/faxmachine/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/faxmachine/attack_hand(mob/user as mob) /obj/machinery/faxmachine/attack_hand(mob/user as mob)
user.set_machine(src) user.set_machine(src)

View File

@@ -154,7 +154,6 @@
/mob/proc/DblClickOn(var/atom/A, var/params) /mob/proc/DblClickOn(var/atom/A, var/params)
ClickOn(A,params) ClickOn(A,params)
/* /*
Translates into attack_hand, etc. Translates into attack_hand, etc.
@@ -168,6 +167,21 @@
/mob/proc/UnarmedAttack(var/atom/A, var/proximity_flag) /mob/proc/UnarmedAttack(var/atom/A, var/proximity_flag)
return return
/mob/living/UnarmedAttack(var/atom/A, var/proximity_flag)
if(!ticker)
src << "You cannot attack people before the game has started."
return 0
if (istype(get_area(src), /area/start))
src << "No attacking people at spawn, you jackass."
return 0
if(stat)
return 0
return 1
/* /*
Ranged unarmed attack: Ranged unarmed attack:

View File

@@ -1,3 +1,7 @@
// Generic damage proc (slimes and monkeys).
/atom/proc/attack_generic(mob/user as mob)
return 0
/* /*
Humans: Humans:
Adds an exception for gloves, to allow special glove types like the ninja ones. Adds an exception for gloves, to allow special glove types like the ninja ones.
@@ -5,15 +9,19 @@
Otherwise pretty standard. Otherwise pretty standard.
*/ */
/mob/living/carbon/human/UnarmedAttack(var/atom/A, var/proximity) /mob/living/carbon/human/UnarmedAttack(var/atom/A, var/proximity)
var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
if(!..())
return
// Special glove functions: // Special glove functions:
// If the gloves do anything, have them return 1 to stop // If the gloves do anything, have them return 1 to stop
// normal attack_hand() here. // normal attack_hand() here.
if(proximity && istype(G) && G.Touch(A,1)) var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
if(istype(G) && G.Touch(A,1))
return return
A.attack_hand(src) A.attack_hand(src)
/atom/proc/attack_hand(mob/user as mob) /atom/proc/attack_hand(mob/user as mob)
return return
@@ -41,24 +49,21 @@
return return
A.attack_tk(src) A.attack_tk(src)
/*
Animals & All Unspecified
*/
/mob/living/UnarmedAttack(var/atom/A)
A.attack_animal(src)
/atom/proc/attack_animal(mob/user as mob)
return
/mob/living/RestrainedClickOn(var/atom/A) /mob/living/RestrainedClickOn(var/atom/A)
return return
/* /*
Monkeys Monkeys
*/ */
/mob/living/carbon/monkey/UnarmedAttack(var/atom/A)
A.attack_paw(src)
/atom/proc/attack_paw(mob/user as mob) /mob/living/carbon/monkey/UnarmedAttack(var/atom/A, var/proximity)
if(!..())
return return
A.attack_hand(src)
/* /*
Monkey RestrainedClickOn() was apparently the Monkey RestrainedClickOn() was apparently the
one and only use of all of the restrained click code one and only use of all of the restrained click code
@@ -88,26 +93,91 @@
/* /*
Aliens Aliens
Defaults to same as monkey in most places
*/ */
/mob/living/carbon/alien/RestrainedClickOn(var/atom/A) /mob/living/carbon/alien/RestrainedClickOn(var/atom/A)
return return
/mob/living/carbon/alien/UnarmedAttack(var/atom/A, var/proximity)
if(!..())
return 0
A.attack_generic(src,rand(5,6),"bitten")
/* /*
Slimes Slimes
Nothing happening here Nothing happening here
*/ */
/mob/living/carbon/slime/UnarmedAttack(var/atom/A)
A.attack_slime(src)
/atom/proc/attack_slime(mob/user as mob)
return
/mob/living/carbon/slime/RestrainedClickOn(var/atom/A) /mob/living/carbon/slime/RestrainedClickOn(var/atom/A)
return return
/mob/living/carbon/slime/UnarmedAttack(var/atom/A, var/proximity)
if(!..())
return
// Eating
if(Victim)
return
// Basic attack.
A.attack_generic(src, (is_adult ? rand(20,40) : rand(5,25)), "glomped")
// Handle mob shocks.
var/mob/living/M = A
if(istype(M) && powerlevel > 0 && !istype(A,/mob/living/carbon/slime))
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.flags & IS_SYNTHETIC || H.species.insulated)
return
var/power = max(0,min(10,(powerlevel+rand(0,3))))
var/stunprob = 10
switch(power*10)
if(1 to 2) stunprob = 20
if(3 to 4) stunprob = 30
if(5 to 6) stunprob = 40
if(7 to 8) stunprob = 60
if(9) stunprob = 70
if(10) stunprob = 95
if(prob(stunprob))
powerlevel = max(0,powerlevel-3)
src.visible_message("\red <B>The [name] has shocked [M]!</B>")
M.Weaken(power)
M.Stun(power)
if (M.stuttering < power) M.stuttering = power
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, M)
s.start()
if(prob(stunprob) && powerlevel >= 8)
M.adjustFireLoss(powerlevel * rand(6,10))
M.updatehealth()
/* /*
New Players: New Players:
Have no reason to click on anything at all. Have no reason to click on anything at all.
*/ */
/mob/new_player/ClickOn() /mob/new_player/ClickOn()
return return
/*
Animals
*/
/mob/living/simple_animal/UnarmedAttack(var/atom/A, var/proximity)
if(!..())
return
if(melee_damage_upper == 0 && istype(A,/mob/living))
custom_emote(1,"[friendly] [src]!")
return
var/damage = rand(melee_damage_lower, melee_damage_upper)
if(A.attack_generic(src,damage,attacktext,wall_smash) && loc && attack_sound)
playsound(loc, attack_sound, 50, 1, 1)

View File

@@ -193,11 +193,6 @@
return src.master.attackby(a, b) return src.master.attackby(a, b)
return return
/atom/movable/overlay/attack_paw(a, b, c)
if (src.master)
return src.master.attack_paw(a, b, c)
return
/atom/movable/overlay/attack_hand(a, b, c) /atom/movable/overlay/attack_hand(a, b, c)
if (src.master) if (src.master)
return src.master.attack_hand(a, b, c) return src.master.attack_hand(a, b, c)

View File

@@ -324,8 +324,6 @@
return return
return return
*/ */
/obj/machinery/computer/scan_consolenew/attack_paw(user as mob)
ui_interact(user)
/obj/machinery/computer/scan_consolenew/attack_ai(user as mob) /obj/machinery/computer/scan_consolenew/attack_ai(user as mob)
src.add_hiddenprint(user) src.add_hiddenprint(user)

View File

@@ -34,7 +34,7 @@
maxHealth = 20 maxHealth = 20
melee_damage_lower = 4 melee_damage_lower = 4
melee_damage_upper = 8 melee_damage_upper = 8
attacktext = "hits" attacktext = "hit"
attack_sound = 'sound/weapons/genhit1.ogg' attack_sound = 'sound/weapons/genhit1.ogg'
var/obj/effect/blob/factory/factory = null var/obj/effect/blob/factory/factory = null
faction = "blob" faction = "blob"

View File

@@ -1473,9 +1473,6 @@ It is possible to destroy the net by the occupant or someone else.
healthcheck() healthcheck()
return return
attack_paw()
return attack_hand()
attackby(obj/item/weapon/W as obj, mob/user as mob) attackby(obj/item/weapon/W as obj, mob/user as mob)
var/aforce = W.force var/aforce = W.force
health = max(0, health - aforce) health = max(0, health - aforce)

View File

@@ -165,9 +165,6 @@ var/bomb_set
return return
..() ..()
/obj/machinery/nuclearbomb/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/nuclearbomb/attack_hand(mob/user as mob) /obj/machinery/nuclearbomb/attack_hand(mob/user as mob)
if (src.extended) if (src.extended)
if (!ishuman(user)) if (!ishuman(user))

View File

@@ -45,19 +45,6 @@
if(prob(75)) if(prob(75))
del(src) del(src)
/obj/machinery/optable/attack_paw(mob/user as mob)
if ((HULK in usr.mutations))
usr << text("\blue You destroy the operating table.")
visible_message("\red [usr] destroys the operating table!")
src.density = 0
del(src)
if (!( locate(/obj/machinery/optable, user.loc) ))
step(user, get_dir(user, src))
if (user.loc == src.loc)
user.layer = TURF_LAYER
visible_message("The monkey hides under the table!")
return
/obj/machinery/optable/attack_hand(mob/user as mob) /obj/machinery/optable/attack_hand(mob/user as mob)
if (HULK in usr.mutations) if (HULK in usr.mutations)
usr << text("\blue You destroy the table.") usr << text("\blue You destroy the table.")

View File

@@ -50,9 +50,6 @@
/obj/machinery/sleep_console/attack_ai(mob/user as mob) /obj/machinery/sleep_console/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/sleep_console/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/sleep_console/attack_hand(mob/user as mob) /obj/machinery/sleep_console/attack_hand(mob/user as mob)
if(..()) if(..())
return return

View File

@@ -211,10 +211,6 @@
*/ */
/obj/machinery/body_scanconsole/attack_paw(user as mob)
return src.attack_hand(user)
/obj/machinery/body_scanconsole/attack_ai(user as mob) /obj/machinery/body_scanconsole/attack_ai(user as mob)
return src.attack_hand(user) return src.attack_hand(user)

View File

@@ -1094,9 +1094,6 @@ FIRE ALARM
/obj/machinery/firealarm/bullet_act(BLAH) /obj/machinery/firealarm/bullet_act(BLAH)
return src.alarm() return src.alarm()
/obj/machinery/firealarm/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/firealarm/emp_act(severity) /obj/machinery/firealarm/emp_act(severity)
if(prob(50/severity)) alarm() if(prob(50/severity)) alarm()
..() ..()
@@ -1379,9 +1376,6 @@ Code shamelessly copied from apc_frame
idle_power_usage = 2 idle_power_usage = 2
active_power_usage = 6 active_power_usage = 6
/obj/machinery/partyalarm/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/partyalarm/attack_hand(mob/user as mob) /obj/machinery/partyalarm/attack_hand(mob/user as mob)
if(user.stat || stat & (NOPOWER|BROKEN)) if(user.stat || stat & (NOPOWER|BROKEN))
return return

View File

@@ -21,9 +21,6 @@
attack_ai(var/mob/user as mob) attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
attack_paw(var/mob/user as mob)
return
attack_hand(var/mob/user as mob) attack_hand(var/mob/user as mob)
if(..(user)) if(..(user))
return return

View File

@@ -243,9 +243,6 @@ update_flag
/obj/machinery/portable_atmospherics/canister/attack_ai(var/mob/user as mob) /obj/machinery/portable_atmospherics/canister/attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/portable_atmospherics/canister/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/portable_atmospherics/canister/attack_hand(var/mob/user as mob) /obj/machinery/portable_atmospherics/canister/attack_hand(var/mob/user as mob)
return src.ui_interact(user) return src.ui_interact(user)

View File

@@ -103,9 +103,6 @@
/obj/machinery/portable_atmospherics/powered/pump/attack_ai(var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/pump/attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/portable_atmospherics/powered/pump/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/portable_atmospherics/powered/pump/attack_hand(var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/pump/attack_hand(var/mob/user as mob)
user.set_machine(src) user.set_machine(src)

View File

@@ -85,9 +85,6 @@
/obj/machinery/portable_atmospherics/powered/scrubber/attack_ai(var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/scrubber/attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/portable_atmospherics/powered/scrubber/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/portable_atmospherics/powered/scrubber/attack_hand(var/mob/user as mob) /obj/machinery/portable_atmospherics/powered/scrubber/attack_hand(var/mob/user as mob)
user.set_machine(src) user.set_machine(src)

View File

@@ -184,9 +184,6 @@
updateUsrDialog() updateUsrDialog()
return return
/obj/machinery/autolathe/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/autolathe/attack_hand(mob/user as mob) /obj/machinery/autolathe/attack_hand(mob/user as mob)
user.set_machine(src) user.set_machine(src)
interact(user) interact(user)

View File

@@ -52,18 +52,6 @@
user << "<span class='danger'>[src]'s parts look very loose!</span>" user << "<span class='danger'>[src]'s parts look very loose!</span>"
return return
/obj/machinery/bot/attack_animal(var/mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0) return
src.health -= M.melee_damage_upper
src.visible_message("\red <B>[M] has [M.attacktext] [src]!</B>")
M.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
if(prob(10))
new /obj/effect/decal/cleanable/blood/oil(src.loc)
healthcheck()
/obj/machinery/bot/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/machinery/bot/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/screwdriver)) if(istype(W, /obj/item/weapon/screwdriver))
if(!locked) if(!locked)

View File

@@ -96,9 +96,6 @@
src.icon_state = "medibot[src.on]" src.icon_state = "medibot[src.on]"
src.updateUsrDialog() src.updateUsrDialog()
/obj/machinery/bot/medbot/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/bot/medbot/attack_hand(mob/user as mob) /obj/machinery/bot/medbot/attack_hand(mob/user as mob)
. = ..() . = ..()
if (.) if (.)

View File

@@ -121,8 +121,7 @@
/obj/machinery/clonepod/attack_ai(mob/user as mob) /obj/machinery/clonepod/attack_ai(mob/user as mob)
src.add_hiddenprint(user) src.add_hiddenprint(user)
return attack_hand(user) return attack_hand(user)
/obj/machinery/clonepod/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/clonepod/attack_hand(mob/user as mob) /obj/machinery/clonepod/attack_hand(mob/user as mob)
if ((isnull(src.occupant)) || (stat & NOPOWER)) if ((isnull(src.occupant)) || (stat & NOPOWER))
return return

View File

@@ -43,9 +43,6 @@ var/global/list/holodeck_programs = list(
attack_ai(var/mob/user as mob) attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
attack_paw(var/mob/user as mob)
return
attack_hand(var/mob/user as mob) attack_hand(var/mob/user as mob)
if(..()) if(..())
@@ -316,15 +313,6 @@ var/global/list/holodeck_programs = list(
return return
// HOLOFLOOR DOES NOT GIVE A FUCK // HOLOFLOOR DOES NOT GIVE A FUCK
/obj/structure/table/holotable /obj/structure/table/holotable
name = "table" name = "table"
desc = "A square piece of metal standing on four metal legs. It can not move." desc = "A square piece of metal standing on four metal legs. It can not move."
@@ -335,13 +323,6 @@ var/global/list/holodeck_programs = list(
layer = 2.8 layer = 2.8
throwpass = 1 //You can throw objects over this, despite it's density. throwpass = 1 //You can throw objects over this, despite it's density.
/obj/structure/table/holotable/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/structure/table/holotable/attack_animal(mob/living/user as mob) //Removed code for larva since it doesn't work. Previous code is now a larva ability. /N
return attack_hand(user)
/obj/structure/table/holotable/attack_hand(mob/user as mob) /obj/structure/table/holotable/attack_hand(mob/user as mob)
return // HOLOTABLE DOES NOT GIVE A FUCK return // HOLOTABLE DOES NOT GIVE A FUCK
@@ -529,10 +510,6 @@ var/global/list/holodeck_programs = list(
user << "The station AI is not to interact with these devices!" user << "The station AI is not to interact with these devices!"
return return
/obj/machinery/readybutton/attack_paw(mob/user as mob)
user << "You are too primitive to use this device."
return
/obj/machinery/readybutton/New() /obj/machinery/readybutton/New()
..() ..()
@@ -541,10 +518,14 @@ var/global/list/holodeck_programs = list(
user << "The device is a solid button, there's nothing you can do with it!" user << "The device is a solid button, there's nothing you can do with it!"
/obj/machinery/readybutton/attack_hand(mob/user as mob) /obj/machinery/readybutton/attack_hand(mob/user as mob)
if(user.stat || stat & (NOPOWER|BROKEN)) if(user.stat || stat & (NOPOWER|BROKEN))
user << "This device is not powered." user << "This device is not powered."
return return
if(!user.IsAdvancedToolUser())
return 0
currentarea = get_area(src.loc) currentarea = get_area(src.loc)
if(!currentarea) if(!currentarea)
del(src) del(src)

View File

@@ -24,9 +24,6 @@
/obj/machinery/computer/aifixer/attack_ai(var/mob/user as mob) /obj/machinery/computer/aifixer/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/aifixer/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/aifixer/attack_hand(var/mob/user as mob) /obj/machinery/computer/aifixer/attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -56,9 +56,6 @@
/obj/machinery/computer/arcade/attack_ai(mob/user as mob) /obj/machinery/computer/arcade/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/computer/arcade/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/arcade/attack_hand(mob/user as mob) /obj/machinery/computer/arcade/attack_hand(mob/user as mob)
if(..()) if(..())
return return

View File

@@ -15,11 +15,6 @@
attack_ai(var/mob/user as mob) attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
attack_paw(var/mob/user as mob)
return attack_hand(user)
check_eye(var/mob/user as mob) check_eye(var/mob/user as mob)
if (user.stat || ((get_dist(user, src) > 1 || !( user.canmove ) || user.blinded) && !istype(user, /mob/living/silicon))) //user can't see - not sure why canmove is here. if (user.stat || ((get_dist(user, src) > 1 || !( user.canmove ) || user.blinded) && !istype(user, /mob/living/silicon))) //user can't see - not sure why canmove is here.
return null return null

View File

@@ -72,9 +72,6 @@
/obj/machinery/computer/card/attack_ai(var/mob/user as mob) /obj/machinery/computer/card/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/card/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/card/attack_hand(mob/user as mob) /obj/machinery/computer/card/attack_hand(mob/user as mob)
if(..()) return if(..()) return
if(stat & (NOPOWER|BROKEN)) return if(stat & (NOPOWER|BROKEN)) return

View File

@@ -69,9 +69,6 @@
..() ..()
return return
/obj/machinery/computer/cloning/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/cloning/attack_ai(mob/user as mob) /obj/machinery/computer/cloning/attack_ai(mob/user as mob)
return attack_hand(user) return attack_hand(user)

View File

@@ -276,11 +276,6 @@
/obj/machinery/computer/communications/attack_ai(var/mob/user as mob) /obj/machinery/computer/communications/attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/computer/communications/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/communications/attack_hand(var/mob/user as mob) /obj/machinery/computer/communications/attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -44,9 +44,6 @@
/obj/machinery/computer/med_data/attack_ai(user as mob) /obj/machinery/computer/med_data/attack_ai(user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/computer/med_data/attack_paw(user as mob)
return src.attack_hand(user)
/obj/machinery/computer/med_data/attack_hand(mob/user as mob) /obj/machinery/computer/med_data/attack_hand(mob/user as mob)
if(..()) if(..())
return return

View File

@@ -110,11 +110,6 @@
/obj/machinery/computer/pod/attack_ai(var/mob/user as mob) /obj/machinery/computer/pod/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/pod/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/pod/attack_hand(var/mob/user as mob) /obj/machinery/computer/pod/attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -17,11 +17,6 @@
attack_ai(var/mob/user as mob) attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
attack_paw(var/mob/user as mob)
return
attack_hand(var/mob/user as mob) attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -21,19 +21,9 @@ var/prison_shuttle_timeleft = 0
var/allowedtocall = 0 var/allowedtocall = 0
var/prison_break = 0 var/prison_break = 0
attackby(I as obj, user as mob)
return src.attack_hand(user)
attack_ai(var/mob/user as mob) attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
attack_paw(var/mob/user as mob)
return src.attack_hand(user)
attackby(I as obj, user as mob) attackby(I as obj, user as mob)
if(istype(I, /obj/item/weapon/screwdriver)) if(istype(I, /obj/item/weapon/screwdriver))
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)

View File

@@ -20,11 +20,6 @@
/obj/machinery/computer/robotics/attack_ai(var/mob/user as mob) /obj/machinery/computer/robotics/attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/computer/robotics/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
return
/obj/machinery/computer/robotics/attack_hand(var/mob/user as mob) /obj/machinery/computer/robotics/attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -50,9 +50,6 @@
/obj/machinery/computer/secure_data/attack_ai(mob/user as mob) /obj/machinery/computer/secure_data/attack_ai(mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/secure_data/attack_paw(mob/user as mob)
return attack_hand(user)
//Someone needs to break down the dat += into chunks instead of long ass lines. //Someone needs to break down the dat += into chunks instead of long ass lines.
/obj/machinery/computer/secure_data/attack_hand(mob/user as mob) /obj/machinery/computer/secure_data/attack_hand(mob/user as mob)
if(..()) if(..())

View File

@@ -33,9 +33,6 @@
/obj/machinery/computer/skills/attack_ai(mob/user as mob) /obj/machinery/computer/skills/attack_ai(mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/skills/attack_paw(mob/user as mob)
return attack_hand(user)
//Someone needs to break down the dat += into chunks instead of long ass lines. //Someone needs to break down the dat += into chunks instead of long ass lines.
/obj/machinery/computer/skills/attack_hand(mob/user as mob) /obj/machinery/computer/skills/attack_hand(mob/user as mob)
if(..()) if(..())

View File

@@ -248,9 +248,6 @@ var/specops_shuttle_timeleft = 0
/obj/machinery/computer/specops_shuttle/attack_ai(var/mob/user as mob) /obj/machinery/computer/specops_shuttle/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/specops_shuttle/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob) /obj/machinery/computer/specops_shuttle/attackby(I as obj, user as mob)
if(istype(I,/obj/item/weapon/card/emag)) if(istype(I,/obj/item/weapon/card/emag))
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals." user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."

View File

@@ -184,9 +184,6 @@ var/syndicate_elite_shuttle_timeleft = 0
/obj/machinery/computer/syndicate_elite_shuttle/attack_ai(var/mob/user as mob) /obj/machinery/computer/syndicate_elite_shuttle/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/syndicate_elite_shuttle/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob) /obj/machinery/computer/syndicate_elite_shuttle/attackby(I as obj, user as mob)
if(istype(I,/obj/item/weapon/card/emag)) if(istype(I,/obj/item/weapon/card/emag))
user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals." user << "\blue The electronic systems in this console are far too advanced for your primitive hacking peripherals."

View File

@@ -20,9 +20,6 @@ var/global/list/frozen_items = list()
circuit = "/obj/item/weapon/circuitboard/cryopodcontrol" circuit = "/obj/item/weapon/circuitboard/cryopodcontrol"
var/mode = null var/mode = null
/obj/machinery/computer/cryopod/attack_paw()
src.attack_hand()
/obj/machinery/computer/cryopod/attack_ai() /obj/machinery/computer/cryopod/attack_ai()
src.attack_hand() src.attack_hand()

View File

@@ -41,9 +41,6 @@
else else
user << "Error, no route to host." user << "Error, no route to host."
/obj/machinery/door_control/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/door_control/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/door_control/attackby(obj/item/weapon/W, mob/user as mob)
/* For later implementation /* For later implementation
if (istype(W, /obj/item/weapon/screwdriver)) if (istype(W, /obj/item/weapon/screwdriver))
@@ -155,9 +152,6 @@
/obj/machinery/driver_button/attack_ai(mob/user as mob) /obj/machinery/driver_button/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/driver_button/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob)
if(istype(W, /obj/item/device/detective_scanner)) if(istype(W, /obj/item/device/detective_scanner))

View File

@@ -606,8 +606,6 @@ About the new airlock wires panel:
s.set_up(5, 1, src) s.set_up(5, 1, src)
s.start() s.start()
return ..() return ..()
/obj/machinery/door/airlock/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/door/airlock/attack_hand(mob/user as mob) /obj/machinery/door/airlock/attack_hand(mob/user as mob)
if(!istype(usr, /mob/living/silicon)) if(!istype(usr, /mob/living/silicon))

View File

@@ -152,11 +152,6 @@
/obj/machinery/door/attack_ai(mob/user as mob) /obj/machinery/door/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/door/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/door/attack_hand(mob/user as mob) /obj/machinery/door/attack_hand(mob/user as mob)
return src.attackby(user, user) return src.attackby(user, user)

View File

@@ -29,11 +29,11 @@
/obj/machinery/embedded_controller/attack_ai(mob/user as mob) /obj/machinery/embedded_controller/attack_ai(mob/user as mob)
src.ui_interact(user) src.ui_interact(user)
/obj/machinery/embedded_controller/attack_paw(mob/user as mob)
user << "You do not have the dexterity to use this."
return
/obj/machinery/embedded_controller/attack_hand(mob/user as mob) /obj/machinery/embedded_controller/attack_hand(mob/user as mob)
if(!user.IsAdvancedToolUser())
return 0
src.ui_interact(user) src.ui_interact(user)
/obj/machinery/embedded_controller/ui_interact() /obj/machinery/embedded_controller/ui_interact()

View File

@@ -122,9 +122,6 @@
/obj/machinery/flasher_button/attack_ai(mob/user as mob) /obj/machinery/flasher_button/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/flasher_button/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/flasher_button/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/flasher_button/attackby(obj/item/weapon/W, mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)

View File

@@ -47,8 +47,6 @@
/obj/machinery/holosign_switch/attack_ai(mob/user as mob) /obj/machinery/holosign_switch/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/ /
obj/machinery/holosign_switch/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/holosign_switch/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/holosign_switch/attackby(obj/item/weapon/W, mob/user as mob)
if(istype(W, /obj/item/device/detective_scanner)) if(istype(W, /obj/item/device/detective_scanner))

View File

@@ -13,9 +13,6 @@
/obj/machinery/igniter/attack_ai(mob/user as mob) /obj/machinery/igniter/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/igniter/attack_paw(mob/user as mob)
return
/obj/machinery/igniter/attack_hand(mob/user as mob) /obj/machinery/igniter/attack_hand(mob/user as mob)
if(..()) if(..())
return return
@@ -121,9 +118,6 @@
/obj/machinery/ignition_switch/attack_ai(mob/user as mob) /obj/machinery/ignition_switch/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/ignition_switch/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/ignition_switch/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/ignition_switch/attackby(obj/item/weapon/W, mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)

View File

@@ -62,9 +62,6 @@
else else
src.overlays += image('icons/obj/kitchen.dmi', "gridle") src.overlays += image('icons/obj/kitchen.dmi', "gridle")
/obj/machinery/gibber/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/gibber/relaymove(mob/user as mob) /obj/machinery/gibber/relaymove(mob/user as mob)
src.go_out() src.go_out()
return return

View File

@@ -53,9 +53,6 @@
src.updateUsrDialog() src.updateUsrDialog()
return 0 return 0
/obj/machinery/juicer/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/juicer/attack_ai(mob/user as mob) /obj/machinery/juicer/attack_ai(mob/user as mob)
return 0 return 0

View File

@@ -138,9 +138,6 @@
return 1 return 1
src.updateUsrDialog() src.updateUsrDialog()
/obj/machinery/microwave/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/microwave/attack_ai(mob/user as mob) /obj/machinery/microwave/attack_ai(mob/user as mob)
return 0 return 0

View File

@@ -218,9 +218,6 @@
..() ..()
/obj/machinery/smartfridge/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/smartfridge/attack_ai(mob/user as mob) /obj/machinery/smartfridge/attack_ai(mob/user as mob)
return 0 return 0

View File

@@ -41,10 +41,6 @@
if(..(user, 1)) if(..(user, 1))
user << "A light switch. It is [on? "on" : "off"]." user << "A light switch. It is [on? "on" : "off"]."
/obj/machinery/light_switch/attack_paw(mob/user)
src.attack_hand(user)
/obj/machinery/light_switch/attack_hand(mob/user) /obj/machinery/light_switch/attack_hand(mob/user)
on = !on on = !on

View File

@@ -232,9 +232,6 @@ Class Procs:
else else
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/machinery/attack_hand(mob/user as mob) /obj/machinery/attack_hand(mob/user as mob)
if(inoperable(MAINT)) if(inoperable(MAINT))
return 1 return 1

View File

@@ -126,10 +126,11 @@
attack_ai(var/mob/user) attack_ai(var/mob/user)
interact(user, 1) interact(user, 1)
attack_paw()
return
attack_hand(var/mob/user) attack_hand(var/mob/user)
if(!user.IsAdvancedToolUser())
return 0
interact(user, 0) interact(user, 0)
interact(var/mob/user, var/ai = 0) interact(var/mob/user, var/ai = 0)

View File

@@ -243,8 +243,13 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/newscaster/attack_hand(mob/user as mob) //########### THE MAIN BEEF IS HERE! And in the proc below this...############ /obj/machinery/newscaster/attack_hand(mob/user as mob) //########### THE MAIN BEEF IS HERE! And in the proc below this...############
if(!src.ispowered || src.isbroken) if(!src.ispowered || src.isbroken)
return return
if(!user.IsAdvancedToolUser())
return 0
if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) ) if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) )
var/mob/living/human_or_robot_user = user var/mob/living/human_or_robot_user = user
var/dat var/dat
@@ -773,11 +778,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co
/obj/machinery/newscaster/attack_ai(mob/user as mob) /obj/machinery/newscaster/attack_ai(mob/user as mob)
return src.attack_hand(user) //or maybe it'll have some special functions? No idea. return src.attack_hand(user) //or maybe it'll have some special functions? No idea.
/obj/machinery/newscaster/attack_paw(mob/user as mob)
user << "<font color='blue'>The newscaster controls are far too complicated for your tiny brain!</font>"
return
/datum/news_photo /datum/news_photo
var/is_synth = 0 var/is_synth = 0
var/obj/item/weapon/photo/photo = null var/obj/item/weapon/photo/photo = null

View File

@@ -7,9 +7,6 @@
var/unwrenched = 0 var/unwrenched = 0
var/wait = 0 var/wait = 0
/obj/machinery/pipedispenser/attack_paw(user as mob)
return src.attack_hand(user)
/obj/machinery/pipedispenser/attack_hand(user as mob) /obj/machinery/pipedispenser/attack_hand(user as mob)
if(..()) if(..())
return return

View File

@@ -65,9 +65,6 @@ obj/machinery/recharger/attack_hand(mob/user as mob)
charging = null charging = null
update_icon() update_icon()
obj/machinery/recharger/attack_paw(mob/user as mob)
return attack_hand(user)
obj/machinery/recharger/process() obj/machinery/recharger/process()
if(stat & (NOPOWER|BROKEN) || !anchored) if(stat & (NOPOWER|BROKEN) || !anchored)
update_use_power(0) update_use_power(0)

View File

@@ -32,9 +32,6 @@
else else
user << "The robot part maker is full. Please remove metal from the robot part maker in order to insert more." user << "The robot part maker is full. Please remove metal from the robot part maker in order to insert more."
/obj/machinery/robotic_fabricator/attack_paw(user as mob)
return src.attack_hand(user)
/obj/machinery/robotic_fabricator/attack_hand(user as mob) /obj/machinery/robotic_fabricator/attack_hand(user as mob)
var/dat var/dat
if (..()) if (..())

View File

@@ -94,6 +94,8 @@
return return
if(stat & NOPOWER) if(stat & NOPOWER)
return return
if(!user.IsAdvancedToolUser())
return 0
if(src.panelopen) //The maintenance panel is open. Time for some shady stuff if(src.panelopen) //The maintenance panel is open. Time for some shady stuff
dat+= "<HEAD><TITLE>Suit storage unit: Maintenance panel</TITLE></HEAD>" dat+= "<HEAD><TITLE>Suit storage unit: Maintenance panel</TITLE></HEAD>"
dat+= "<Font color ='black'><B>Maintenance panel controls</B></font><HR>" dat+= "<Font color ='black'><B>Maintenance panel controls</B></font><HR>"
@@ -559,12 +561,6 @@
/obj/machinery/suit_storage_unit/attack_ai(mob/user as mob) /obj/machinery/suit_storage_unit/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/suit_storage_unit/attack_paw(mob/user as mob)
user << "<font color='blue'>The console controls are far too complicated for your tiny brain!</font>"
return
//////////////////////////////REMINDER: Make it lock once you place some fucker inside. //////////////////////////////REMINDER: Make it lock once you place some fucker inside.
//God this entire file is fucking awful //God this entire file is fucking awful
@@ -657,10 +653,6 @@
/obj/machinery/suit_cycler/attack_ai(mob/user as mob) /obj/machinery/suit_cycler/attack_ai(mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/suit_cycler/attack_paw(mob/user as mob)
user << "\blue The console controls are far too complicated for your tiny brain!"
return
/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob) /obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob)
if(electrified != 0) if(electrified != 0)
@@ -786,6 +778,9 @@
if(..() || stat & (BROKEN|NOPOWER)) if(..() || stat & (BROKEN|NOPOWER))
return return
if(!user.IsAdvancedToolUser())
return 0
if(electrified != 0) if(electrified != 0)
if(src.shock(user, 100)) if(src.shock(user, 100))
return return

View File

@@ -77,9 +77,6 @@
return return
/obj/machinery/computer/teleporter/attack_paw()
src.attack_hand()
/obj/machinery/teleport/station/attack_ai() /obj/machinery/teleport/station/attack_ai()
src.attack_hand() src.attack_hand()
@@ -311,9 +308,6 @@
/obj/machinery/teleport/station/attackby(var/obj/item/weapon/W) /obj/machinery/teleport/station/attackby(var/obj/item/weapon/W)
src.attack_hand() src.attack_hand()
/obj/machinery/teleport/station/attack_paw()
src.attack_hand()
/obj/machinery/teleport/station/attack_ai() /obj/machinery/teleport/station/attack_ai()
src.attack_hand() src.attack_hand()

View File

@@ -338,18 +338,18 @@
spawn(13) spawn(13)
del(src) del(src)
/obj/machinery/turret/attack_animal(mob/living/M as mob) /obj/machinery/turret/attack_generic(var/mob/user, var/damage, var/attack_message)
if(M.melee_damage_upper == 0) return if(!damage)
if(!(stat & BROKEN)) return 0
visible_message("\red <B>[M] [M.attacktext] [src]!</B>") if(stat & BROKEN)
M.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>") user << "That object is useless to you."
//src.attack_log += text("\[[time_stamp()]\] <font color='orange'>was attacked by [M.name] ([M.ckey])</font>") return 0
src.health -= M.melee_damage_upper visible_message("<span class='danger'>[user] [attack_message] the [src]!</span>")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
src.health -= damage
if (src.health <= 0) if (src.health <= 0)
src.die() src.die()
else return 1
M << "\red That object is useless to you."
return
/obj/structure/turret/gun_turret /obj/structure/turret/gun_turret
name = "Gun Turret" name = "Gun Turret"

View File

@@ -274,10 +274,6 @@
else else
usr << "\icon[src]<span class='warning'>Error: Unable to access your account. Please contact technical support if problem persists.</span>" usr << "\icon[src]<span class='warning'>Error: Unable to access your account. Please contact technical support if problem persists.</span>"
/obj/machinery/vending/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/vending/attack_ai(mob/user as mob) /obj/machinery/vending/attack_ai(mob/user as mob)
return attack_hand(user) return attack_hand(user)

View File

@@ -444,28 +444,6 @@
src.log_append_to_last("Armor saved.") src.log_append_to_last("Armor saved.")
return return
/obj/mecha/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/mecha/attack_animal(mob/living/user as mob)
src.log_message("Attack by simple animal. Attacker - [user].",1)
if(user.melee_damage_upper == 0)
user.emote("[user.friendly] [src]")
else
if(!prob(src.deflect_chance))
var/damage = rand(user.melee_damage_lower, user.melee_damage_upper)
src.take_damage(damage)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
visible_message("\red <B>[user]</B> [user.attacktext] [src]!")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
else
src.log_append_to_last("Armor saved.")
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1)
src.occupant_message("\blue The [user]'s attack is stopped by the armor.")
visible_message("\blue The [user] rebounds off [src.name]'s armor!")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
return
/obj/mecha/hitby(atom/movable/A as mob|obj) //wrapper /obj/mecha/hitby(atom/movable/A as mob|obj) //wrapper
..() ..()
src.log_message("Hit by [A].",1) src.log_message("Hit by [A].",1)
@@ -1725,6 +1703,27 @@
icon_state = initial(icon_state) icon_state = initial(icon_state)
return icon_state return icon_state
/obj/mecha/attack_generic(var/mob/user, var/damage, var/attack_message)
if(!damage)
return 0
src.log_message("Attack by an animal. Attacker - [user].",1)
if(!prob(src.deflect_chance))
src.take_damage(damage)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
visible_message("\red <B>[user]</B> [attack_message] [src]!")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
else
src.log_append_to_last("Armor saved.")
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1, -1)
src.occupant_message("\blue The [user]'s attack is stopped by the armor.")
visible_message("\blue The [user] rebounds off [src.name]'s armor!")
user.attack_log += text("\[[time_stamp()]\] <font color='red'>attacked [src.name]</font>")
return 1
////////////////////////////////////////// //////////////////////////////////////////
//////// Mecha global iterators //////// //////// Mecha global iterators ////////
////////////////////////////////////////// //////////////////////////////////////////

View File

@@ -11,9 +11,6 @@
attack_ai(var/mob/user as mob) attack_ai(var/mob/user as mob)
return src.attack_hand(user) return src.attack_hand(user)
attack_paw(var/mob/user as mob)
return src.attack_hand(user)
attack_hand(var/mob/user as mob) attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -127,9 +127,6 @@
healthcheck() healthcheck()
return return
/obj/effect/alien/resin/attack_paw()
return attack_hand()
/obj/effect/alien/resin/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/effect/alien/resin/attackby(obj/item/weapon/W as obj, mob/user as mob)
var/aforce = W.force var/aforce = W.force

View File

@@ -653,10 +653,6 @@ steam.start() -- spawns the effect
if(metal==1 || prob(50)) if(metal==1 || prob(50))
del(src) del(src)
attack_paw(var/mob/user)
attack_hand(user)
return
attack_hand(var/mob/user) attack_hand(var/mob/user)
if ((HULK in user.mutations) || (prob(75 - metal*25))) if ((HULK in user.mutations) || (prob(75 - metal*25)))
user << "\blue You smash through the metal foam wall." user << "\blue You smash through the metal foam wall."

View File

@@ -152,30 +152,6 @@
user.put_in_active_hand(src) user.put_in_active_hand(src)
return return
/obj/item/attack_paw(mob/user as mob)
if (istype(src.loc, /obj/item/weapon/storage))
for(var/mob/M in range(1, src.loc))
if (M.s_active == src.loc)
if (M.client)
M.client.screen -= src
src.throwing = 0
if (src.loc == user)
//canremove==0 means that object may not be removed. You can still wear it. This only applies to clothing. /N
if(istype(src, /obj/item/clothing) && !src:canremove)
return
else
user.u_equip(src)
else
if(istype(src.loc, /mob/living))
return
src.pickup(user)
user.next_move = max(user.next_move+2,world.time + 2)
user.put_in_active_hand(src)
return
// Due to storage type consolidation this should get used more now. // Due to storage type consolidation this should get used more now.
// I have cleaned it up a little, but it could probably use more. -Sayu // I have cleaned it up a little, but it could probably use more. -Sayu
/obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob) /obj/item/attackby(obj/item/weapon/W as obj, mob/user as mob)

View File

@@ -58,11 +58,6 @@
else else
..() ..()
attack_paw()
return
attack_ai() attack_ai()
return return

View File

@@ -24,10 +24,6 @@
spawn (0) spawn (0)
attack_self(user) attack_self(user)
/obj/item/device/radio/intercom/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/item/device/radio/intercom/attack_hand(mob/user as mob) /obj/item/device/radio/intercom/attack_hand(mob/user as mob)
src.add_fingerprint(user) src.add_fingerprint(user)
spawn (0) spawn (0)

View File

@@ -64,7 +64,6 @@
if(!user || !src) return 0 if(!user || !src) return 0
if(!istype(user.loc,/turf)) return 0 if(!istype(user.loc,/turf)) return 0
if(!user.IsAdvancedToolUser()) if(!user.IsAdvancedToolUser())
user << "\red You don't have the dexterity to do this!"
return 0 return 0
var/title = "Sheet-Glass" var/title = "Sheet-Glass"
title += " ([src.amount] sheet\s left)" title += " ([src.amount] sheet\s left)"
@@ -145,7 +144,6 @@
if(!user || !src) return 0 if(!user || !src) return 0
if(!istype(user.loc,/turf)) return 0 if(!istype(user.loc,/turf)) return 0
if(!user.IsAdvancedToolUser()) if(!user.IsAdvancedToolUser())
user << "\red You don't have the dexterity to do this!"
return 0 return 0
var/title = "Sheet Reinf. Glass" var/title = "Sheet Reinf. Glass"
title += " ([src.amount] sheet\s left)" title += " ([src.amount] sheet\s left)"

View File

@@ -28,9 +28,6 @@
SetValue(src.value) SetValue(src.value)
//testing("[name]: DNA2 SE blocks after SetValue: [english_list(buf.dna.SE)]") //testing("[name]: DNA2 SE blocks after SetValue: [english_list(buf.dna.SE)]")
/obj/item/weapon/dnainjector/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/item/weapon/dnainjector/proc/GetRealBlock(var/selblock) /obj/item/weapon/dnainjector/proc/GetRealBlock(var/selblock)
if(selblock==0) if(selblock==0)
return block return block

View File

@@ -109,6 +109,3 @@
walk(src, null, null) walk(src, null, null)
..() ..()
return return
/obj/item/weapon/grenade/attack_paw(mob/user as mob)
return attack_hand(user)

View File

@@ -31,9 +31,6 @@
if(..(user, 1)) if(..(user, 1))
user << text("The service panel is [src.open ? "open" : "closed"].") user << text("The service panel is [src.open ? "open" : "closed"].")
attack_paw(mob/user as mob)
return attack_hand(user)
attackby(obj/item/weapon/W as obj, mob/user as mob) attackby(obj/item/weapon/W as obj, mob/user as mob)
if(locked) if(locked)
if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged)) if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged))

View File

@@ -1,5 +1,6 @@
/obj/structure /obj/structure
icon = 'icons/obj/structures.dmi' icon = 'icons/obj/structures.dmi'
var/climbable var/climbable
var/breakable var/breakable
var/parts var/parts
@@ -14,22 +15,12 @@
if(breakable) if(breakable)
if(HULK in user.mutations) if(HULK in user.mutations)
user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
visible_message("<span class='danger'>[user] smashes the [src] apart!</span>") attack_generic(user,1,"smashes")
destroy()
else if(istype(user,/mob/living/carbon/human)) else if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
if(H.species.can_shred(user)) if(H.species.can_shred(user))
visible_message("<span class='danger'>[H] slices [src] apart!</span>") attack_generic(user,1,"slices")
destroy() return
/obj/structure/attack_animal(mob/living/user)
if(breakable)
if(user.wall_smash)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
destroy()
/obj/structure/attack_paw(mob/user)
if(breakable) attack_hand(user)
/obj/structure/blob_act() /obj/structure/blob_act()
if(prob(50)) if(prob(50))
@@ -176,3 +167,10 @@
user << "<span class='notice'>You need hands for this.</span>" user << "<span class='notice'>You need hands for this.</span>"
return 0 return 0
return 1 return 1
/obj/structure/attack_generic(var/mob/user, var/damage, var/attack_verb, var/wallbreaker)
if(!breakable || !damage || !wallbreaker)
return 0
visible_message("<span class='danger'>[user] [attack_verb] the [src] apart!</span>")
spawn(1) destroy()
return 1

View File

@@ -138,12 +138,6 @@ LINEN BINS
hidden = I hidden = I
user << "<span class='notice'>You hide [I] among the sheets.</span>" user << "<span class='notice'>You hide [I] among the sheets.</span>"
/obj/structure/bedsheetbin/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/structure/bedsheetbin/attack_hand(mob/user as mob) /obj/structure/bedsheetbin/attack_hand(mob/user as mob)
if(amount >= 1) if(amount >= 1)
amount-- amount--

View File

@@ -174,13 +174,6 @@
return return
/obj/structure/closet/attack_animal(mob/living/user as mob)
if(user.wall_smash)
visible_message("\red [user] destroys the [src]. ")
for(var/atom/movable/A as mob|obj in src)
A.loc = src.loc
del(src)
// this should probably use dump_contents() // this should probably use dump_contents()
/obj/structure/closet/blob_act() /obj/structure/closet/blob_act()
if(prob(75)) if(prob(75))
@@ -267,10 +260,6 @@
spawn(30) spawn(30)
lastbang = 0 lastbang = 0
/obj/structure/closet/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/closet/attack_hand(mob/user as mob) /obj/structure/closet/attack_hand(mob/user as mob)
src.add_fingerprint(user) src.add_fingerprint(user)
src.toggle(user) src.toggle(user)
@@ -309,3 +298,11 @@
if(istype(A,/obj/)) if(istype(A,/obj/))
var/obj/O = A var/obj/O = A
O.hear_talk(M, text) O.hear_talk(M, text)
/obj/structure/closet/attack_generic(var/mob/user, var/damage, var/attack_message = "destroys", var/wallbreaker)
if(!damage || !wallbreaker)
return
visible_message("<span class='danger'>[user] [attack_message] the [src]!</span>")
dump_contents()
spawn(1) del(src)
return 1

View File

@@ -181,10 +181,6 @@
usr << "\blue The [src.name] is closed." usr << "\blue The [src.name] is closed."
update_icon() update_icon()
attack_paw(mob/user as mob)
attack_hand(user)
return
attack_ai(mob/user as mob) attack_ai(mob/user as mob)
if(src.smashed) if(src.smashed)
user << "\red The security of the cabinet is compromised." user << "\red The security of the cabinet is compromised."

View File

@@ -104,9 +104,6 @@
else else
src.toggle(user) src.toggle(user)
/obj/structure/closet/secure_closet/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/closet/secure_closet/verb/verb_togglelock() /obj/structure/closet/secure_closet/verb/verb_togglelock()
set src in oview(1) // One square distance set src in oview(1) // One square distance
set category = "Object" set category = "Object"

View File

@@ -76,9 +76,6 @@
..() ..()
return return
/obj/structure/displaycase/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/displaycase/attack_hand(mob/user as mob) /obj/structure/displaycase/attack_hand(mob/user as mob)
if (src.destroyed && src.occupied) if (src.destroyed && src.occupied)
new /obj/item/weapon/gun/energy/laser/captain( src.loc ) new /obj/item/weapon/gun/energy/laser/captain( src.loc )

View File

@@ -54,11 +54,6 @@
opened = !opened opened = !opened
update_icon() update_icon()
/obj/structure/extinguisher_cabinet/attack_paw(mob/user)
attack_hand(user)
return
/obj/structure/extinguisher_cabinet/update_icon() /obj/structure/extinguisher_cabinet/update_icon()
if(!opened) if(!opened)
icon_state = "extinguisher_closed" icon_state = "extinguisher_closed"

View File

@@ -6,8 +6,14 @@
var/state = 0 var/state = 0
var/health = 200 var/health = 200
/obj/structure/girder/attack_generic(var/mob/user, var/damage, var/attack_message = "smashes apart", var/wallbreaker)
if(!damage || !wallbreaker)
return 0
visible_message("<span class='danger'>[user] [attack_message] the [src]!</span>")
spawn(1) dismantle()
return 1
bullet_act(var/obj/item/projectile/Proj) /obj/structure/girder/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj, /obj/item/projectile/beam)) if(istype(Proj, /obj/item/projectile/beam))
health -= Proj.damage health -= Proj.damage
..() ..()
@@ -17,7 +23,7 @@
return return
attackby(obj/item/W as obj, mob/user as mob) /obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench) && state == 0) if(istype(W, /obj/item/weapon/wrench) && state == 0)
if(anchored && !istype(src,/obj/structure/girder/displaced)) if(anchored && !istype(src,/obj/structure/girder/displaced))
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
@@ -158,30 +164,23 @@
else else
..() ..()
proc/dismantle() /obj/structure/girder/proc/dismantle()
new /obj/item/stack/sheet/metal(get_turf(src)) new /obj/item/stack/sheet/metal(get_turf(src))
del(src) del(src)
attack_hand(mob/user as mob) /obj/structure/girder/attack_hand(mob/user as mob)
if (HULK in user.mutations) if (HULK in user.mutations)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>") visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
dismantle() dismantle()
return return
return ..() return ..()
attack_animal(mob/living/simple_animal/user) /obj/structure/girder/blob_act()
if(user.wall_smash)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")
dismantle()
return
return ..()
blob_act()
if(prob(40)) if(prob(40))
del(src) del(src)
ex_act(severity) /obj/structure/girder/ex_act(severity)
switch(severity) switch(severity)
if(1.0) if(1.0)
del(src) del(src)
@@ -219,7 +218,7 @@
layer = 2 layer = 2
var/health = 250 var/health = 250
attackby(obj/item/W as obj, mob/user as mob) /obj/structure/cultgirder/attackby(obj/item/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/wrench)) if(istype(W, /obj/item/weapon/wrench))
playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1)
user << "\blue Now disassembling the girder" user << "\blue Now disassembling the girder"
@@ -240,11 +239,11 @@
new /obj/effect/decal/remains/human(get_turf(src)) new /obj/effect/decal/remains/human(get_turf(src))
del(src) del(src)
blob_act() /obj/structure/cultgirder/blob_act()
if(prob(40)) if(prob(40))
del(src) del(src)
bullet_act(var/obj/item/projectile/Proj) //No beam check- How else will you destroy the cult girder with silver bullets????? /obj/structure/cultgirder/bullet_act(var/obj/item/projectile/Proj) //No beam check- How else will you destroy the cult girder with silver bullets?????
health -= Proj.damage health -= Proj.damage
..() ..()
if(health <= 0) if(health <= 0)
@@ -253,7 +252,7 @@
return return
ex_act(severity) /obj/structure/cultgirder/ex_act(severity)
switch(severity) switch(severity)
if(1.0) if(1.0)
del(src) del(src)

View File

@@ -26,27 +26,17 @@
/obj/structure/grille/Bumped(atom/user) /obj/structure/grille/Bumped(atom/user)
if(ismob(user)) shock(user, 70) if(ismob(user)) shock(user, 70)
/obj/structure/grille/attack_paw(mob/user as mob)
attack_hand(user)
/obj/structure/grille/attack_hand(mob/user as mob) /obj/structure/grille/attack_hand(mob/user as mob)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
var/damage_dealt var/damage_dealt = 1
var/attack_message = "kicks"
if(istype(user,/mob/living/carbon/human)) if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
if(H.species.can_shred(H)) if(H.species.can_shred(H))
attack_message = "mangles"
damage_dealt = 5 damage_dealt = 5
user.visible_message("<span class='warning'>[user] mangles [src].</span>", \
"<span class='warning'>You mangle [src].</span>", \
"You hear twisting metal.")
if(!damage_dealt)
user.visible_message("<span class='warning'>[user] kicks [src].</span>", \
"<span class='warning'>You kick [src].</span>", \
"You hear twisting metal.")
if(shock(user, 70)) if(shock(user, 70))
return return
@@ -56,35 +46,7 @@
else else
damage_dealt += 1 damage_dealt += 1
health -= damage_dealt attack_generic(user,damage_dealt,attack_message)
healthcheck()
/obj/structure/grille/attack_slime(mob/user as mob)
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] smashes against [src].</span>", \
"<span class='warning'>You smash against [src].</span>", \
"You hear twisting metal.")
health -= rand(2,3)
healthcheck()
return
/obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0) return
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
M.visible_message("<span class='warning'>[M] smashes against [src].</span>", \
"<span class='warning'>You smash against [src].</span>", \
"You hear twisting metal.")
health -= M.melee_damage_upper
healthcheck()
return
/obj/structure/grille/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) /obj/structure/grille/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1 if(air_group || (height==0)) return 1
@@ -226,3 +188,9 @@
health -= 1 health -= 1
healthcheck() healthcheck()
..() ..()
/obj/structure/grille/attack_generic(var/mob/user, var/damage, var/attack_verb)
visible_message("<span class='danger'>[user] [attack_verb] the [src]!</span>")
health -= damage
spawn(1) healthcheck()
return 1

View File

@@ -26,34 +26,31 @@
var/health = 50.0 var/health = 50.0
New(location) /obj/structure/inflatable/New(location)
..() ..()
update_nearby_tiles(need_rebuild=1) update_nearby_tiles(need_rebuild=1)
Del() /obj/structure/inflatable/Del()
update_nearby_tiles() update_nearby_tiles()
..() ..()
proc/update_nearby_tiles(need_rebuild) //Copypasta from airlock code /obj/structure/inflatable/proc/update_nearby_tiles(need_rebuild) //Copypasta from airlock code
if(!air_master) if(!air_master)
return 0 return 0
air_master.mark_for_update(get_turf(src)) air_master.mark_for_update(get_turf(src))
return 1 return 1
/obj/structure/inflatable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
return 0 return 0
bullet_act(var/obj/item/projectile/Proj) /obj/structure/inflatable/bullet_act(var/obj/item/projectile/Proj)
health -= Proj.damage health -= Proj.damage
..() ..()
if(health <= 0) if(health <= 0)
deflate(1) deflate(1)
return return
/obj/structure/inflatable/ex_act(severity)
ex_act(severity)
switch(severity) switch(severity)
if(1.0) if(1.0)
del(src) del(src)
@@ -66,46 +63,17 @@
deflate(1) deflate(1)
return return
/obj/structure/inflatable/blob_act()
blob_act()
deflate(1) deflate(1)
/obj/structure/inflatable/meteorhit()
meteorhit()
//world << "glass at [x],[y],[z] Mhit"
deflate(1) deflate(1)
attack_paw(mob/user as mob) /obj/structure/inflatable/attack_hand(mob/user as mob)
return attack_generic(user, 15)
attack_hand(mob/user as mob)
add_fingerprint(user) add_fingerprint(user)
return return
/obj/structure/inflatable/attackby(obj/item/weapon/W as obj, mob/user as mob)
proc/attack_generic(mob/user as mob, damage = 0) //used by attack_animal and attack_slime
health -= damage
if(health <= 0)
user.visible_message("<span class='danger'>[user] tears open [src]!</span>")
deflate(1)
else //for nicer text~
user.visible_message("<span class='danger'>[user] tears at [src]!</span>")
attack_animal(mob/user as mob)
if(!isanimal(user)) return
var/mob/living/simple_animal/M = user
if(M.melee_damage_upper <= 0) return
attack_generic(M, M.melee_damage_upper)
attack_slime(mob/user as mob)
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
attack_generic(user, rand(10, 15))
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(!istype(W)) return if(!istype(W)) return
if (can_puncture(W)) if (can_puncture(W))
@@ -116,15 +84,14 @@
..() ..()
return return
proc/hit(var/damage, var/sound_effect = 1) /obj/structure/inflatable/proc/hit(var/damage, var/sound_effect = 1)
health = max(0, health - damage) health = max(0, health - damage)
if(sound_effect) if(sound_effect)
playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1) playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1)
if(health <= 0) if(health <= 0)
deflate(1) deflate(1)
/obj/structure/inflatable/proc/deflate(var/violent=0)
proc/deflate(var/violent=0)
playsound(loc, 'sound/machines/hiss.ogg', 75, 1) playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
if(violent) if(violent)
visible_message("[src] rapidly deflates!") visible_message("[src] rapidly deflates!")
@@ -139,7 +106,7 @@
src.transfer_fingerprints_to(R) src.transfer_fingerprints_to(R)
del(src) del(src)
verb/hand_deflate() /obj/structure/inflatable/verb/hand_deflate()
set name = "Deflate" set name = "Deflate"
set category = "Object" set category = "Object"
set src in oview(1) set src in oview(1)
@@ -149,6 +116,15 @@
deflate() deflate()
/obj/structure/inflatable/attack_generic(var/mob/user, var/damage, var/attack_verb)
health -= damage
if(health <= 0)
user.visible_message("<span class='danger'>[user] [attack_verb] open the [src]!</span>")
spawn(1) deflate(1)
else
user.visible_message("<span class='danger'>[user] [attack_verb] at [src]!</span>")
return 1
/obj/item/inflatable/door/ /obj/item/inflatable/door/
name = "inflatable door" name = "inflatable door"
desc = "A folded membrane which rapidly expands into a simple door on activation." desc = "A folded membrane which rapidly expands into a simple door on activation."
@@ -175,33 +151,24 @@
var/state = 0 //closed, 1 == open var/state = 0 //closed, 1 == open
var/isSwitchingStates = 0 var/isSwitchingStates = 0
//Bumped(atom/user) /obj/structure/inflatable/door/attack_ai(mob/user as mob) //those aren't machinery, they're just big fucking slabs of a mineral
// ..()
// if(!state)
// return TryToSwitchState(user)
// return
attack_ai(mob/user as mob) //those aren't machinery, they're just big fucking slabs of a mineral
if(isAI(user)) //so the AI can't open it if(isAI(user)) //so the AI can't open it
return return
else if(isrobot(user)) //but cyborgs can else if(isrobot(user)) //but cyborgs can
if(get_dist(user,src) <= 1) //not remotely though if(get_dist(user,src) <= 1) //not remotely though
return TryToSwitchState(user) return TryToSwitchState(user)
attack_paw(mob/user as mob) /obj/structure/inflatable/door/attack_hand(mob/user as mob)
return TryToSwitchState(user) return TryToSwitchState(user)
attack_hand(mob/user as mob) /obj/structure/inflatable/door/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
return TryToSwitchState(user)
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group) if(air_group)
return state return state
if(istype(mover, /obj/effect/beam)) if(istype(mover, /obj/effect/beam))
return !opacity return !opacity
return !density return !density
proc/TryToSwitchState(atom/user) /obj/structure/inflatable/door/proc/TryToSwitchState(atom/user)
if(isSwitchingStates) return if(isSwitchingStates) return
if(ismob(user)) if(ismob(user))
var/mob/M = user var/mob/M = user
@@ -216,16 +183,15 @@
else if(istype(user, /obj/mecha)) else if(istype(user, /obj/mecha))
SwitchState() SwitchState()
proc/SwitchState() /obj/structure/inflatable/door/proc/SwitchState()
if(state) if(state)
Close() Close()
else else
Open() Open()
update_nearby_tiles() update_nearby_tiles()
proc/Open() /obj/structure/inflatable/door/proc/Open()
isSwitchingStates = 1 isSwitchingStates = 1
//playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 100, 1)
flick("door_opening",src) flick("door_opening",src)
sleep(10) sleep(10)
density = 0 density = 0
@@ -234,9 +200,8 @@
update_icon() update_icon()
isSwitchingStates = 0 isSwitchingStates = 0
proc/Close() /obj/structure/inflatable/door/proc/Close()
isSwitchingStates = 1 isSwitchingStates = 1
//playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 100, 1)
flick("door_closing",src) flick("door_closing",src)
sleep(10) sleep(10)
density = 1 density = 1
@@ -245,13 +210,13 @@
update_icon() update_icon()
isSwitchingStates = 0 isSwitchingStates = 0
update_icon() /obj/structure/inflatable/door/update_icon()
if(state) if(state)
icon_state = "door_open" icon_state = "door_open"
else else
icon_state = "door_closed" icon_state = "door_closed"
deflate(var/violent=0) /obj/structure/inflatable/door/deflate(var/violent=0)
playsound(loc, 'sound/machines/hiss.ogg', 75, 1) playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
if(violent) if(violent)
visible_message("[src] rapidly deflates!") visible_message("[src] rapidly deflates!")
@@ -259,14 +224,12 @@
src.transfer_fingerprints_to(R) src.transfer_fingerprints_to(R)
del(src) del(src)
else else
//user << "\blue You slowly deflate the inflatable wall."
visible_message("[src] slowly deflates.") visible_message("[src] slowly deflates.")
spawn(50) spawn(50)
var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc) var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc)
src.transfer_fingerprints_to(R) src.transfer_fingerprints_to(R)
del(src) del(src)
/obj/item/inflatable/torn /obj/item/inflatable/torn
name = "torn inflatable wall" name = "torn inflatable wall"
desc = "A folded membrane which rapidly expands into a large cubical shape on activation. It is too torn to be usable." desc = "A folded membrane which rapidly expands into a large cubical shape on activation. It is too torn to be usable."

View File

@@ -12,8 +12,6 @@
var/meattype = 0 // 0 - Nothing, 1 - Monkey, 2 - Xeno var/meattype = 0 // 0 - Nothing, 1 - Monkey, 2 - Xeno
/obj/structure/kitchenspike /obj/structure/kitchenspike
attack_paw(mob/user as mob)
return src.attack_hand(usr)
attackby(obj/item/weapon/grab/G as obj, mob/user as mob) attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
if(!istype(G, /obj/item/weapon/grab)) if(!istype(G, /obj/item/weapon/grab))

View File

@@ -66,8 +66,5 @@
add_fingerprint(user) add_fingerprint(user)
/obj/structure/ladder/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/structure/ladder/attackby(obj/item/weapon/W, mob/user as mob) /obj/structure/ladder/attackby(obj/item/weapon/W, mob/user as mob)
return attack_hand(user) return attack_hand(user)

View File

@@ -72,9 +72,6 @@
..() ..()
return return
/obj/structure/lamarr/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/lamarr/attack_hand(mob/user as mob) /obj/structure/lamarr/attack_hand(mob/user as mob)
if (src.destroyed) if (src.destroyed)
return return

View File

@@ -39,9 +39,6 @@
if(get_dist(user,src) <= 1) //not remotely though if(get_dist(user,src) <= 1) //not remotely though
return TryToSwitchState(user) return TryToSwitchState(user)
attack_paw(mob/user as mob)
return TryToSwitchState(user)
attack_hand(mob/user as mob) attack_hand(mob/user as mob)
return TryToSwitchState(user) return TryToSwitchState(user)

View File

@@ -8,7 +8,6 @@
anchored = 1 anchored = 1
var/shattered = 0 var/shattered = 0
/obj/structure/mirror/attack_hand(mob/user as mob) /obj/structure/mirror/attack_hand(mob/user as mob)
if(shattered) return if(shattered) return
@@ -17,14 +16,10 @@
var/mob/living/carbon/human/H = user var/mob/living/carbon/human/H = user
if(H.a_intent == "hurt") if(H.a_intent == "hurt")
if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
if(prob(30) || H.species.can_shred(H)) if(prob(30) || H.species.can_shred(H))
user.visible_message("<span class='danger'>[user] smashes [src]!</span>") attack_generic(user,1)
shatter()
else else
user.visible_message("<span class='danger'>[user] hits [src] and bounces off!</span>") attack_generic(user)
return return
var/userloc = H.loc var/userloc = H.loc
@@ -82,7 +77,6 @@
playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
..() ..()
/obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob) /obj/structure/mirror/attackby(obj/item/I as obj, mob/user as mob)
if(shattered) if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
@@ -95,23 +89,15 @@
visible_message("<span class='warning'>[user] hits [src] with [I]!</span>") visible_message("<span class='warning'>[user] hits [src] with [I]!</span>")
playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1) playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1)
/obj/structure/mirror/attack_animal(mob/user as mob) /obj/structure/mirror/attack_generic(var/mob/user, var/damage)
if(!isanimal(user)) return
var/mob/living/simple_animal/M = user
if(M.melee_damage_upper <= 0) return
if(shattered) if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return return 0
user.visible_message("<span class='danger'>[user] smashes [src]!</span>")
shatter()
if(damage)
/obj/structure/mirror/attack_slime(mob/user as mob) user.visible_message("<span class='danger'>[user] smashes [src]!")
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
if(shattered)
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
return
user.visible_message("<span class='danger'>[user] smashes [src]!</span>")
shatter() shatter()
else
user.visible_message("<span class='danger'>[user] hits [src] and bounces off!</span>")
return 1

View File

@@ -57,9 +57,6 @@
/obj/structure/morgue/alter_health() /obj/structure/morgue/alter_health()
return src.loc return src.loc
/obj/structure/morgue/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/morgue/attack_hand(mob/user as mob) /obj/structure/morgue/attack_hand(mob/user as mob)
if (src.connected) if (src.connected)
for(var/atom/movable/A as mob|obj in src.connected.loc) for(var/atom/movable/A as mob|obj in src.connected.loc)
@@ -137,9 +134,6 @@
anchored = 1 anchored = 1
throwpass = 1 throwpass = 1
/obj/structure/m_tray/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/m_tray/attack_hand(mob/user as mob) /obj/structure/m_tray/attack_hand(mob/user as mob)
if (src.connected) if (src.connected)
for(var/atom/movable/A as mob|obj in src.loc) for(var/atom/movable/A as mob|obj in src.loc)
@@ -222,9 +216,6 @@
/obj/structure/crematorium/alter_health() /obj/structure/crematorium/alter_health()
return src.loc return src.loc
/obj/structure/crematorium/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/crematorium/attack_hand(mob/user as mob) /obj/structure/crematorium/attack_hand(mob/user as mob)
// if (cremating) AWW MAN! THIS WOULD BE SO MUCH MORE FUN ... TO WATCH // if (cremating) AWW MAN! THIS WOULD BE SO MUCH MORE FUN ... TO WATCH
// user.show_message("\red Uh-oh, that was a bad idea.", 1) // user.show_message("\red Uh-oh, that was a bad idea.", 1)
@@ -353,9 +344,6 @@
anchored = 1 anchored = 1
throwpass = 1 throwpass = 1
/obj/structure/c_tray/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/c_tray/attack_hand(mob/user as mob) /obj/structure/c_tray/attack_hand(mob/user as mob)
if (src.connected) if (src.connected)
for(var/atom/movable/A as mob|obj in src.loc) for(var/atom/movable/A as mob|obj in src.loc)

View File

@@ -29,9 +29,6 @@
..() ..()
return return
/obj/structure/stool/bed/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/structure/stool/bed/attack_hand(mob/user as mob) /obj/structure/stool/bed/attack_hand(mob/user as mob)
manual_unbuckle(user) manual_unbuckle(user)
return return

View File

@@ -150,28 +150,12 @@
"You hear a knocking sound.") "You hear a knocking sound.")
return return
/obj/structure/window/attack_generic(var/mob/user, var/damage)
/obj/structure/window/attack_paw(mob/user as mob) if(!damage)
return attack_hand(user) return
/obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_animal and attack_slime
user.visible_message("<span class='danger'>[user] smashes into [src]!</span>") user.visible_message("<span class='danger'>[user] smashes into [src]!</span>")
take_damage(damage) take_damage(damage)
return 1
/obj/structure/window/attack_animal(mob/user as mob)
if(!isanimal(user)) return
var/mob/living/simple_animal/M = user
if(M.melee_damage_upper <= 0) return
attack_generic(M, M.melee_damage_upper)
/obj/structure/window/attack_slime(mob/user as mob)
var/mob/living/carbon/slime/S = user
if (!S.is_adult)
return
attack_generic(user, rand(10, 15))
/obj/structure/window/attackby(obj/item/W as obj, mob/user as mob) /obj/structure/window/attackby(obj/item/W as obj, mob/user as mob)
if(!istype(W)) return//I really wish I did not need this if(!istype(W)) return//I really wish I did not need this

View File

@@ -294,19 +294,12 @@ var/list/mechtoys = list(
/obj/item/weapon/paper/manifest /obj/item/weapon/paper/manifest
name = "Supply Manifest" name = "Supply Manifest"
/obj/machinery/computer/ordercomp/attack_ai(var/mob/user as mob) /obj/machinery/computer/ordercomp/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/ordercomp/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/supplycomp/attack_ai(var/mob/user as mob) /obj/machinery/computer/supplycomp/attack_ai(var/mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/computer/supplycomp/attack_paw(var/mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/ordercomp/attack_hand(var/mob/user as mob) /obj/machinery/computer/ordercomp/attack_hand(var/mob/user as mob)
if(..()) if(..())
return return

View File

@@ -192,10 +192,6 @@ turf/simulated/floor/proc/update_icon()
else else
return 0 return 0
/turf/simulated/floor/attack_paw(mob/user as mob)
return src.attack_hand(user)
/turf/simulated/floor/attack_hand(mob/user as mob) /turf/simulated/floor/attack_hand(mob/user as mob)
if (is_light_floor()) if (is_light_floor())
var/obj/item/stack/tile/light/T = floor_tile var/obj/item/stack/tile/light/T = floor_tile

Some files were not shown because too many files have changed in this diff Show More