Commit Graph

791 Commits

Author SHA1 Message Date
Arokha Sieyes
f47ae8e03c VS: Fix a destroy by creating a subsystem 2018-02-20 00:23:37 -05:00
Arokha Sieyes
71039bdd12 POLARIS?: Attempt to find the source of qdel'd images 2018-02-20 00:18:56 -05:00
Arokha Sieyes
f767bccd45 Oversight with low_priorty mob setup 2018-02-18 23:38:12 -05:00
Arokha Sieyes
b61723aa3b POLARIS: Attack icons for things
Uses the in-hand item when attacking to draw the icon, or for anything else (simple animals, etc) you can specify an icon to use (all SA default to a 'slashing' animation)
2018-02-14 21:59:42 -06:00
Aronai Sieyes
999597dad1 Merge branch 'master' into polaris-sync-2018-02-07 2018-02-07 23:06:03 -05:00
Arokha Sieyes
deef737212 POLARIS: New mob var 'low_priority' for skipping life()
Mobs with this will not have life() called on them unless there's a non-observing player on the same z-level.
2018-02-07 20:03:40 -05:00
Arokha Sieyes
e82f535d0e VS: Mapping subsystem supports lists only, now.
That's probably how it should have been.
2018-02-07 20:03:39 -05:00
Leshana
1d0f5262d8 Merge remote-tracking branch 'upstream-polaris/master' into polaris-sync-2018-02-07
# Conflicts:
#	code/__defines/subsystems.dm
#	code/controllers/master_controller.dm
#	code/controllers/subsystems/atoms.dm
#	code/game/machinery/Sleeper.dm
#	code/game/machinery/doors/airlock.dm
#	code/game/machinery/vr_console.dm
#	code/game/objects/items/devices/communicator/phone.dm
#	code/game/turfs/flooring/flooring_decals.dm
#	code/modules/admin/admin_verbs.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/multiz/movement.dm
#	code/modules/projectiles/gun.dm
#	code/modules/shuttles/shuttle.dm
#	code/modules/shuttles/shuttles_web.dm
#	icons/obj/doors/doormed.dmi
#	maps/southern_cross/items/headset_sc.dm
#	maps/southern_cross/southern_cross-3.dmm
#	vorestation.dme
2018-02-07 19:30:50 -05:00
Leshana
676efe73e5 Move Xenoarcheology globals and initialization into a subsystem
* Move the global spawning_turfs lists from master_controller into SSxenoarch.  Rename all references.
* Move the call to SetupXenoarch from master_controller.setup() to SSxenoarch.Initialize()  Put SSxenoarch init order near the end to match current behavior.
2018-02-06 01:08:10 -05:00
Anewbe
f56597efed Merge pull request #4727 from VOREStation/vplk-bitfields
Code fix for stat_entry on NO_FIRE subsystems
2018-02-05 22:46:25 -06:00
Leshana
2c90995dcc Let objects register to be informed when shuttles have been setup.
* Switch /obj/shuttle_connector to use it instead of the icky process hack.
2018-02-05 15:50:15 -05:00
Leshana
8bec38ee00 Implement SSshuttles subsystem
* Replaces the shuttle_controller and shuttle process with the shuttles subsystem.  Instead of docking ports being initialized by the game ticker, its part of the StonedMC Master init order.
* The main advantage of this is control over the initialization order, as well as letting Master be aware of CPU we're using up with shuttle processing.
* By being part of the Master init order, we reduce the uncertainty about "are objects initialized yet?" which is nice, since shuttle docks break if machines aren't finished initializing!
2018-02-05 15:50:14 -05:00
Leshana
5847319443 Update every initialize() proc to return an initialize hint.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
2018-02-05 15:50:13 -05:00
Leshana
44dc4b7286 Implement SSatoms
* Moves proc/initialize() from being on /atom/movable, /are and /turf/simulated to being on /atom - Now turfs can initialize too
* Added the SSatoms subsystem which controls initialization of atoms at roundstart and during normal conditions.
* Disabled the old auto_init = 0 behavior, ALL atoms should get initialized() called on them now.
* Refactored the way initialize() is called during /New() to utilize SSatoms instead of SScreation
* Removed SScreation, as it was only a stop-gap until SSatoms could be ported.
* Updated the maploader to inform SSatoms when it is loading maps instead of SScreation.
* Updated the template map loader to use SSatoms to perform initTemplateBounds
* Renamed 'initialized' var in seed_storage to deconflict.
* Removed usage of auto_init = 0, replaced with a no-op initialize() proc for atoms that don't need initialization.
2018-02-05 15:50:06 -05:00
Leshana
63a1806b41 Bitfields do not work that way.
Fix attempt to use `in` on a non-list.
2018-02-05 13:13:37 -05:00
Arokha Sieyes
13bfcf6bd3 Improve admin idlekick capability/awareness 2018-02-04 01:05:03 -05:00
Arokha Sieyes
5a9119de99 POLARIS: Improves idle-kick admin awareness 2018-02-04 01:00:25 -05:00
Leshana
ca64667773 Let objects register to be informed when shuttles have been setup.
* Switch /obj/shuttle_connector to use it instead of the icky process hack.
2018-02-03 20:54:41 -05:00
Leshana
79464c7315 Implement SSshuttles subsystem
* Replaces the shuttle_controller and shuttle process with the shuttles subsystem.  Instead of docking ports being initialized by the game ticker, its part of the StonedMC Master init order.
* The main advantage of this is control over the initialization order, as well as letting Master be aware of CPU we're using up with shuttle processing.
* By being part of the Master init order, we reduce the uncertainty about "are objects initialized yet?" which is nice, since shuttle docks break if machines aren't finished initializing!
2018-02-03 20:34:44 -05:00
Leshana
38f20304ca Initialize procs for virgo 2018-02-03 01:00:57 -05:00
Leshana
cef001bf2a Update every initialize() proc to return an initialize hint.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
2018-02-03 01:00:57 -05:00
Leshana
ef73c090ab Implement SSatoms
* Moves proc/initialize() from being on /atom/movable, /are and /turf/simulated to being on /atom - Now turfs can initialize too
* Added the SSatoms subsystem which controls initialization of atoms at roundstart and during normal conditions.
* Disabled the old auto_init = 0 behavior, ALL atoms should get initialized() called on them now.
* Refactored the way initialize() is called during /New() to utilize SSatoms instead of SScreation
* Removed SScreation, as it was only a stop-gap until SSatoms could be ported.
* Updated the maploader to inform SSatoms when it is loading maps instead of SScreation.
* Updated the template map loader to use SSatoms to perform initTemplateBounds
* Renamed 'initialized' var in seed_storage to deconflict.
* Removed usage of auto_init = 0, replaced with a no-op initialize() proc for atoms that don't need initialization.
2018-02-03 00:59:06 -05:00
Arokha Sieyes
cf4455e8db Adds cap on PTO
18 consecutive off-duty shifts is ... probably enough.
2018-02-02 18:37:50 -05:00
Leshana
8c09d39ef1 Convert ZAS "Airflow" into a subsystem plus fixes
* Port of the "Airflow" portions of Yonaguni/EuropaStation#618
* The "airflow" part of ZAS used to be handled by a sleep'd loop.   This has the potential to bunch up and lag.  Switching to a StonedMC managed subsystem improves it.
* Fixed to ensure that zshadow mobs cannot be blown around by the wind no matter how fierce.
* Added a message to mobs informing them when their boots save them from being wind-thwapped.
* Check w_class on non-item objects if they have it defined (might as well since var/w_class is on /obj)
* Tiny optimization of c_airblock
2018-01-30 12:28:45 -05:00
Leshana
8e22707e24 Merge air_master into SSair, now its all one type 2018-01-30 12:28:45 -05:00
Leshana
5a2162a264 Preliminary implementation of ZAS as a StonedMC subsystem.
* Creates the SSair subsystem which replaces the Setup, Start(), and Tick() procs of air_master.
* It may be best to have SSair completely replace air_master, but for now we are having them work together.   It does completely replace the old processScheduer air ticker however.
* Remove the obsolete Setup and Tick procs.
* Adjust admin and debug verbs that dealt with some ZAS internals to work with the new implementation.
2018-01-30 12:28:45 -05:00
Arokha Sieyes
cc353dd6e4 Revises assistant job, and defines config limitations 2018-01-28 23:38:07 -05:00
Arokha Sieyes
446e0f30e3 Configuration option for time_off 2018-01-28 23:27:21 -05:00
Arokha Sieyes
090c9bd265 Adds idle time check 2018-01-28 23:27:21 -05:00
Leshana
9ca5337c98 PTO Implementation
* Adds SSpersist which updates people's PTO balance every 15 minutes
* Adds "Off-duty" jobs which can only be taken if you have enough PTO.
2018-01-28 23:27:21 -05:00
Aronai Sieyes
30d93f99ca Merge pull request #2860 from VOREStation/polaris-sync-2018-01-27
Polaris Sync 2018-01-27
2018-01-28 14:08:14 -05:00
Leshana
27c3272821 Merge remote-tracking branch 'upstream-polaris/master' into polaris-sync-2018-01-27
# Conflicts:
#	code/ZAS/_docs.dm
#	code/__defines/mobs.dm
#	code/game/turfs/flooring/flooring_decals.dm
#	code/game/turfs/simulated/walls.dm
#	code/modules/client/preference_setup/loadout/loadout_utility.dm
#	code/modules/lore_codex/codex.dm
#	code/modules/mob/living/life.dm
#	code/modules/mob/living/living_defines.dm
#	maps/southern_cross/southern_cross-1.dmm
#	maps/southern_cross/southern_cross-3.dmm
#	maps/southern_cross/southern_cross-6.dmm
#	maps/southern_cross/southern_cross-7.dmm
#	maps/southern_cross/southern_cross_jobs.dm
#	vorestation.dme
2018-01-27 23:08:53 -05:00
Leshana
0c41ae9630 Convert ZAS "Airflow" into a subsystem plus fixes
* Port of the "Airflow" portions of Yonaguni/EuropaStation#618
* The "airflow" part of ZAS used to be handled by a sleep'd loop.   This has the potential to bunch up and lag.  Switching to a StonedMC managed subsystem improves it.
* Fixed to ensure that zshadow mobs cannot be blown around by the wind no matter how fierce.
* Added a message to mobs informing them when their boots save them from being wind-thwapped.
* Check w_class on non-item objects if they have it defined (might as well since var/w_class is on /obj)
* Tiny optimization of c_airblock
2018-01-27 20:31:04 -05:00
Aronai Sieyes
88cab44124 Merge pull request #2848 from VOREStation/aro-exploration
Exploration Update
2018-01-27 15:32:42 -05:00
Leshana
393673baa4 Merge air_master into SSair, now its all one type 2018-01-27 01:59:25 -05:00
Leshana
4c8bce00b4 Preliminary implementation of ZAS as a StonedMC subsystem.
* Creates the SSair subsystem which replaces the Setup, Start(), and Tick() procs of air_master.
* It may be best to have SSair completely replace air_master, but for now we are having them work together.   It does completely replace the old processScheduer air ticker however.
* Remove the obsolete Setup and Tick procs.
* Adjust admin and debug verbs that dealt with some ZAS internals to work with the new implementation.
2018-01-27 01:59:24 -05:00
Arokha Sieyes
20450d848c VS: Allow preloading maps from map datums in the mapping controller 2018-01-26 16:29:12 -05:00
Leshana
9d700f5946 Fix writing [date] on paper and printout of ref in garbage collector error message. 2018-01-23 13:24:32 -05:00
Leshana
39433fb45c Print world atom/object initialization progress to world.log to compare against subsystem initialization. 2018-01-22 19:23:10 -05:00
Arokha Sieyes
8c5603875a Fix ratio join bug 2018-01-21 23:49:13 -05:00
Arokha Sieyes
5d6d0bae15 Adds an admin verb to toggle it easier 2018-01-21 21:45:36 -05:00
Arokha Sieyes
4792ea713a Allows setting/enforcing an assistant ratio 2018-01-21 21:03:11 -05:00
Leshana
71b3ef47a9 Add checks to allow Tesla to fully dissipate once it runs out of energy. 2018-01-21 16:19:13 -05:00
Leshana
3c3dac7102 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2018-01-19
# Conflicts:
#	code/_onclick/hud/hud.dm
#	code/modules/clothing/glasses/glasses.dm
#	code/modules/mob/living/carbon/human/update_icons.dm
#	maps/southern_cross/southern_cross-1.dmm
#	maps/southern_cross/southern_cross-3.dmm
#	maps/southern_cross/southern_cross-6.dmm
#	vorestation.dme
2018-01-19 17:52:25 -05:00
Leshana
db0ba60f64 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.
2018-01-19 14:56:08 -06:00
Arokha Sieyes
ff228754b3 Merge polaris sync 01 17 2018
Planes, layers, human/update_icon()
2018-01-17 17:56:51 -05:00
Leshana
6bc422ff5e Ported VOREStation/VOREStation#461 - Allow greater customisation of wiki links 2018-01-17 16:46:48 -05:00
Anewbe
829cd092c8 Merge pull request #4534 from Neerti/1/14/2018_autopilot_and_other_shuttle_stuff
Web Shuttle Update
2018-01-15 11:15:02 -06:00
PrismaticGynoid
10b2cc7eef Multiple loadout slots (#4530)
* Multiple loadout slots

Ported from Bay. Each character can have 3 (number can be overridden by config) loadout slots. This way, you can have different outfits for different situations without needing to have a separate character slot or edit your loadout every time.

Tested here, works as intended. The current loadout is set as slot 1, so you don't need to worry about remaking it. This also ports the to_file and from_file macros to make it work, I'm assuming they could later be used elsewhere as well.

* Log of Changing
2018-01-14 14:47:47 -06:00
Neerti
d0d6689263 Web Shuttle Update
Adds autopilot functionality for shuttle one and shuttle two. It can be enabled and disabled by the flight computer.
Autopilot is active by default on both shuttles. The shuttle waits for two minutes when it reaches the outpost or station, except for the first flight, where it waits for about ten minutes, which should be plenty of time for people to get on and for the pilot to turn it off if one exists.
Adds renaming feature to all shuttles.
Ports /tg/'s 'shuttle warning' effect, which adds a bunch of blue circles where a ship is about to land, which should prevent surprise shuttle crushes if paying attention.
Flight times for all routes are cut in half to act as the bonus for flying manually. Automatic flight takes twice as long, and so it will take the current amount of time.
Makes Ninja shuttle faster because Nippen steal.
Does some cleanup with temporary effects.
2018-01-14 14:03:58 -05:00