mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Implements the Tesla engine and supporting features (#4539)
* Adds "typecache" utility functions. A fast way to filter lists by type. Ported from TG * Ports the "orbit" feature and subsystem from TG * Adds a feature that allows mobs and objs to "orbit" around some atom. They literally are moved around in circles. See the `orbit` proc in orbit.dm. * Adds a subsystem that processes the actual movement of orbiting items. * Adds utility methods for common machinery behavior. * Adds default_unfasten_wrench which handles the standard anchor/unanchor behavior of wrenches being used on machines. Together with the other default_x_tool machinery procs we can eliminate having that code duplicated in dozens of places! * Adds is_wire_tool proc to easily detect when a machine is hit with a tool that should open its wires UI (if it has one). Based on ideas from Paradise, with improvements for us. * Implements the Tesla Engine Ported from a mixture of TG and Paradise code and assets: Edison's Bane Includes the tesla energy ball itself, the generator that makes it, tesla coils, grounding rods, the circuits and frames to build them. * Switch dusting to zapping on impact and spin better Ported /tg SpinAnimation which supports more than triangles.
This commit is contained in:
@@ -517,11 +517,15 @@
|
||||
E.state = 2
|
||||
E.connect_to_network()
|
||||
E.active = TRUE
|
||||
|
||||
for(var/obj/machinery/field_generator/F in world)
|
||||
if(istype(get_area(F), /area/space))
|
||||
F.Varedit_start = 1
|
||||
|
||||
for(var/obj/machinery/power/grounding_rod/GR in world)
|
||||
GR.anchored = TRUE
|
||||
GR.update_icon()
|
||||
for(var/obj/machinery/power/tesla_coil/TC in world)
|
||||
TC.anchored = TRUE
|
||||
TC.update_icon()
|
||||
for(var/obj/structure/particle_accelerator/PA in world)
|
||||
PA.anchored = TRUE
|
||||
PA.construction_state = 3
|
||||
@@ -531,25 +535,6 @@
|
||||
PA.construction_state = 3
|
||||
PA.update_icon()
|
||||
|
||||
spawn(30)
|
||||
for(var/obj/machinery/the_singularitygen/G in world)
|
||||
if(G.anchored)
|
||||
var/obj/singularity/S = new /obj/singularity(get_turf(G), 50)
|
||||
spawn(0)
|
||||
qdel(G)
|
||||
S.energy = 1750
|
||||
S.current_size = 7
|
||||
S.icon = 'icons/effects/224x224.dmi'
|
||||
S.icon_state = "singularity_s7"
|
||||
S.pixel_x = -96
|
||||
S.pixel_y = -96
|
||||
S.grav_pull = 0
|
||||
//S.consume_range = 3
|
||||
S.dissipate = 0
|
||||
//S.dissipate_delay = 10
|
||||
//S.dissipate_track = 0
|
||||
//S.dissipate_strength = 10
|
||||
|
||||
for(var/obj/machinery/power/rad_collector/Rad in world)
|
||||
if(Rad.anchored)
|
||||
if(!Rad.P)
|
||||
|
||||
Reference in New Issue
Block a user