Electric Boogaloo (Take Two) (#31892)

* wall and floor and overlay icons

* HOLY SHIT PLANEMASTERS ARE AMAZING <3 LUMMOX

* nevermind shit is fucked i hate byond

* apc hackin tweaks start now

* attack_ai is overridden almost everywhere for zero reason

* more attack_ai shit

* more shit

* FORCEDISABLE pt. 1

* FORCEDISABLE pt 2

* more forcedisable 3

* 3.1

* end of forcedisable

* remove all hackview shit, cleanup

* better apc hacking, lots of fixes, and UI!

* more machine ability, lots of cleanup, radial lock updating, modules and active modules

* movable ui elements

* ADVANCED hologrmas

* more SHIT

* SHUNTSHUNTSHUNT

* fig congflgighgsa

* more testing

* fuck

* commit 2

* holo fixes

* fake APC images!

* lots of stuff

* fixes and cleanup and vomit

* More abilities. AI Control fixes and cleanup

* fixes

* fix

* clear another warning

* remove comment fix numbers

* raise price

* raise price

* fix

* 1 autoborger limit

* remove undocumented change

* handle at bot level

* order of operations

* dont call ert

* decrease

* fix unit test

* icon check please work

* remove unused icons, comment out chem dispenser drain

* comment out firewall, add disable to turrets

* remove unused wall icons

* Sort mob list, humans appear at the top

* fix sorting, fix hologram bug

* hologram tweaks, stupid fucking alert APC name

* qdel

* raise ever so slightly

* revert

* Delete broken_hand_icons.txt

* Update setup.dm

* Create setup.dm

* attack_self

* fix filter icon, delete unused file, remove forcedisable from magtape deck

* accidental change

* mousedropfrom recharge station

* oh rite

* fixo

* remove useless code

* aaahhh

* remove rig meal, made obsolete by emag

* fffffshhhhhhwooooop

* typo!
This commit is contained in:
gurfan
2022-01-31 18:18:06 -06:00
committed by GitHub
parent 11953788f0
commit 12b68b9546
293 changed files with 3436 additions and 1846 deletions

View File

@@ -16,12 +16,30 @@
// Use this when setting the aiEye's location.
// It will also stream the chunk that the new loc is in.
/mob/camera/aiEye/forceMove(atom/destination, step_x = 0, step_y = 0, no_tp = FALSE, harderforce = FALSE, glide_size_override = 0)
/mob/camera/aiEye/forceMove(atom/destination, step_x = 0, step_y = 0, no_tp = FALSE, harderforce = TRUE, glide_size_override = 0, var/holo_bump = FALSE)
if(ai)
var/obj/machinery/hologram/holopad/H
if(istype(ai.current, /obj/machinery/hologram/holopad))
H = ai.current
if(istype(ai.current, /obj/machinery/turret))
var/obj/machinery/turret/T = ai.current
T.malf_release_control()
if(!isturf(ai.loc))
return
if(!isturf(destination))
if(istype(H))
if(harderforce && H.advancedholo && !holo_bump) // If we double click while controlling an advanced hologram, remove the hologram.
H.clear_holo()
return
else if(H.advancedholo && !holo_bump) // Otherwise, if we're controlling an advanced hologram, check to see if we can enter the tile normally
if(destination.density)
return
for(var/atom/movable/A in destination)
if(A.density)
return
if(!isturf(destination) && destination)
for(destination = destination.loc; !isturf(destination); destination = destination.loc);
forceEnter(destination)
cameranet.visibility(src)
@@ -31,10 +49,8 @@
ai.see_in_dark = 8
ai.see_invisible = SEE_INVISIBLE_LEVEL_TWO
//Holopad
if(istype(ai.current, /obj/machinery/hologram/holopad))
var/obj/machinery/hologram/holopad/H = ai.current
H.move_hologram()
if(istype(H) && !holo_bump) // move our hologram to our new location (unless our advanced hologram was bumped, in which case we're moving to the hologram)
H.move_hologram(harderforce)
if(ai.camera_light_on)
ai.light_cameras()
@@ -94,19 +110,46 @@
var/initial = initial(user.sprint)
var/max_sprint = 50
if(user.cooldown && user.cooldown < world.timeofday) // 3 seconds
var/obj/machinery/turret/T = user.current
var/obj/machinery/hologram/holopad/H = user.current
if(istype(T))
T.malf_release_control()
if((user.cooldown && user.cooldown < world.timeofday) || istype(H)) // 3 seconds
user.sprint = initial
if(istype(H))
CAN_MOVE_DIAGONALLY = FALSE
user.eyeobj.glide_size = DELAY2GLIDESIZE(1)
user.delayNextMove(1)
else
user.eyeobj.glide_size = WORLD_ICON_SIZE
CAN_MOVE_DIAGONALLY = TRUE
for(var/i = 0; i < max(user.sprint, initial); i += 20)
var/turf/step = get_turf(get_step(user.eyeobj, direct))
if(step)
if (user.client.prefs.stumble && ((world.time - user.last_movement) > 4))
user.delayNextMove(3) //if set, delays the second step when a mob starts moving to attempt to make precise high ping movement easier
user.eyeobj.forceMove(step)
else if(istype(H) && H.advancedholo)
H.holo.dir = direct
if(step.density)
return
for(var/atom/movable/A in step)
if(A.density)
if(A.flow_flags&ON_BORDER)
if(!A.Cross(H.holo, H.holo.loc))
return
else
return
user.eyeobj.forceMove(destination = step, harderforce = FALSE)
else
user.eyeobj.forceMove(destination = step, harderforce = FALSE)
user.last_movement=world.time
user.cooldown = world.timeofday + 5
if(user.acceleration)
if(user.acceleration && !istype(H))
user.sprint = min(user.sprint + 0.5, max_sprint)
else
user.sprint = initial
@@ -118,6 +161,12 @@
/mob/living/silicon/ai/proc/view_core()
var/obj/machinery/hologram/holopad/H = current
if(istype(H))
H.clear_holo()
var/obj/machinery/turret/T = current
if(istype(T))
T.malf_release_control()
current = null
cameraFollow = null