Commit Graph

2800 Commits

Author SHA1 Message Date
Gandalf
d14f4ea7c9 Revert "Revert "[MIRROR] Layer overhaul (#4503)" (#4509)" (#4536)
This reverts commit b27ede689e.
2021-03-31 02:08:56 +01:00
Useroth
b27ede689e Revert "[MIRROR] Layer overhaul (#4503)" (#4509)
This reverts commit 8ac892d340.
2021-03-30 23:45:08 +01:00
SkyratBot
1fbe38a51a [MIRROR] [Ready] Fermichem part 2.3 Adds a new reagent: Eigenstasium (#4445)
* [Ready] Fermichem part 2.3 Adds a new reagent: Eigenstasium

* Update quirks.dm

* Update closets.dm

* aaaaaaa

* Update lizardpeople.dm

* Update mothmen.dm

* Update species.dm

* Update species.dm

Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-03-30 10:12:19 +02:00
Useroth
faf4762e63 [Mostly non-modular] Stuff to accomodate multiple servers talking to the same database, including local/global bans. (#4032)
* Better accomodation of multiple servers using the same database.

* updated the PR number in readme.md

* Updated the database_changelog description.

* Oopsie.

* Cosmetic touch and sql query fixes.

* Opsie wopsie

* Oopsie x2

* Fugg
2021-03-30 07:50:29 +02:00
SkyratBot
8ac892d340 [MIRROR] Layer overhaul (#4503)
* Layer overhaul (#57915)

## About The Pull Request
Changes up some layer and plane defines for no particular reason lol

## Why It's Good For The Game
Planes actually override layers, and layers control ordering within planes. A lot of the usage of plane and layer was wholly unnecessary. This refactor helps future maintainability while also being needed staging for _future features._

* Layer overhaul

* aaaaaaaaa

a

Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-03-29 16:36:36 +01:00
SkyratBot
17e74d67d1 [MIRROR] Remove SS_NO_TICK_CHECK (#4483)
* Remove SS_NO_TICK_CHECK (#57800)

## About The Pull Request
This is a whopper, will need @ MrStonedOne to review.
In theory this flag shouldn't be needed and my own testing didn't find any issues, but I'd feel better with a lengthy test merge.

## Why It's Good For The Game
Might make nightshift subsystem lag less, MC loop has less stuff to check.

* Remove SS_NO_TICK_CHECK

Co-authored-by: spookydonut <github@spooksoftware.com>
2021-03-28 17:25:24 +01:00
SkyratBot
49836e4fac [MIRROR] Adds explorer drones / adventures. (#4424)
* Adds explorer drones / adventures.

* Update persistence.dm

* Update asset_list_items.dm

* MAP RESET

Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-03-26 15:49:44 +00:00
SkyratBot
3295778768 [MIRROR] Additional CTF maps (#4400)
* Additional CTF maps

* Update radio.dm

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-03-26 15:33:14 +00:00
SkyratBot
a3f6a41ee9 [MIRROR] Ref Tracking: Revengance (#4413)
* Ref Tracking: Revengance (#57728)

* Ref Tracking: Revengance

Fixes reference tracking ignoring self references due to a poorly thought out tick checking system.
Fixes reference tracking ignoring the contents of assoc lists
Makes the reference tracking printouts actually describe what list the ref is in, rather then just saying "list"

Adds REFERENCE_TRACKING_DEBUG, a define which toggles tracking info for the ref tracking procs, which allows for
oversight on how the proc is working

Allows for direct calls of qdel_and_find_ref_if_fail(), makes it use ref rather then REF(), fixing it breaking
for mobs. (Ditto for the qdel hint which does the same thing)

Moves REAGENTS_TESTING out of the reftracking define block
Makes unit tests define REFERENCE_TRACKING, REFERENCE_TRACKING_DEBUG, and FIND_REF_NO_CHECK_TICK

Adds a unit test that sanity checks the reference finder proc

* Ref Tracking: Revengance

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-03-26 10:30:59 +00:00
Gandalf
e1456b0cf6 Massive announcer/BSA overhaul (#4254)
* oh yeehaw

* Update default_announcer.dm

* a

* Update sound.dm

* Delete poweroff.ogg

* pref+newshit!

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

* a

* Update set_security_level.dm

* a

* a

* a

* Update default_announcer.dm

* a

* a

* Update priority_announce.dm

* a

* Update priority_announce.dm

* ERT NOW HAS AN ALERT OPTION

* more changes to sounds! ALERTS

* Update set_security_level.dm

* THSI IS THE WAYSDFSASA

* you think you've seen shitcode? just you wait cowboy.

* a

* Update set_security_level.dm

* Update default_announcer.dm

* Update set_security_level.dm

* Update set_security_level.dm

* Update gravitygenerator.dm

* BSA AND FIXES!

* a

* Update bsa_cannon.dm

* Update bsa_cannon.dm

* aaaaaaaaaaaaaa

* Update bsa_cannon.dm

* Update bsa_cannon.dm

* Update bsa_cannon.dm

* a

* autodocker

* Update modular_skyrat/modules/bsa_overhaul/code/bsa_cannon.dm

Co-authored-by: Azarak <azarak10@gmail.com>
2021-03-23 00:16:26 +00:00
SkyratBot
1f1aff1685 [MIRROR] Ports TGUI Vote Panel (#4308)
* Ports TGUI Vote Panel

* a

* Update vote.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-03-22 00:01:23 +00:00
SkyratBot
5764f24f98 [MIRROR] Departmental officers are now put together, rather than separate, if possible (#4285)
* Departmental officers are now put together, rather than separate, if possible (#57685)

Security officers will now be paired up together in the same department, across departments. This means that, instead of 4 officers being split across 4 departments, there'll now be 2 groups of 2.

Late-join officers will be put into any department with only 1 officer. If none exist, the least populous department will be chosen, with their preference having priority.

Updates the maps to have more spawns for departmental officers. Delta previously had none, and now has some. Fixed a bug where MetaStation's security departmental officer was a supply one instead.

Removes the "random" departmental preference. All security officers are now given a department. The "none" preference still exists, but just to show that you don't care which department you're put into.

Updates the config to comment out SEC_START_BRIG. This is what the configuration was already on live servers.

This is something that should likely be test merged, but it mucks with savefiles. Luckily, the only damage it does is changing random departments to none, so if a TM is reverted, only that will have to be changed.

* Departmental officers are now put together, rather than separate, if possible

* Update preferences.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2021-03-21 23:12:41 +00:00
SkyratBot
26f1f39c17 [MIRROR] Makes cargo canister listings get automatically generated at runtime (#4295)
* Makes cargo canister listings get automatically generated at runtime

* Update canister.dm

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-03-21 14:58:03 +00:00
SkyratBot
5fad2f6404 [MIRROR] Prevent possible augury hard deletes (#4294)
* Prevent augur deletes (#57853)

* Prevent possible augury hard deletes

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2021-03-21 14:49:54 +00:00
SkyratBot
9ffdf58259 [MIRROR] Some explosions code cleanup (#4276)
* Some explosions code cleanup (#57493)

Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf

* Some explosions code cleanup

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-03-21 01:03:36 +00:00
Gandalf
aa1059119e CME tweaks and fire occurrence reduction (#4249)
* a

* a

* Update cme.dm
2021-03-20 01:17:44 +00:00
SkyratBot
cbc41f5d13 [MIRROR] Fixes bug with atoms (including new players!!!!) not spawned from the holodeck being deleted by it if they happened to be initialized at the same time (#4260)
* Fixes bug with atoms (including new players!!!!) not spawned from the holodeck being deleted by it if they happened to be initialized at the same time (#57510)

About The Pull Request

Fixes #57446
yeah not my best moment, holodeck currently sets SSatoms to add every call to InitAtom() to a list and then give it back to the holodeck console (it actually goes through map_template/holodeck to do it but whatever). However it turns out atom/New() calls InitAtom too, so if an atom is created while SSatoms is still creating the list to give to the holodeck then that atom is added to the list regardless of whether or not its actually from the holodeck template.

Now theres an extra argument to InitAtom that tells it whether its spawned directly from a map template (ie, its part of the input list of uninitialized atoms that InitializeAtoms was given) or otherwise the output list that the holodeck uses is populated by calling GetAllContents on all atom/movables spawned directly from the template.

also renamed some vars in initTemplateBounds because it was hard to reason what it was doing and made it use as anything

also note that loading a map template with returns_created_atoms = TRUE will no longer track atoms that arent in the map file but are spawned directly onto a turf, currently nothing does this with the holodeck (which is the only map template that has this feature)

by the way this bug is my fault
Why It's Good For The Game

incredibly incredibly unlucky new players dont deserve to be deleted just because they didnt spawn in the holodeck
Changelog

🆑
fix: the holodeck is no longer so powerful that it can destroy anything and everything that dares to start existing while it's busy loading programs
/🆑

* Fixes bug with atoms (including new players!!!!) not spawned from the holodeck being deleted by it if they happened to be initialized at the same time

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-03-20 00:09:51 +00:00
Gandalf
951425133e Player panel improvements [be antag & character name] (#4222)
* a

* a

* a

* Update preferences.dm

* Update statpanel.dm

* Update new_player.dm

* Update new_player.dm

* modular statpanel

* a

* Update statpanel.dm
2021-03-18 20:19:29 +00:00
SkyratBot
7abc7c5480 [MIRROR] Remove no tick check flag from SSshuttle (#4227)
* Remove no tick check flag from SSshuttle (#57605)

* Remove no tick check flag from SSshuttle

Co-authored-by: spookydonut <github@spooksoftware.com>
2021-03-18 12:30:33 +00:00
SkyratBot
c2d6dd7d75 [MIRROR] Fixes a ton of harddels (#4215)
* Fixes a ton of harddels (#57736)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>

* Fixes a ton of harddels

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
2021-03-17 20:42:47 +00:00
SkyratBot
84f6558402 [MIRROR] Tramstation: choo choo MORE MAP COMIN' THROUH (#4083)
* Tramstation: choo choo MORE MAP COMIN' THROUH

* Tramstation: Skyrat Edition (#4104)

* Decals Fixed

* Modularity? Whatever

* Fuck me if I need to make a second PR for this

* Blueshield + Cryo + Ian Fursuit

* Automatic changelog generation for PR #4104 [ci skip]

Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
Co-authored-by: Cheshify <73589390+Cheshify@users.noreply.github.com>
2021-03-12 23:19:38 +00:00
SkyratBot
da9f453f6b [MIRROR] SecHUD icon generation fixes and code improvement. (#4067)
* SecHUD icon generation fixes and code improvement. (#57570)

* SecHUD icon generation fixes and code improvement.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-03-11 13:40:20 +01:00
SkyratBot
bd97409e3f [MIRROR] holodeck templates no longer take double the room in the template-place list, even though they deserve all that room (#4066)
* holodeck templates no longer take double the room in template-place (#57598)

* holodeck templates no longer take double the room in the template-place list, even though they deserve all that room

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-03-11 13:38:58 +01:00
SkyratBot
8ead5177bd [MIRROR] Makes client timers not able to perma block normal timers (#4057)
* Makes client timers not able to perma block normal timers (#57588)

* Makes client timers not able to perma block normal timers

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-03-11 07:54:47 +01:00
SkyratBot
ccf9317e59 [MIRROR] Makes pipenet rebuilds yield much more often (#4040)
* Makes pipenet rebuilds yield much more often (#57511)

Makes both the act of starting a rebuild, and the full rebuild itself yield.
This might? Expose some things that rely on parent existing, but that was a problem before, if a rare one. It'll
need cleaned up at some point, but I'd like some feedback on how I'm acomplishing this.

Oh and I changed a very slight detail about how volume is used, instead of storing it throughout the whole loop
and applying it at the last moment, we just operate on the pipeline's volume step by step. This fixes like,
pipes being wrenched up while a rebuild is in progress, and the behavior is older then git, but I figured I
should mention it

* Makes pipenet rebuilds yield much more often

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-03-10 12:11:42 +00:00
SkyratBot
83cd53bcdb new station trait: hangover (#4010)
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2021-03-09 18:10:48 +00:00
SkyratBot
42e7eba82b [MIRROR] Adds an Ocky icky phobia (#3996)
* Adds an Ocky icky phobia (#57450)

Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: interestingusernam3 <51925758+interestingusernam3@ users.noreply.github.com>

* Adds an Ocky icky phobia

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: interestingusernam3 <51925758+interestingusernam3@ users.noreply.github.com>
2021-03-08 07:41:27 +00:00
SkyratBot
2fb0421d2f [MIRROR] Tweaks to robo-tourists (#3993)
* Tweaks to robo-tourists (#57497)

 balance: Robotourists pay more for food now
qol: Only one robo-tourist will wait at the door at any time, preventing constant spam if you only have 2 seats.
qol: more variation in robo-tourist colors

* Tweaks to robo-tourists

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2021-03-08 07:41:07 +00:00
SkyratBot
7610b03af7 [MIRROR] Removes delta_time from the atmos system. (#3990)
* Removes delta_time from the atmos system. (#57478)

Why?

delta_time is about maintaining behavior when changing the wait of subsystems
SSair's wait is dynamic by design, we hardly ever hit below it. What is important then, is maintaining behavior
across each process.

The key point here is making sure excited groups and turfs share the same amoumt of gas each process, no matter
how high or low wait is. This is why subprocesses are a thing in the first place, to maintain this consistency.
delta_time fucks with this, and will end up changing behavior if wait is ever changed.

* Removes delta_time from the atmos system.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-03-08 07:40:41 +00:00
SkyratBot
136915aa72 [MIRROR] Dog AI 2.0 (#3972)
* Dog AI 2.0 (#57186)

Now that JPS and AI movement datums are fully merged, I'm here to take another (my third actually) crack at giving dogs fun AI. Here's a video demonstration (somewhat WIP), and a quick rundown of everything dogs will be able to do. Basically all of these behaviors are generic and can be extended to other simple mobs,
Commands and Friendship
Fetching
Attack/Harass
Heel
Play Dead

* Dog AI 2.0

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-03-07 02:29:00 +00:00
SkyratBot
a51b300cc6 [MIRROR] Adds extended Centcom support for ID console app and misc fixes (#3961)
* Adds extended Centcom support for ID console app and misc fixes (#57420)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds extended Centcom support for ID console app and misc fixes

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-03-07 00:36:38 +00:00
SkyratBot
7190132ab3 [MIRROR] Adds ability to request the spare ID safe codes on shifts with no captain or acting captain. (#3948)
* Adds ability to request the spare ID safe codes on shifts with no captain or acting captain. (#57460)

* Adds ability to request the spare ID safe codes on shifts with no captain or acting captain.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-03-06 23:09:57 +00:00
Gandalf
5af515f11f Replaces generic ambience with ERIS style sounds and removes the LRP ones from the ambience pool (#3880)
* a

* a

* Update projectiles.dm

* Update ambience.dm

* a
2021-03-05 21:52:54 +00:00
SkyratBot
551ca60e3b [MIRROR] Fixes ID trim singletons ignoring config flags. (#3890)
* Fixes ID trim singletons ignoring config flags. (#57406)

* Fixes ID trim singletons ignoring config flags.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-03-05 14:04:16 +00:00
SkyratBot
38c791df0f [MIRROR] Removes the excited cleanup subprocess (#3868)
* Removes the excited cleanup subprocess (#57381)

When I was in the process of developing my atmos fixes/optimizations, I focused heavily on maintaining the area
of excited groups, since growing delayed self_breakdown(), and lead to shitty behavior which I thought was the
result of my sleeping changes.

This was not the case, those who came before me knew better, as always.

Especially now, since I've unhooked breakdown from excited groups gaining new tiles, my concern was unfounded,
and actually lead to shitty behavior and wasted time.

I failed to recognize the value in random garbage_collect()s, they help prevent mass gas equalization over large
spaces, they make gas appear to move more consistently when in these large spaces, and they lessen the amount of
self_breakdown()s over large turf lists, which is very helpful for lowering the overall overtime of the
subsystem.

This fixes my mistake, and purges the excited cleanup subprocess from the air subsystem. It's free real estate
babyyyyyyyy.

* Removes the excited cleanup subprocess

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-03-04 21:33:13 +00:00
SkyratBot
c765afc23d [MIRROR] Chef Produce Console, for cases where there are no botanists (#3786)
* Chef Produce Console, for cases where there are no botanists (#57298)

* Chef Produce Console, for cases where there are no botanists

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-03-03 03:42:00 +00:00
SkyratBot
a05f7e863a [MIRROR] Fully implements the ID Card design document (#3729)
* Fully implements the ID Card design document

* Oh fuck that hurt.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-03-03 01:54:25 +00:00
SkyratBot
e63094d9ae [MIRROR] adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs (#3737)
* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs (#57263)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs

Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-03-01 17:55:55 +00:00
SkyratBot
b7da8c2269 [MIRROR] Adds new station traits that gives departments / everyone death rattle implants (#3683)
* Adds new station traits that gives departments / everyone death rattle implants

* Update jobs.dm

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-28 19:40:35 +00:00
SkyratBot
4032c73891 [MIRROR] Fermichem 2.4 - C2 medicine recipe adaptations and atunements to the new mechanics (#3701)
* Fermichem 2.4 - C2 medicine recipe adaptations and atunements to the new mechanics

* Update human_defense.dm

Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-28 15:21:34 +00:00
SkyratBot
4770eca75e [MIRROR] Adds tourist robots that order food and drinks from the bar and cafeteria (#3651)
* Adds tourist robots that order food and drinks from the bar and cafeteria (#57010)

* Adds Tourism Economy

Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds tourist robots that order food and drinks from the bar and cafeteria

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Emmanuel S. <emmanuelssr@ gmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@ gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-02-27 09:19:00 +00:00
SkyratBot
6d7d8c426b [MIRROR] Fixes HC random paying out double as deconverted antag (#3663)
* Fixes HC random paying out double when deconverted antag (#57148)

Fixes hardcore random paying out double as deconverted antag by just doubling it when the round ends instead of starts

* Fixes HC random paying out double as deconverted antag

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2021-02-26 14:04:47 +00:00
SkyratBot
e5ff997ef8 [MIRROR] Experi-Sci: Techweb nodes may now require you to perform "scientific" experiments (#3614)
* Experi-Sci: Techweb nodes may now require you to perform "scientific" experiments

* Update all_nodes.dm

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-23 21:51:28 +00:00
SkyratBot
c2215e3905 [MIRROR] Adds a subsystem for ai movement (#3613)
* Adds a subsystem for ai movement (#57111)

* done

* straight walk

* movement

* yep

* removes unused macro

* done

* Update ai_movement.dm

* Adds a subsystem for ai movement

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2021-02-23 21:46:00 +00:00
SkyratBot
adea9a6449 [MIRROR] Implements JPS (Jump Point Search) Pathfinding (#3581)
* Implements JPS (Jump Point Search) Pathfinding (#56780)

So a month or so ago I wanted to make it so dogs in my dog AI PR could path through doors if they had access, and was told I'd need to improve our pathfinding efficiency if I wanted to use full pathfinding for them. Thus, enter JPS, a pathfinding algorithm that allows for massive timesavings in systems with uniform cost grids like ours. This code is still fairly rough and needs polishing, but it's fully functional and already shows massive savings over traditional A*! I plan for this to replace A* as our default pathing method, but I'll leave the A* code in place in case someone ever needs it for whatever reason, like if a specific case needs variable cost pathing.

Note that this allows for diagonal pathing instead of the cardinal pathing our A* uses right now, and the current version of the code costs the same to move diagonally as it does to move laterally, which may change later. There's also a lot of dummy/test code in right now in general, but you should still be able to test it out for yourself by spawning a bot like a medibot and using your PDA to summon it.
Preliminary Profile Results

A preliminary profile is available here. Using one medibot by itself on Metastation, I generated a list of 500 random blob spawn points around the station, gave the medibot all access, then let each algorithm tackle the list. The old A* algorithm took a total of 86 seconds to complete the list and processed 978065 nodes, while JPS took a total of 46 seconds and processed only 100062 nodes, for a 47% decrease in total time and an almost 90% decrease in nodes processed!
Why It's Good For The Game

Significantly cheaper pathing, which will very much come in handy for the AI datums I'm looking to dig into, what's not to like?

* Implements JPS (Jump Point Search) Pathfinding

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-02-22 02:24:42 +00:00
SkyratBot
fc2fc8db6b [MIRROR] Icebox QoL minus features (#3459)
* Icebox QoL minus features (#56472)

* Icebox QoL minus features

Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
2021-02-21 22:02:33 +00:00
SkyratBot
da71129f87 [MIRROR] Fermichem part 2.1: Adds a reaction/reagent lookup GUI! (#3513)
* Fermichem part 2.1: Adds a reaction/reagent lookup GUI!

* Update chem_dispenser.dm

* Update reagents.dm

Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-02-19 23:14:45 +00:00
SkyratBot
d0dc199815 [MIRROR] /mob/living/proc/Life(delta_time) (#3509)
* /mob/living/proc/Life(delta_time)

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:55:52 +00:00
SkyratBot
18eca27569 [MIRROR] update_appearance (#3508)
* update_appearance

* a

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:08:09 +00:00
SkyratBot
efd745021e [MIRROR] Shuttle Insurance! (#3505)
* Shuttle Insurance! (#57025)

Co-authored-by: spessbro <51048066+spessbro@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Shuttle Insurance!

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: spessbro <51048066+spessbro@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-02-19 13:07:47 +00:00