Commit Graph

464 Commits

Author SHA1 Message Date
Anewbe 8ed384b38c Rewrites Atmospherics 2019-03-28 19:25:11 -04:00
Atermonera 2df5e9fe0e Merges AI Branch into Master 2018-12-01 00:06:38 -05:00
Arokha Sieyes b099ac6e4c Merge branch 'master' of https://github.com/VOREStation/Polaris into sync-09272018
# Conflicts:
#	code/__defines/holomap.dm
#	code/__defines/mobs.dm
#	code/_helpers/icons.dm
#	code/_helpers/unsorted.dm
#	code/_onclick/hud/hud.dm
#	code/_onclick/item_attack.dm
#	code/controllers/Processes/supply.dm
#	code/controllers/subsystems/planets.dm
#	code/datums/supplypacks/munitions.dm
#	code/datums/supplypacks/science.dm
#	code/datums/supplypacks/security.dm
#	code/datums/supplypacks/supply.dm
#	code/game/area/Space Station 13 areas.dm
#	code/game/atoms_movable.dm
#	code/game/machinery/autolathe.dm
#	code/game/machinery/doors/door.dm
#	code/game/machinery/jukebox.dm
#	code/game/machinery/recharger.dm
#	code/game/machinery/vending.dm
#	code/game/mecha/equipment/tools/medical_tools.dm
#	code/game/mecha/equipment/weapons/weapons.dm
#	code/game/objects/items/devices/PDA/PDA.dm
#	code/game/objects/items/devices/megaphone.dm
#	code/game/objects/items/poi_items.dm
#	code/game/objects/items/weapons/implants/implantlanguage.dm
#	code/game/objects/items/weapons/storage/firstaid.dm
#	code/game/objects/items/weapons/tools/weldingtool.dm
#	code/game/objects/structures/flora/trees.dm
#	code/game/objects/structures/plasticflaps.dm
#	code/game/supplyshuttle.dm
#	code/game/turfs/simulated/wall_attacks.dm
#	code/modules/admin/admin_verbs.dm
#	code/modules/assembly/infrared.dm
#	code/modules/client/client procs.dm
#	code/modules/client/preference_setup/loadout/loadout_utility.dm
#	code/modules/client/preferences.dm
#	code/modules/clothing/suits/miscellaneous.dm
#	code/modules/holomap/holomap_datum.dm
#	code/modules/holomap/station_holomap.dm
#	code/modules/integrated_electronics/core/printer.dm
#	code/modules/mining/machine_processing.dm
#	code/modules/mob/living/carbon/human/human_defense.dm
#	code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm
#	code/modules/mob/living/death.dm
#	code/modules/mob/living/silicon/ai/ai.dm
#	code/modules/mob/living/silicon/pai/pai.dm
#	code/modules/mob/living/silicon/robot/robot.dm
#	code/modules/mob/living/simple_animal/animals/parrot.dm
#	code/modules/mob/mob_movement.dm
#	code/modules/organs/organ_external.dm
#	code/modules/organs/organ_icon.dm
#	code/modules/organs/subtypes/standard.dm
#	code/modules/planet/weather.dm
#	code/modules/power/cable.dm
#	code/modules/power/fusion/core/core_control.dm
#	code/modules/power/fusion/fuel_assembly/fuel_control.dm
#	code/modules/power/fusion/gyrotron/gyrotron_control.dm
#	code/modules/projectiles/gun.dm
#	code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
#	config/names/first_name_skrell.txt
#	config/names/last_name_skrell.txt
#	icons/mob/head.dmi
#	icons/mob/robots.dmi
#	icons/mob/species/tajaran/helmet.dmi
#	icons/obj/ammo.dmi
#	icons/obj/gun.dmi
#	icons/obj/mining.dmi
#	icons/obj/projectiles.dmi
#	icons/obj/rig_modules.dmi
#	icons/obj/surgery.dmi
#	icons/turf/walls.dmi
#	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-8.dmm
#	maps/submaps/surface_submaps/mountains/backup/IceCave1.dmm
#	maps/submaps/surface_submaps/mountains/backup/IceCave1A.dmm
#	maps/submaps/surface_submaps/mountains/backup/IceCave1B.dmm
#	maps/submaps/surface_submaps/mountains/backup/IceCave1C.dmm
#	maps/submaps/surface_submaps/mountains/crashedcontainmentshuttle.dmm
#	maps/submaps/surface_submaps/mountains/deadspy.dmm
#	maps/submaps/surface_submaps/mountains/mountains_areas.dm
#	maps/submaps/surface_submaps/plains/Thiefc.dmm
#	maps/~map_system/maps.dm
#	vorestation.dme
2018-09-27 18:01:09 -04:00
Anewbe 8c5562b4bc Fixes some bugs tangentially related to Vox code 2018-09-04 21:36:12 -05:00
Leshana 741e02407a Port SSoverlays & Convert turfs to use it (#5004)
* Added "Display Initialize() Log" admin debug command so you can see it mid-round.

* Ported the core of the overlays management subsystem from /tg

- Added SSoverlays subsystem for compiling overlay lists and applying them to atoms in a controlled anti-lag subsystem.
- Added vars and procs to atom which should eventually replace all direct interaction with BYOND's /atom/overlays var outside the subsystem.
- Added OVERLAY_QUEUED flag to var/atom/flags bitfield.
- Added small framework for subsystem performance tracking. So far used only by SSoverlays
- Added admin debug command "Display overlay Log" to see performance stats mid-round.

* Fix runtime on universal pipe adaptor update_icons

* Workaround for appearance_bro not initialized

Unfortuantely BYOND's initialization order is strange, and the appearance_bro var is only half initialized when map starts to load, causing errors.  We temporarily fix by moving it to be a global-scoped global.

* Convert fire alarms to use add_overlay() A good first test.

* Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!

- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that

* Convert turf overlay interactions to use add_overlay.

Note: This is a plain and simple conversion of existing code to use SSoverlays. However I look at the line changed, and note that that line likely never fully worked as intended, as it has no way of re-applying itself.
I would make it use a priority overlay, but there is no code present for *removing* said overlay from neighbors when it is no longer required.  That code should be implemented by original author.
2018-03-05 19:43:23 -06:00
Arokha Sieyes f37e75011b Revert "Reverse floor decal removal commit 00f8ae5"
This reverts commit 517d4a9e56.
2018-03-02 20:04:08 -05:00
Arokha Sieyes 517d4a9e56 Reverse floor decal removal commit 00f8ae5 2018-03-01 09:43:38 -05:00
Leshana 00f8ae5cd8 Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!
- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that
2018-02-25 02:02:57 -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
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
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
Neerti b2e7b88cff Switches to the Southern Cross. For real. 2018-01-26 01:17:49 -05:00
Anewbe bfadcb8669 Revert "Revert "Revert "Revert "Revert "Revert "Revert "Revert "Revert "Switches us to the Southern Cross for testing""""""""" 2018-01-16 17:35:43 -06:00
Anewbe a73f989db6 Rebegins the chain of map change PRs 2018-01-11 19:24:02 -06:00
Leshana 28c193cbdb Merge remote-tracking branch 'refs/remotes/polaris-upstream/master' into polaris-sync-2018-01-04
# Conflicts:
#       code/game/objects/items/devices/communicator/communicator.dm
#       code/modules/client/preference_setup/occupation/occupation.dm
#       code/modules/mob/living/simple_animal/animals/cat.dm
#       code/modules/mob/mob_helpers.dm
#       code/unit_tests/zas_tests.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-04 22:44:04 -05:00
Neerti 7b303d70db Revert "Revert "Revert "Revert "Revert "Revert "Revert "Switches us to the Southern Cross for testing""""""" (#4491) 2018-01-01 23:36:36 -08:00
Neerti 495f985022 Travis Appeasement Mark II (#4485)
* Tries to Please Travis
Should remove all active edge problems.
Moves map-specific unit tests to the map define file.
Enhances some PoIs in terms of adding /ignore_mapgen to the ground.
Fixes incorrect loot pile in one PoI.

* Conflicts are fun.

* Might fix unit test.
2018-01-01 22:26:31 -05:00
Anewbe b088aff6bd Revert "Revert "Revert "Revert "Revert "Revert "Switches us to the Southern Cross for testing"""""" 2017-12-30 16:28:39 -06:00
killer653 3a2093ef40 Polaris sync 2017-12-21 04:01:07 -05:00
Anewbe 8bd4ae31ba Revert "Revert "Revert "Revert "Revert "Switches us to the Southern Cross for testing""""" 2017-12-01 18:21:46 -06:00
Anewbe afbc533220 Revert "Revert "Revert "Revert "Switches us to the Southern Cross for testing"""" 2017-12-01 15:59:38 -06:00
Anewbe 37101b9b39 Contaminated items now respect gloves 2017-11-28 23:56:13 -06:00
Anewbe 45a8fd2eda Revert "Revert "Revert "Switches us to the Southern Cross for testing""" 2017-11-27 09:16:28 -06:00
Anewbe 667ad2feee Revert "Revert "Switches us to the Southern Cross for testing"" 2017-11-26 13:20:21 -06:00
Anewbe e6d263a8fa Revert "Switches us to the Southern Cross for testing" 2017-11-18 14:26:28 -06:00
Anewbe 3e3af4c137 Switches us to the Southern Cross for testing 2017-11-17 23:30:47 -06:00
killer653 0c480ec15f Polaris sync 2017-10-27 15:30:24 -04:00
Belsima 8542fcde97 Success! 2017-10-27 13:43:05 -04:00
killer653 bddfa16f82 Polaris sync 2017-09-15 21:17:34 -04:00
Neerti 4bfcec55f2 work 2017-09-04 21:52:47 -04:00
Leshana 780eb637d8 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-20170614
# Conflicts:
#	code/controllers/shuttle_controller.dm
#	code/modules/shuttles/shuttles_multi.dm
2017-06-14 17:54:34 -04:00
Leshana 1b8451bc9a Converts /datum/gas_mixture/var/graphic to a lazy list.
* The vast majority of gas mixtures never use their `graphic` list.  Prime candidate for making a lazy init list.
* While we are here, add nullchecks to ZAS's use of the graphic list a bit.  /turf/update_graphics was technically already null safe, but its even better to not bother calling it at all right?
2017-06-10 10:13:55 -04:00
Arokha Sieyes 58ee6891f2 Additional Work on NIFs
Squashed commits:

[9563a9a] All the stuff I forgot to commit
2017-06-06 01:00:46 -04:00
Arokha Sieyes 1e35ef8809 Goggles are airtight
Adds some 'plain' goggles that are airtight, and as such protect your eyes from things like phoron. Also allows eyewear to protect you from phoron if it's airtight (and hiding your eyes). Added airtight flag to science goggles, welding goggles, and 'plain' goggles I added. Weldning goggles only protect your eyes when down, since it removes the covers eyes flag when up.
2017-05-27 03:14:14 -04:00
Arokha Sieyes 9fef32f585 Goggles are airtight
Adds some 'plain' goggles that are airtight, and as such protect your eyes from things like phoron. Also allows eyewear to protect you from phoron if it's airtight (and hiding your eyes). Added airtight flag to science goggles, welding goggles, and 'plain' goggles I added. Weldning goggles only protect your eyes when down, since it removes the covers eyes flag when up.
2017-05-27 03:03:45 -04:00
Leshana 5f5ea3ea3b Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-merge-2017-05-26
# Conflicts:
#	code/game/gamemodes/technomancer/spells/insert/mend_burns.dm
#	code/game/gamemodes/technomancer/spells/insert/mend_metal.dm
#	code/game/gamemodes/technomancer/spells/insert/mend_organs.dm
#	code/game/gamemodes/technomancer/spells/insert/mend_wires.dm
#	code/game/machinery/computer/Operating.dm
#	code/game/machinery/computer/camera.dm
#	code/game/machinery/computer/communications.dm
#	code/game/machinery/computer/security.dm
#	code/game/machinery/computer/skills.dm
#	code/game/objects/items/devices/radio/jammer.dm
#	html/changelogs/.all_changelog.yml
#	maps/~map_system/maps.dm
#	nano/images/nanomap_z1.png
#	nano/images/nanomap_z5.png
2017-05-26 15:29:46 -04:00
Arokha Sieyes 2f918f1041 Make ZAS setup and init delays work
They didn't work due to bay differences in UNIT_TESTING activation defines
2017-05-15 01:34:45 -04:00
Leshana df9e76efd6 Small ZAS Optimization
Minor optimization; eliminates a few proc calls when managing zone
connections by turning check() into a macro.
2017-05-10 20:12:13 -04:00
Arokha Sieyes 1231c8e872 Enable MultiZAS 2017-05-09 01:40:23 -04:00
Leshana f8a538eff9 Multi-ZAS Optimization
A simple optimization to can_safely_remove_from_zone() both with and without multi-zas.
Instead of allocating a new list every time we call get_zone_neighbours() (which gets called several times in a loop) we have a pre-built list we don't need to Copy().
Same story for the list to iterate over in can_safely_remove_from_zone()
There should be no semantic change whatsoever from this; it is purely a performance optimization.
2017-05-04 21:14:18 -04:00
Anewbe 1feba48827 Ports MultiZAS 2017-05-04 21:13:53 -04:00
Leshana fdb5d80afa Multi-ZAS Optimization
A simple optimization to can_safely_remove_from_zone() both with and without multi-zas.
Instead of allocating a new list every time we call get_zone_neighbours() (which gets called several times in a loop) we have a pre-built list we don't need to Copy().
Same story for the list to iterate over in can_safely_remove_from_zone()
There should be no semantic change whatsoever from this; it is purely a performance optimization.
2017-05-04 19:51:55 -04:00
Anewbe cce1fcc1f5 Ports MultiZAS 2017-05-04 19:51:54 -04:00
Neerti ea6128f986 Adds Modifier System, Changes Some Ling Stuff
Adds a fairly simple system that allows adjusting various numbers like max health, incoming damage, outgoing melee damage, etc.  The nice part is that changing certain variables this way (like max health) is a lot safer than manually setting the max health var directly.
Changes a lot of short lines of code to point towards a variable's getter or setter helper instead of reading the var directly so the modifiers can work.
Endoarmor, delayed toxin sting, Enfeebling sting, and recursive adrenaline overdose now use the modifier system.
Enfeebling sting now only lasts two minutes, from five minutes, however it now also reduces the victim's melee damage by 25%/50%, and increases the damage they suffer by 10%/35%, for normal and recursive respectively.
Delayed Toxin Sting's effects are now felt all at once instead of over the course of a few minutes.
2017-04-18 21:23:59 -04:00
Anewbe 3816d634ed Merge branch 'master' of https://github.com/PolarisSS13/Polaris into armor_soak
# Conflicts:
#	code/modules/mob/living/simple_animal/animals/bear.dm
#	code/modules/mob/living/simple_animal/animals/parrot.dm
2017-03-24 16:35:31 -05:00
Anewbe beaadfa4cc Merge pull request #3092 from Anewbe/vox_fix
Might fix Vox blindness
2017-03-20 19:48:29 -05:00
Leshana 71587c5ad0 Fix rooms holding pressure when exposed to space.
This happens because edges cease processing when the delta between their zones is small enough.  This is normally a fine optimization, but when it results in a room at 4kPa with a window open to space, it breaks imurshuns.

Two main changes to solve this problem without too much cpu cost:
1) Stop edges from sleeping if one side is a hard vacuum.  This ensures that a zone doesn't freeze at a low-but-non-zero pressure when touching hard vacuum.
2) Prevent #1 from causing the edge to stay alive for ages while pressures asymptotically approach zero as they are repeatedly equalized but only half is dumped to space. (Would happen if ZoneA---ZoneB---Space arrangement exists) by detecting when the total amount of air left is small enough that it would normally sleep anyway, and just setting it to zero.

The end outcome is that behavior is mostly the same as before, except when zones have an open path to unsimulated space, they will reach equilibrium at zero instead of semi-random lowish values.
2017-03-15 19:04:33 -04:00