Merge branch 'master' into final_away_maps_additions

# Conflicts:
#	code/__defines/misc.dm
#	code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm
#	icons/mob/head.dmi
#	maps/exodus/code/exodus.dm
This commit is contained in:
alberyk
2022-04-04 19:47:58 -03:00
100 changed files with 1824 additions and 447407 deletions
+5 -67
View File
@@ -45,16 +45,9 @@
if(is_component_functioning("camera"))
ai_camera.captureimage(A, usr)
else
to_chat(src, "<span class='danger'>Your camera isn't functional.</span>")
to_chat(src, SPAN_DANGER("Your camera isn't functional."))
return
/*
cyborg restrained() currently does nothing
if(restrained())
RestrainedClickOn(A)
return
*/
var/obj/item/W = get_active_hand()
// Cyborgs have no range-checking unless there is item use
@@ -71,21 +64,12 @@
W.attack_self(src)
return
//Handling using grippers
if(istype(W, /obj/item/gripper))
var/obj/item/gripper/G = W
//If the gripper contains something, then we will use its contents to attack
if (G.wrapped && (G.wrapped.loc == G))
GripperClickOn(A, params, G)
G.update_icon() //We may need to update our gripper based on a change in the wrapped item
return
// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents)
if(A == loc || (A in loc) || (A in contents))
// No adjacency checks
var/resolved = A.attackby(W,src)
if(!resolved && A && W)
if(!resolved)
W.afterattack(A,src,1,params)
return
@@ -95,57 +79,11 @@
// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc))
if(isturf(A) || isturf(A.loc))
if(A.Adjacent(src)) // see adjacent.dm
if(W)
var/resolved = W.resolve_attackby(A, src, params)
if(!resolved && A && W)
W.afterattack(A, src, 1, params)
return
var/resolved = W.resolve_attackby(A, src, params)
if(!resolved)
W.afterattack(A, src, 1, params)
else
W.afterattack(A, src, 0, params)
return
return
/*
Gripper Handling
This is used when a gripper is used on anything. It does all the handling for it
*/
/mob/living/silicon/robot/proc/GripperClickOn(var/atom/A, var/params, var/obj/item/gripper/G)
var/obj/item/W = G.wrapped
if (!grippersafety(G))return
G.force_holder = W.force
W.force = 0
// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc in contents)
if(A == loc || (A in loc) || (A in contents))
// No adjacency checks
var/resolved = A.attackby(W,src)
if (!grippersafety(G))return
if(!resolved && A && W)
W.afterattack(A,src,1,params)
if (!grippersafety(G))return
W.force = G.force_holder
return
if(!isturf(loc))
W.force = G.force_holder
return
// cyborgs are prohibited from using storage items so we can I think safely remove (A.loc && isturf(A.loc.loc))
if(isturf(A) || isturf(A.loc))
if(A.Adjacent(src)) // see adjacent.dm
var/resolved = A.attackby(W, src)
if (!grippersafety(G))return
if(!resolved && A && W)
W.afterattack(A, src, 1, params)
if (!grippersafety(G))return
W.force = G.force_holder
return
//No non-adjacent clicks. Can't fire guns
W.force = G.force_holder
return
//Middle click cycles through selected modules.