18 Commits

Author SHA1 Message Date
Kian
5c84b165cf october tgu (sylvia blue name app) (#1264)
Octuber TGU
2024-11-13 14:48:48 +00:00
A miscellaneous Fern
9bd86e85b5 June/July TGU: Loadout menu, flatpackers and... whatever else! (#1230)
* Initial Commit

* Not quite all was staged, apparently.

* Multiline no longer necessary

* For my convenience...

* Forgot an important little tidbit in routes.tsx

* This updated, apparently.

* And now hell breaks loose

* First batch

* Second Batch

* Third batch (Unit Tests)

* Improvised shotgun ammo is gone; Vibebots are refactored

* UpdatePath sweeps in our fulp_modules/_maps folder

* I can't bring myself to do it.

* Map stuff

* Didn't mean to leave this uncommented

* I carpet-bombed them with Find-Replace. Let's see what linters think

* I sure do hope this is comprehensive and doesn't break other things

* This may take a while

* Next Round

* Hopefully the last batch before getting on with actual fixes

* Telescreens

* :/

* Stragglers

* Helio Emergency Shuttle; NearStation adjustments.

* Only one more commit for greenchecks... Shuttle code be dammed.

* Pff, the file was missing

* Same treatment as the other map files.

* Missed a comma :P

* BZ chambers for Xenobiology

* Odd. Most of these got done earlier. Not sure why this one wasn't.

* Mapping sweep. I didn't adjust C_tags in Theia. Another time.

* The balloon alerts overlap

* I hate TGU I hate TGU

* I meant to say "I hate TG" on the last one. Freudian slip.

* Fix Fix

* Nanite research cost rebalance

* TGU-Update: Step 0

* Yeah I figured it'd do this.

* I accidentally undid this

* Failed to catch this one

* I don't trust hundredths not to break or be broken somewhere.

* Little air alarm tweaks

* Ports #1228

* Stuff I missed

* Silly

* TGU so nice we're going to make it thrice

* Yarn

* Should be all? Fixes cult stun too.

* Thermomachine layers

* Free square spellcheck to rerun tests and see if it's consistent

* All credit goes to QLA for reminding me to actually do this

* Update to e40becd742

* github folder
2024-08-06 20:17:51 -04:00
John Willard
66d243abec tgu (#995)
* tgu

* tgui

* Fixes compile errors & Updates Beefmen

* Smartfridges

* Coroner stuff

* fix helio fridges

* ci errors

* Update russian.dm

* Pubby Fix (#58)

among us

* helio fix and wounds fix

* re-adds features

* Adds a mentor log category

* Update exiled_king_basic.dm (#59)

---------

Co-authored-by: Ray <64306407+OneAsianTortoise@users.noreply.github.com>
Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
2023-06-06 14:46:43 -04:00
A miscellaneous Fern
82e5c65589 December TGU (#856)
* Let's try again

* i forgot to stage these

* Green checks. Hopefully.

* Z-edit it is

* That should do it (also kills Raid Edwards)

* Whoopsie daisy.

* Beef station

* Saves pubbystation

* Map fixes

* Ticket machines and sorting helpers
2022-12-28 04:53:04 -03:00
John Willard
b7ce41dec7 [MDB IGNORE] "Holy shit we need the halloween fixes" TGU (#395)
* tgu

* idk this seems to work

* rad collector stuff, the pubby update

* pubby update

* Helio and finishing Pubby

* map stuff

* drone dispensers

* tgu
2021-10-28 18:09:53 -06:00
SgtHunk
353d006659 [TM] TG Update: Combat mode, drone exploration, and more! (#58)
* Updating GBP from PR #57626 [ci skip]

* Simple bots now use a different snowflake method for all access. (#57861)

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

* Updating GBP from PR #57861 [ci skip]

* Automatic changelog compile [ci skip]

* Defines the interrogation room as unique area and not 4 different var edits. (#57612)

* Defines the interrogation room as unique area and not 4 different var-edits

* Fixes the gaping hole in the wall

* We added a new map at the very end.

* Blaseball

* Committing the changes

* Rebuilds the deltastation setup in case it's actually breaking something...

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

* Updating GBP from PR #57612 [ci skip]

* Bump pillow from 7.2.0 to 8.1.1 in /tools (#57906)

Bumps [pillow](https://github.com/python-pillow/Pillow) from 7.2.0 to 8.1.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/7.2.0...8.1.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Adds right-click support to AIs/Cyborgs (#57881)

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

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

* Updating GBP from PR #57881 [ci skip]

* Ice cream revamp: Ice cream is a component and cones can hold multiple servings of ice cream now. (#57415)

* Ice cream rework WIP

* I'm done!

* i'll deal with my verbose engrish at a later date. I'm dead tired.

* linter aaaaaa

* Take a bite!

* FINALLY, A COMPONENT!

* ghost macro.

* Review, typos, beheading of a lame comsig.

* Typo. Now I'm self-obliged to test it again.

* It works.

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

* Updating GBP from PR #57415 [ci skip]

* i shot my own phazon to death and i cry. (#57772)

Co-authored-by: MLGTASTICa <ak9bc01d@yahoo.com>

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

* Updating GBP from PR #57772 [ci skip]

* Fixes admin immovable rods not hitting things (#57890)

Timber did an oopsie in #57850 and made it so rods with a specific target (AKA any spawned by admins either through the trigger event button or the admin smite) quit out of their creation before they started listening for clonging things. Possibly this was partly intended, in case you wanted to spawn a rod that would only hit whatever you designated as your target and nothing else, but this current setup doesn't hit the target either soo something needs fixing.

@Timberpoes let me know what you think and if you were intending for a soft rod option that would only hit the target.

Fixes: #57888

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

* Updating GBP from PR #57890 [ci skip]

* Ghosts can now interact with the crew monitor console. (#57891)

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

* Updating GBP from PR #57891 [ci skip]

* Fixes unbalanced flyperson leg (#57892)

One of Flypeople's legs while facing up is missing a single pixel, causing it all to be unbalanced, this fixes that.

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

* Updating GBP from PR #57892 [ci skip]

* undefined variable wtf *Dies of cringe*

* tgui: ESLint and VSCode settings improvements (#57905)

    Added column 80 rulers to all javascript and scss files.
    Added a "prettier" config to have sensible defaults for those who prefer to use it.
    Added RadarJS (fork of SonarQube's SonarJS). Launchable only via bin/tgui --lint-harder for now.
    Disabled ESLint rule for parens around arrow function arguments, because in TypeScript they're pretty much always required, and I don't want to replace it throughout the codebase.
    Removed unused javascript extensions from tooling (jsx, mjs).

* Automatic changelog compile [ci skip]

* Fixing the undoable experisci arcade experiment. (#57898)

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

* Updating GBP from PR #57898 [ci skip]

* [s] Fixing an infinite loop exception with Move() (#57895)

* Replaces use of handle_atom_del() with Exited() in modular computer hardware. And fixes an issue. (#57387)

Title. The issue being hardware/on_remove() calling /try_eject() even if the holder is being destroyed, which is quirky. I also replaced an instance of /New() with /Initialize() and deleted a troublesome /Destroy().

handle_atom_del() is awful. Nearly every (minus the storage component; it's a tangled trial of mental gymnastic) behavior implemented there can pretty much be moved to Exited() and it'll work just as fine, if not better against edge cases such as recall spells. But that's not the scope of this PR. I'm here to fix #57161.

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

* Updating GBP from PR #57387 [ci skip]

* Highlander + Summon Guns and Magic now uses signals to equip new crewmembers (#57817)

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

* Updating GBP from PR #57817 [ci skip]

* makes holodeck books a holo_effect so they get added to the spawned list (#57909)

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

* Updating GBP from PR #57909 [ci skip]

* Dogs no longer take whatever they're holding/wearing to the grave (#57670)

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

* Updating GBP from PR #57670 [ci skip]

* Turns off cache on docker publish action (#57912)

Maybe it will stop it screaming in pain about missing dependencies.
Publish action suggests alternative of running this as cronjob to update cached version so if this works but is too slow we can change to that.

* Adds a plumbing layer manifold (#57494)

Adds a multilayer plumbing manifold, I also murdered the multilayer duct

You can now alt-click the plumbing RCD to change the layer it prints. I made a whole thing where right clicking changed the settings and you could use that to change machinery aswell. I even did that with the plunger, it was absolutely beautiful. Anyway that drained the life out of me because apparently there's no attack_obj_secondary and afterattack_secondary ALSO called attack_obj (left click). I just hate whoever made it with intensity

Plumbing now uses three layers. They should be easier to navigate. I tried to make layer connecting the same as cross-color connecting, but that would take more of my soul then there is to take

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

* Updating GBP from PR #57494 [ci skip]

* Makes stations more airtight (#57535)

I've gone through delta, meta, and icebox and added some choice windoors, changed some areas around, added some more doors, and changed some other miscellaneous things.

I'll list the full changes in drop downs, for both our sakes

Delta:
<details>
Splits the central hallway into fore and aft central hallways

Adds the spaces that jut out of medbay and sci into the central hallway, rather then having them be a part of
medbay and sci

Adds medbay access locked windoors to the back desk of the medbay reception area

Adds airlocks to both the upper and lower parts of the main hallway
</details>

Meta:
<details>
Gives the storage wing another set of firelocks, and two fire alarms. It didn't have any alarms in the first place, so hopefully this helps things

Adds the spaces that jut out of medbay and sci into the central hallway, rather then having them be a part of
medbay and sci

Replaces a small bit of the science area with nanite lab, to prevent a breach near xenobio causing fire alarms
at the front of sci

Adds a windoor in front of the ORM to block air

Adds a wall behind a smart fridge in chemistry
</details>

Icebox:
<details>
Added airlocks between arrivals and the port hallway, and the escape hallway and the starboard hallway

Added a windoor between the kitchen and the bar
</details>

## Why It's Good For The Game

Cuts delta's main hallway in half, with the goal of reducing fire alarm strain. Some thoughts on this would be nice, I don't want to make everything else that uses areas worse just because fire alarms are dumb, and I'm worried that's what I've ended up doing here.

I've also added the portions of medbay/sci that jut out into the main hallway into the main hallway, I think? I could make these into lobby areas, but I'm not sure if that's appropriate or not.

Adds a few windoors and airlocks to better section off portions of the station, this should reduce the amount of mass gas spreading that can occur.

My goal here is to reduce the amount of uninteresting gas movement and make firelocks less hellish when there's a breach

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

* Updating GBP from PR #57535 [ci skip]

* Move a signal that is randomly seperated from others of it's kind (#57914)

Co-authored-by: actioninja <actioninja@criticalaction.net>

* Fix plant trash from grown food not inheriting their proper seeds (#57924)

This PR fixes plant trash not getting the seed from their parent.

trash_type is a type path, not an instantiated object. istype always fails trying to use it on trash_type. ispath is the correct helper to use here, because it's a type path and not an object.

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

* Updating GBP from PR #57924 [ci skip]

* Makes deadchat control's examine only shows up for ghosts (#57926)

This PR early returns the on_examine proc for deadchat control if the examiner is not an observer.
So, only ghosts (deadchat) are allowed to see if something is under deadchat control. Humans don't need to know (or shouldn't know) if deadchat is expanding its reach into the physical realm.

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

* Updating GBP from PR #57926 [ci skip]

* Adds materials to PDAs (#57923)

Puts a small amount of iron, glass, and plastic into a PDA 'cause that sort of material usage makes sense to me

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

* Updating GBP from PR #57923 [ci skip]

* Automatic changelog compile [ci skip]

* Adds sticking metallic kitchenware into APCs (#57910)

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

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

* Updating GBP from PR #57910 [ci skip]

* Bane AI (#57771)

We take Gotham from the corrupt! The rich! The oppressors of generations who have kept you down with myths of opportunity, and we give it back to you...the people...Gotham is yours. None shall interfere, do as you please!

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

* Updating GBP from PR #57771 [ci skip]

* Splits winter coats/hoods into their own sprite file (#57896)

Moves the winter coats and their hoods into their own sprite file.
335 icons in one of the files got lowered to 289 after moving 46 wintercoat icons to their own file.
Renames some icons because they had a long name.

* Updating GBP from PR #57896 [ci skip]

* remove double pen door from meta xeno (#57879)

door double removal

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

* Updating GBP from PR #57879 [ci skip]

* Resprites ventriloquist dummy (#57863)

## About The Pull Request

Resprites the ventriloquist dummy  #https://github.com/tgstation/tgstation/projects/6#card-2814241

## Why It's Good For The Game

The current sprite is just the assistant doll cut in half. This gives it a unique sprite and also makes it so that the hands line up with the item better than the current sprite. It's also a lot creepier (and animated!)

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

* Updating GBP from PR #57863 [ci skip]

* Fixes missing pixel on envirosuits (#57849)

## About The Pull Request

Adds 1 pixel to every evirosuit side sprite except the prototype.  

## Why It's Good For The Game

The current envirosuit sprites all have a single pixel missing on the foot, which causes the foot to be visible. This pixel is there on the prototype, but all the others are missing it.  This PR adds 1 pixel to each side sprite to cover it up.

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

* Updating GBP from PR #57849 [ci skip]

* Updates round tips (#57927)

Deals with any mention of cloning, intents, and a few outdated mechanics

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

* Updating GBP from PR #57927 [ci skip]

* Thermomachine update (#57918)

This PR adds an UI button that allow the players to decide if use enviromental heat or red port pipe (it will have an error if the choice is not working for some reasons, like not having moles in the pipes/air, not having pipes connected at all, etc)
This also fix the issue of having roundstart freezers heating up rooms because the waste pipe didn't have any gas

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

* Updating GBP from PR #57918 [ci skip]

* Improves status bar coverage (#57916)

This PR makes sure all MouseEntered() procs call their parent, which handles the status bar. This fixes instances where the status bar was missing, for example when you hovered over the ghost buttons, you would not be shown a name of the button, but completely different object, like "space", which was very misleading. This also means that the new status bar should have better parity the with the old status bar, which also showed these things.

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

* Updating GBP from PR #57916 [ci skip]

* Create explicit warning if not building with CBT (#57931)

Adds a new CBT define which is automatically created when building. If this define is absent, the build will fail.

This is what Cyberboss tried to do with USE_BUILD_BAT_INSTEAD_OF_DREAM_MAKER.dm, but couldn't.

The reasoning behind this is CBT is already a requirement to build a fresh project, otherwise the tgui bundle files won't exist. This gives a readable error to go along with that. However, you can currently build once then just use Dream Maker. This is a footgun - not only are we already adding new things to CBT like tgfont which will fail later on, but also it will create weird scenarios when we add tasks to CBT that don't immediately fail if not ran, or otherwise create out of sync builds.

Also replaces rmSync with unlinkSync, which works on older Node versions.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Additional CTF maps (#57230)

This pull request adds a map loader as well as new maps to CTF. When a game starts a CTF map will be selected at random and will be playable by ghosts.

As well as this new functionality CTF now fully supports 4 teams. A green and yellow team have been added complete with both standard and instagib gear.

At current five maps are planned:
Classic - the original map we all know and love
Four Side - A four team CTF map where all teams compete over one flag
Downtown - Terrestrial city themed map
Limbo - Wizard themed map featuring portals and uses KOTH rather than CTF
Cruiser - Space themed map utilizing the powerup system

Random maps are selected on game load
Support for four teams added

Why It's Good For The Game

CTF has been more or less the same on the surface since its creation. This PR allows for some much needed map variety which will increase replay value. CTF is far more regularly played then mafia due to its fast rounds and common use during round end delays and I believe that it deserves a boost in content.
Changelog

cl
add: CTF can now selects a random map at game start
add: CTF now supports four teams
add: Gear for yellow and green CTF teams has been added
add: CTF ID cards for all 4 teams have been added - courtesy of maxymax13
add: a new CTF map, Four Side has been added
add: a new CTF map, Downtown has been added
add: a new KOTH map, Limbo has been added
add: a new CTF map, Cruiser has been added
fix: KOTH capture points retain their sprites after being claimed
/cl

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

* Updating GBP from PR #57230 [ci skip]

* Implements Plant Biotype (#57108)

Implements a plant biotype for plant based mobs. Changes the wood golem mob to be an organic, humanoid, and plant biotype---because wood is an organic substance, not a mineral.

This additionally adds the ability for plantbgone/weedkiller to deal damage to plant biotypes.
Why It's Good For The Game

There's a curious lack of a defined plant biotype, despite plants sharing a unique number of traits. Ideally, this behavior can be more consistently implemented with something like biotypes. A minor example of this is utilized in this PR: weedkiller and plantbgone impacting plant-like mobs, which is what you'd expect.
Changelog

cl
add: Plant-like mobs are now impacted and take damage from plant-b-gone and weedkiller reagents
add: Plant-like mobs can be health scanned with a plant analyzer
add: Plant-like mobs are impacted by the floral gun in the same manner pod people are
/cl

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

* Updating GBP from PR #57108 [ci skip]

* fix (#57900)

Fix missing cable from upper atmos apc
Fix wrong area in north-west corner resulting in airlock not working

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

* Updating GBP from PR #57900 [ci skip]

* Add note about rust-g for building on Linux (#57622)

This PR adds a minor note about needing to compile rust-g to Linux building instructions. I'm not sure if this is the appropriate place for it, but I don't see a better place to put it.

* cyborg lollipop launchers can no longer spam timers (#57786)

About The Pull Request

Cyborg treat dispensers now have a maximum treat storage capacity of 5 treats instead of 30 treats, and recharge their treats at a rate of one treat per 10 seconds instead of one treat per second.

To compensate for this, the damage of gumballs and lollipops that have been launched from an emagged cyborg has been increased from 3 to 10.

Launched gumballs and lollipops will no longer delete themselves after 2 minutes (if not equipped).

The 2u of omnizine in each cyborg lollipop has been replaced by 2u of psicodine. The contents of normal lollipops have not been modified.

Cyborg cookie dispensers can now only dispense a cookie once every 10 seconds (instead of once per second). Non-cyborg cookie dispensers no longer self-recharge, but can now accept compressed matter cartirdges for reloading purposes. Support has been added for other types of RSFs to have use cooldowns.
Why It's Good For The Game

The self-deletion mechanism was apparently causing timer spam, so I reduced the amount of treats that cyborgs could spam out (and the rate of that spamming) so that the mechanism would no longer be necessary. I increased the damage of launched treats to compensate to keep the emagged treat launcher from becoming a very sad joke of a weapon.

Floyd threw a fit when he learned that cyborgs could freely dispense lollipops that contained omnizine, so I replaced the omnizine with psicodine, a chem that is perhaps more appropriate for lollipops (it calms people down), doesn't do much of importance, and can't react to form any rare or interesting chems.

The cookie dispenser thing is also an attempt to appease Floyd, since he doesn't like cyborgs being able to spam food everywhere.
Changelog

cl ATHATH
balance: Cyborg treat dispensers now have a maximum treat storage capacity of 5 treats instead of 30 treats, and recharge their treats at a rate of one treat per 10 seconds instead of one treat per second. To compensate for this, the damage of gumballs and lollipops that have been launched from an emagged cyborg has been increased from 3 to 10.
del: Launched gumballs and lollipops will no longer delete themselves after 2 minutes (if not equipped).
balance: The 2u of omnizine in each cyborg lollipop has been replaced by 2u of psicodine. The contents of normal lollipops have not been modified.
balance: Cyborg cookie dispensers can now only dispense a cookie once every 10 seconds (instead of once per second). Non-cyborg cookie dispensers no longer self-recharge, but can now accept compressed matter cartirdges for reloading purposes. Support has been added for other types of RSFs to have use cooldowns.
/cl

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

* Updating GBP from PR #57786 [ci skip]

* Minor tramstation and train-rail-fluff fixes (#57639)

Fixes an incorrectly-shifted sprite for floor tram rails and adds some missing tram-rail fluff objects
Also does some minor renaming (railing -> rail)



cl
fix: Nanotrasen railroad engineers have done some minor repairs to their in-station tram rails.
/cl

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

* Updating GBP from PR #57639 [ci skip]

* Automatic changelog compile [ci skip]

* Paper bins show the paper inside them (atomised) (#57907)

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

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

* Updating GBP from PR #57907 [ci skip]

* 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

* Updating GBP from PR #57728 [ci skip]

* fix (#57902)

Fix missing tile under airlock above turbine in kilo station

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

* Updating GBP from PR #57902 [ci skip]

* You can now put food on plates, and plate no longer materialize out of nowhere as you cook (#57770)

* All plates removed.
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: DeAndre <robustness13@hotmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>

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

* Updating GBP from PR #57770 [ci skip]

* tgui strip panel + strippable element (#57889)

Completely removes show_inv and replaces it with /datum/element/strippable. It takes a list of instantiated /datum/strippable_item which communicate which slots are available and how to interact with them. This element has been added to humans, alien humanoids, parrots, and corgis.

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

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

* Updating GBP from PR #57889 [ci skip]

* Adds explorer drones / adventures. (#57851)

A new side-job for cargo. Prepare and launch exploration drones at distant sites to encounter weird adventures, collect loot and expand the station cargo network. Adventures - the main content type here, can be written by anyone without any knowledge of programming. The purpose here is creating an way of interesting way of delivering lore (and adding some new job content/cargo expansion method).

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Updating GBP from PR #57851 [ci skip]

* Fermichem 2.6 - Adds the HPLC: a new roundstart method of detecting purity, as well as a method of partially purifying reagents (#57858)

Adds the High-performance liquid chromatography machine - a new roundstart method of detecting purity, as well as a method of partially purifying reagents.

A single machine has been added to each of the 4(5) maps - this lets people determine their purity based off the size of the green (pure portion) to the orange (impure portion) of a reagent's peak shown on the mas spectroscopy display. If a reagent is impure - it will be displayed as red.

In addition to this function, the HPLC can purify reagents by selecting a range of them and pressing the purify button. This will cost some time depending on the mass of the reagent and will purify it up it's default purity (in the tweaked reagent cases - 75%, for the reagents I've yet to get to - 100%). It will also reduce the volume accordingly (so in essence you are reducing the volume of the impure parts).

The sprite itself will indicate when it's running, so you don't need to be nearby it or use the UI to know when it's done

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

* Updating GBP from PR #57858 [ci skip]

* Partially revert reaction chamber (#57855)

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

* Updating GBP from PR #57855 [ci skip]

* Blobbernaut HUD improvements (#57922)

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

* Updating GBP from PR #57922 [ci skip]

* Crops the cached ID card icon so it is less obnoxious in tgui chat. (#57935)

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

* Updating GBP from PR #57935 [ci skip]

* Some minor atmos cleanup (#57933)

Fixes mining not making turfs active, I forgot to add a type arg when I added one to AfterChange(). This isn't the only source of the issue, but it's the most prevalent one

Cleans up total_moles_specific() slightly, there's no point iterating a list if you already have the gas id. Removes a null assignment and if check, they don't catch anything as things are now, and if someone passes null to the proc I want a runtime

Oh and I reordered a bit of atmospherics.dm to make a comment make sense. Don't worry about it

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

* Updating GBP from PR #57933 [ci skip]

* emissive blockers are now just an overlay (with kickass fucking graphs). FUCK YOU MAPTICK (#57934)

currently emissive blockers are objects added to the vis_contents of every item. however mutable appearances as overlays can serve this role perfectly well and according to my tests should cause less maptick per item. for mobs mutable appearances dont work for reasons i dont understand so instead this adds the em_block object to overlays instead of vis_contents. these both use atom/movable/update_icon() now

graphed test results in pr

* Updating GBP from PR #57934 [ci skip]

* Converts trait comments to doc comments (#57941)

This converts the existing comments traits had `#define TRAIT_BLA "bla" // yadda yadda` to proper doc comments so that they show with SDMM and the codedocs website.

People just reference old code when writing new code, and people not using doc-comments for traits is something that comes up often.

* Automatic changelog compile [ci skip]

* Gibs/Dead bodies no longer produce miasma (#57957)

* Gibs/Dead bodies no longer produce miasma

Miasma production as it is now is too little over too long a time span, and it just ends up spreading across the
station and having little effect. My goal here is to remove a source of uninteresting gas from the station's
air, and make corpses and gib piles more infectious.
I've placed the cap on disease payout at a strength of 7, so there's a slight chance of a positive disease, but
I think it's counteracted by the danger presented by just infecting yourself till you get what you want.

I've rewriten the rot component to just run a percent chance to infect someone with a disease based on the type
of rot, and moved almost all of its behavior to signals. There's one portion I can't rewrite without making
significant changes to how I handle atmos sensitivity, so that'll come later.

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

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

* Updating GBP from PR #57957 [ci skip]

* [Ready] Fermichem part 2.3 Adds a new reagent: Eigenstasium (#56918)

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

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

* Updating GBP from PR #56918 [ci skip]

* Bump pyyaml from 5.3.1 to 5.4 in /tools (#57956)

Bumps [pyyaml](https://github.com/yaml/pyyaml) from 5.3.1 to 5.4.
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/master/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/5.3.1...5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Syndicate Shuttle Console cannot be deconstructed via tools (#57962)

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

* Updating GBP from PR #57962 [ci skip]

* Metastation's Nanite lab RC is now named properly (#57952)

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

* Updating GBP from PR #57952 [ci skip]

* Sentience fun balloon QoL (#57928)

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

* Updating GBP from PR #57928 [ci skip]

* Examine atmos machinery will tell the piping layer (#57937)

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

* Updating GBP from PR #57937 [ci skip]

* fix (#57917)

move layer adaptors into another spot in engi and toxins to prevent distro and waste mixing

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

* Updating GBP from PR #57917 [ci skip]

* Thermomachine balance (#57921)

Changed how much internal heat_capacity the machine has, from 5000 to 7500, this to try and increase the speed of cooling/heating that was a bit slower than the old version
Added a check that stops the machine from cooling when set to heater and heating when set to cooler
Changed efficiency to be clamped between 0.65 and 1 (lessen the power spikes)
Power usage reduce on lower efficiency if above a certain amount
removed else if when checking to use enviroment heat (allow to use enviroment to cool even with the red port connected and with gas)

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

* Updating GBP from PR #57921 [ci skip]

* Moth eyes now have their own obj and mob sprites (#57893)

imageadd: Moth eyes now have a unique sprite that reflects on your mob.

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

* Updating GBP from PR #57893 [ci skip]

* Improves spoon in hand sprites (#57938)

fix: Spoons are consistently rendered in the correct hand on the player's sprite

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

* Updating GBP from PR #57938 [ci skip]

* Fixes the apocalypse rune alt appearance for humans. (#57965)

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

* Updating GBP from PR #57965 [ci skip]

* Cyborgs now use the same icon states for charge screen alerts as ethereals. (#57966)

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

* Updating GBP from PR #57966 [ci skip]

* lazy tramstation fix (#57843)

Fix an already fixed issue with xenos and other mid-round antags from spawning inside atmos chambers.
Copy-paste very bad

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

* Updating GBP from PR #57843 [ci skip]

* ai_behaviour cleanup ft. less chatty tourists (#57945)

Each of these lines is punctuated by an audio sting every 8 seconds without refrain.

So, this PR adds a new vocalisation limiter to tourist bots who can't find a seat. Instead of always vocalising every 8 seconds, they're now guaranteed to vocalise the first time and then have a 60% chance to have vocalised again each minute thereafter.

Tourists waiting for food now have an approx 40% chance to have vocalised in any given minute. This should be considered alongside the fact that multiple (up to 10) tourists can be present at any given point in time and with the difficulty in players killing them, they can create a lot of unnecessary audio spam. If the tourists are being served rapidly, they're also giving regular guaranted audio stings on top of that which compounds the chances any given bot will output an audio cue.

The AI controller now passes the larger value between the behaviour's `action_cooldown` in real seconds (as opposed to deciseconds) and delta_time when performing behaviours. This has no gameplay changes outside of those documented in this PR, since no AI behaviours with cooldowns greater than the AI controller's delta_time attempted to use delta_time.

Finally, customers now have 10 minutes of patience before leaving instead of 100 minutes of patience due to a minor oversight where their patience was in deciseconds while delta_time was subtracted in seconds.

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

* Updating GBP from PR #57945 [ci skip]

* Further updates the rounds tips (#57951)

Removes and/or updates some more tips that #57927 missed.

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

* Updating GBP from PR #57951 [ci skip]

* fixes jungle grass having wrong broken states (#57967)

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

* Updating GBP from PR #57967 [ci skip]

* Switch tgui tooltips to popper.js (#57992)

* Preliminary popper support

* Switch tooltips to popper.js

* Documentation, change DEFAULT_PLACEMENT

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

* Updating GBP from PR #57992 [ci skip]

* Quick-Create-Antagonist tweaks (#57913)

Gives admins control of how many antags they spawn, instead of assuming a maximum of (generally) 3.
image

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

* Automatic changelog compile [ci skip]

* Renames TRAIT_MONKEYLIKE to TRAIT_DISCOORDINATED_TOOL_USER and fixes an issu with jungle fever (#57897)

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

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

* Updating GBP from PR #57897 [ci skip]

* Corrects span and a typo with emagged pAIs (#57981)

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

* Updating GBP from PR #57981 [ci skip]

* Removes total_moles_specific, just use gaslists normally. I don't know how I missed this (#57973)

* Refactors pellet_cloud/create_cassing_pellets to not sleep (#57974)

Co-authored-by: MLGTASTICa <ak9bc01d@yahoo.com>

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

* Updating GBP from PR #57974 [ci skip]

* Fix Tooltip documentation (#58013)

* 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.

* Updating GBP from PR #57800 [ci skip]

* Reorder the list of items in more outfits. (#57801)

On my quest to make outfits easier to read and fix some small mistakes by applying a priority order.

ID > uniform > suit > backpack > other clothing in alphabetic order > pockets > hands > others

Moved the base/assistant plasmaman outfit from the middle of the standard file to the top of the plasmaman outfit file.
Reorganized the plasmaman outfit order to have jobs within a department close to each other.
Moved the Death Commando outfit into the ERT file together with a line that adds mindshields to CentCom outfits because I had to dig to find that a long time ago...

Also fixes detective plasmaman spawning with a worse headset and plasmamen prisoners spawning with a different shoe.
Like... how no one has seen that plasmaman spawn with the wrong headset? Do we have no plasmaman sec? Yes I know the answer...

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

* Updating GBP from PR #57801 [ci skip]

* Fix sql changelog (#57972)

Fixed bad SQL that I originally wrote in the changelog for 5.11, anyone trying to update their schema from < 5.11 up would notice this.

* Test newest version of gbp-action (#57980)

Read about it here: tgstation/gbp-action#28

TLDR: Less race conditions, and all logs are now pushed to a separate branch. The new location of gbp-balances.toml is in the gbp-balances branch. Will most likely be able to delete the one in master so people don't get confused.

This required a workflow update, and so was not directly pushed to master. This currently uses my PR branch directly so that I can make changes for anything that doesn't work. When it is solid, I will push it to master and we will go back to gbp-actions@master, or some pinned version.

* Fixes mech HUD's not being properly removed (#57964)

Fixes mech hud's not being removed when leaving the odysseus or clarke

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

* Resprites the fork! (#57490)

About The Pull Request

This PR resprites the fork.

image
Why It's Good For The Game

The old fork was really tall and black.

Forks are really hard to sprite but i think this is an improvement.
Changelog

cl
imageadd: The fork has a new sprite.
/cl

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

* rpds can now interact with the unwrench upgrade (#57959)

Adds the functionality to upgrade the RPD by 'slapping' the unwrench upgrade disk with the RPD itself

It doesn't exactly revolutionize gameplay and at most allows engineering cyborg players to at least upgrade their RPD to unwrench saving them a headache and a module slot when doing their thing I suppose

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

* *begins beatboxing like the friday night funkin dad*

pp pp ppkk pk pk pk pkpp pk pk ppk ppp p yeah

* this made a whole area dissapear

lole

* Wtf TGU is done???

i think

* my brain is so fucking large

i am smart

* Consider your unused variable SANITIZED

*in a very low tone of voice*
bitch

* fIXES ME BEING DUMB

Mirror bot fan VS TGU Enjoyers
*insert that one funny video of the british guy all angry staring at the camera with the greyscale chad flexing his muscles to the right*

* DEAD ATMOS WTF *dies of cringe*

* POTATO WHY

Lowers the disease chance for a bit
this is just so we don't instantly die from disease

* Does thingy

Adds cameras to drone area, adds a light so freezer room feels less dark

* light

yeah

* Gets the new fulp commits over here

yeah

* gets us updated with TG once more

should have the commit that makes TGUI not lag you for so long :)

* my life be like

ooh aaahh oooh

* ooh aaah oooh aah

fulp update

* e e  eo a o eo e e e e e ao e o eo o o o o

* m

* when the linter is failing..

* Annotate L-ints

* sickness for nothinggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg

* m

* sleep through self loaaaaaaaaaaaaaaaaaathing

what remains of my emotionnnnnnnnnnnnnnnnn
only serves to play this gameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

* 'cause you're the only one who'd understand (The meaning of this!)

Oh My God
I try and I try and I try to make you listen to me
I try to call you every day
I'm rehearsing what to say when the truth comes out (Of my very own mouth)
I've been working on a unified theory
If I make it through tonight everybody's gonna hear me out
'Cause I'm the right one
On my touch-tone, touch-tone telephone
I'm the only one, hey!
On your A.M., A.M. radio
Don't hang up yet, I'm not done
I'm an expert, I'm the one
The one who was right all along
Better to be laughed at than wrong
I'm an expert in my field
UFOlogy, yes, it's all real
Ancient aliens, it's all true
I'm an expert just like you
And like you, I'm a genius before my time
Disbelieving, that's the real crime
Pretty soon they'll discover me in the Super-Sargasso Sea

* why

* i swear to god

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: MLGTASTICa <61350382+MLGTASTICa@users.noreply.github.com>
Co-authored-by: MLGTASTICa <ak9bc01d@yahoo.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: TheVekter <TheVekter@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Rob Bailey <actioninja@gmail.com>
Co-authored-by: actioninja <actioninja@criticalaction.net>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Horatio22 <69338705+Horatio22@users.noreply.github.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Fox McCloud <Fox-McCloud@users.noreply.github.com>
Co-authored-by: Cyprex <35031555+Cyprex@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Emmanuel S <mrdoomboyo@gmail.com>
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: bloons3 <bloons3@users.noreply.github.com>
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@protonmail.com>
Co-authored-by: Randomguy523 <55070076+Randomguy523@users.noreply.github.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: DuffCreeper <treyparn@yahoo.com.au>
2021-04-02 18:45:57 -06:00
Tad Hardesty
f80836d00d Fix broken dmdoc crosslinks (#53896)
- Backtick-escape code samples which contain `[]` syntax.
- Fix all crosslinks to nonexistent symbols.
- Somewhat improve docs for qdel defines, research defines, dynamic mode, and others.
- Remove unused bloodcrawling defines.

Some crosslinks to defined but undocumented symbols remain. For BYOND builtins, a future dmdoc version may link those symbols to their entries in the DM reference. Other symbols could be documented by a future PR.

New "file" crosslinks as used in `research.dm` are slated for release in a future dmdoc version.
2020-09-23 03:47:44 -03:00
nemvar
b87f65d95e Converts ALL typepaths to lowercase (#51642)
* Case of lower

* More changes

* Ruins the nice 420 diff, brainfart when doing the second batch of conversions

* More changes

* Next batch. I think

* Converts even more paths

* Restarts bots

* Capital Free Zone

* Come on travis, do something

* Renames areas

* Bots, please stop dying

* Updates CONTRIBUTING.md and updates a few paths I missed.

* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
2020-06-17 20:47:57 -03:00
Firecage
f933284bf8 Converts the main timsorts file from relative pathing to absolute pathing. (#48085) 2019-12-05 18:08:26 +00:00
spookydonut
2591ce17a6 Travis EOF newline detection v3 (#47539)
* scream

* aaa

* aaa

* new one
2019-11-04 19:16:50 -08:00
Cyberboss
3410e72b79 Makes sorts work before GLOB 2018-01-09 14:25:25 -05:00
ShizCalev
8eafaccc88 Cleans up unused code 2017-11-20 00:03:33 -05:00
shizcalev
99624b8e74 further spellchecking 2017-07-31 23:09:08 -04:00
cerid
9008f8a2b2 sortMerge is broken
Fixes for sortMerge()
2017-05-22 02:29:40 +01:00
Cyberboss
9e1ef0ffe2 Global variable wrappers (#25325)
* Add the system for managed global variables

* Travis ban old globals

* So you CAN inline proccall, that's neat

* Fix that

* master.dm

* Remove the hack procs

* Move InitGlobals to the proper spot

* configuration.dm

* Fix the missing pre-slash

* clockcult.dm

* This is probably for the best

* Doy

* Fix shit

* Rest of the DEFINES tree

* Fix

* Use global. for access

* Update find_references_in_globals

Always hated that proc

Whoever made it must've bee a r e a l idiot...

* __HELPERS tree

* Move global initialization to master.

Fix the declaration

* database.dm

* Dat newline

* I said DECLARATIVE order!

* Here's something you can chew on @Iamgoofball

* game_modes.dm

* Fix this

* genetics.dm

* flavor_misc.dm

* More stuff

* Do it mso's way. Keep the controllers as global

* Make master actually see it

* Fix

* Finish _globalvars/lists

* Finish the rest of the _globalvars tree

* This is weird

* Migrate the controllers

* SLOTH -> GLOB

* Lighting globals

* round_start_time -> ticker

* PAI card list -> pai SS

* record_id_num -> static

* Diseases list -> SSdisease

* More disease globals to the SS

* More disease stuff

* Emote list

* Better and better

* Bluh

* So much stuff

* Ahh

* Wires

* dview

* station_areas

* Teleportlocs

* blood_splatter_icons

* Stuff and such

* More stuff

* RAD IO

* More stuff and such

* Blob shit

* Changeling stuff

* Add "Balance" to changelogs

* Balance for changelog compiler + Auto Tagging

* Update the PR template

* hivemind_bank

* Bip

* sacrificed

* Good shit

* Better define

* More cult shit

* Devil shit

* Gang shit

* > borers

Fix shit

* Rename the define

* Nuke

* Objectives

* Sandbox

* Multiverse sword

* Announce systems

* Stuff and such

* TC con

* Airlock

* doppllllerrrrrr

* holopads

* Shut up byond you inconsistent fuck

* Sneaky fuck

* Burp

* Bip

* Fixnshit

* Port without regard

* askdlfjs;

* asdfjasoidojfi

* Protected globals and more

* SO MANY

* ajsimkvahsaoisd

* akfdsiaopwimfeoiwafaw

* gsdfigjosidjfgiosdg

* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!

* facerolll

* ASDFASDFASDF

* Removes the unused parts of dmm_suite

* WIP

* Fix quote

* asdfjauwfnkjs

* afwlunhskjfda

* asfjlaiwuefhaf

* SO CLOSE

* wwwweeeeeewwwww

* agdgmoewranwg

* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?

* Fix syntax errors

* 100 errors

* Another 100

* So many...

* Ugh

* More shit

* kilme

* Stuuuuuufffff

* ajrgmrlshio;djfa;sdkl

* jkbhkhjbmjvjmh

* soi soi soi

* butt

* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING

* lllllllllllllllllllllllllllllllllllllllllll

* afsdijfiawhnflnjhnwsdfs

* yugykihlugk,kj

* time to go

* STUFFF!!!

* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!

* ngoaijdjlfkamsdlkf

* Break time

* aufjsdklfalsjfi

* CONTROL KAY AND PRAY

* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

* Goteem

* Fix testing mode

* This does not belong in this PR

* Convert it to a controller

* Eh, fuck this option

* Revert controllerization Ill do it some other time

* Fix

* Working controllerization

* FOR THE LOVE OF CHRIST PROTECT THE LOGS

* Protect admins and deadmins

* Use the inbuilt proc
2017-04-06 23:26:13 -06:00
carnie
889fca61ca Fixes timSort 2015-01-15 23:00:26 +00:00
carnie
0537e75358 Accidentally left some duplicate code in, which was used to keep sortInsert's calls to binarySort() separate from timSort's calls to binarySort 2014-09-02 18:35:47 +01:00
carnie
05b76b123e TimSort for byond:
RESULTS:
sorting 10 random lists of length 3 to 303 in increments of 3
(Meh, I forgot to refresh this one, there were only 338 trials rather than 1010, can't be bothered to recode the test)
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           0.672       16.141       16.243       171226  <--TG's current mergesort(recursive, hence the higher number of calls)
/proc/sortTim                                            0.008        3.278        3.274          338  <--TimSort
/proc/sortMerge                                          0.011        2.839        2.855          338  <--new mergesort
/proc/sortInsert                                         0.010        2.124        2.103          338  <--binary insertion

Sorting 10 presorted lists with 3 inversions (3 elements shuffled up), Lists of length 3 to 303 (increments of 3)
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           1.290       23.056       23.254       308050	<--rather cataclysmic
/proc/sortMerge                                          0.015        4.077        4.068         1010	<--
/proc/sortInsert                                         2.639        3.472        3.464         1010	<--
/proc/sortTim                                            0.014        1.567        1.576         1010	<--TimSort is faaar more effective in these cases,
Timsort can exploit runs effectively

sorting 10 presorted lists which have been reversed
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           1.234       23.193       23.295       308050
/proc/sortMerge                                          0.023        4.681        4.686         1010
/proc/sortInsert                                         2.875        3.750        3.765         1010
/proc/sortTim                                            0.020        3.294        3.284         1010	//This can be lower by using a different comparison method
 *Corrected: /proc/sortTim                                0.017        0.665        0.663         1010	//Using a non-strictly ascending comparison

sorting 10 presorted lists
                                    Profile results (total time)
Proc Name                                             Self CPU    Total CPU    Real Time        Calls
-------------------------------------------------    ---------    ---------    ---------    ---------
/proc/sortList                                           1.199       21.391       21.517       308050
/proc/sortMerge                                          0.018        3.724        3.729         1010
/proc/sortInsert                                         2.497        3.302        3.309         1010
/proc/sortTim                                            0.024        0.586        0.584         1010

Summary, all the new procs are faster than the old ones. TimSort is ever so slightly slower than Insertion and Merging on random lists. But on lists with natural runs (partially sorted data) it is far faster than all others.

The old merge sort was removed and replaced with timSort. Other algorithms are provided as alternatives.

All algorithms use a central datum, so accept many of the same parameters. For instance, setting associative=1 will make them sort associative lists by their associated values, rather than keys.
They also accept a cmp argument. This allows sorting of lists of datums, text, numbers or whatever. The pre-existing helpers in lists.dm were rewritten as examples.
2014-09-01 11:29:49 +01:00