mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-25 08:34:23 +00:00
About The Pull Request https://imgur.com/a/pMMEi4i https://imgur.com/a/xCrIcz4 Title, really. Adds an ingame guide to atmos. Currently hooked to the atmos monitors, analyzer, and the tablet app. Lots of reaction data not implemented yet, banking on the cleanup to get merged first, so drafting. Done, all reactions in. Haven't double checked them though. Code is pretty much finished, feel free to take a look. Ill probably retidy them while adding stuffs so no rush. Might add a reaction handbook obj later Implemented in analyzer. Dotted tooltip idea shamelessly stolen from preferences. Lots of the diffs are from breaking the sensor file up, dont worry about it. Why It's Good For The Game Less need to open the wiki in another page I guess. Changelog cl add: Added an ic atmos reaction guide. Available in your atmos control consoles/monitors, ntosatmos app, and analyzer. code: Some changes to how gas canister descriptions are generated. /cl
91 lines
2.7 KiB
Plaintext
91 lines
2.7 KiB
Plaintext
/mob/dead/observer/DblClickOn(atom/A, params)
|
|
if(check_click_intercept(params, A))
|
|
return
|
|
|
|
if(can_reenter_corpse && mind?.current)
|
|
if(A == mind.current || (mind.current in A)) // double click your corpse or whatever holds it
|
|
reenter_corpse() // (body bag, closet, mech, etc)
|
|
return // seems legit.
|
|
|
|
// Things you might plausibly want to follow
|
|
if(ismovable(A))
|
|
ManualFollow(A)
|
|
|
|
// Otherwise jump
|
|
else if(A.loc)
|
|
abstract_move(get_turf(A))
|
|
update_parallax_contents()
|
|
|
|
/mob/dead/observer/ClickOn(atom/A, params)
|
|
if(check_click_intercept(params,A))
|
|
return
|
|
|
|
var/list/modifiers = params2list(params)
|
|
if(LAZYACCESS(modifiers, SHIFT_CLICK))
|
|
if(LAZYACCESS(modifiers, MIDDLE_CLICK))
|
|
ShiftMiddleClickOn(A)
|
|
return
|
|
if(LAZYACCESS(modifiers, CTRL_CLICK))
|
|
CtrlShiftClickOn(A)
|
|
return
|
|
ShiftClickOn(A)
|
|
return
|
|
if(LAZYACCESS(modifiers, MIDDLE_CLICK))
|
|
if(LAZYACCESS(modifiers, CTRL_CLICK))
|
|
CtrlMiddleClickOn(A)
|
|
else
|
|
MiddleClickOn(A, params)
|
|
return
|
|
if(LAZYACCESS(modifiers, ALT_CLICK))
|
|
AltClickNoInteract(src, A)
|
|
return
|
|
if(LAZYACCESS(modifiers, CTRL_CLICK))
|
|
CtrlClickOn(A)
|
|
return
|
|
|
|
if(world.time <= next_move)
|
|
return
|
|
// You are responsible for checking config.ghost_interaction when you override this function
|
|
// Not all of them require checking, see below
|
|
A.attack_ghost(src)
|
|
|
|
// Oh by the way this didn't work with old click code which is why clicking shit didn't spam you
|
|
/atom/proc/attack_ghost(mob/dead/observer/user)
|
|
if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_GHOST, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
|
|
return TRUE
|
|
if(user.client)
|
|
if(user.gas_scan && atmos_scan(user=user, target=src, tool=null, silent=TRUE))
|
|
return TRUE
|
|
else if(isAdminGhostAI(user))
|
|
attack_ai(user)
|
|
else if(user.client.prefs.read_preference(/datum/preference/toggle/inquisitive_ghost))
|
|
user.examinate(src)
|
|
return FALSE
|
|
|
|
/mob/living/attack_ghost(mob/dead/observer/user)
|
|
if(user.client && user.health_scan)
|
|
healthscan(user, src, 1, TRUE)
|
|
if(user.client && user.chem_scan)
|
|
chemscan(user, src)
|
|
return ..()
|
|
|
|
// ---------------------------------------
|
|
// And here are some good things for free:
|
|
// Now you can click through portals, wormholes, gateways, and teleporters while observing. -Sayu
|
|
|
|
/obj/effect/gateway_portal_bumper/attack_ghost(mob/user)
|
|
if(gateway)
|
|
gateway.Transfer(user)
|
|
return ..()
|
|
|
|
/obj/machinery/teleport/hub/attack_ghost(mob/user)
|
|
if(!power_station?.engaged || !power_station.teleporter_console || !power_station.teleporter_console.target_ref)
|
|
return ..()
|
|
|
|
var/atom/target = power_station.teleporter_console.target_ref.resolve()
|
|
if(!target)
|
|
power_station.teleporter_console.target_ref = null
|
|
return ..()
|
|
|
|
user.abstract_move(get_turf(target))
|