Commit Graph

26711 Commits

Author SHA1 Message Date
Ryll Ryll
83ec7a698f Adds pulling rabbits from top-hats (#56773)
This PR makes it so using a wand on a top-hat makes a rabbit appear in
your hand! Fun! There's a 10% chance that instead of a cute bun you get
angry bees though, but a true performer will soldier on anyway. You can
now also scoop up rabbits in your hands, and scooping animals only
requires one free hand to do so instead of all your hands being free.
2021-02-22 10:16:12 +00:00
Ryll Ryll
9d45916ee8 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?
2021-02-22 15:14:33 +13:00
Sza'Thi
1722da0d29 Improved visual clarity for health scanner text (#57076) 2021-02-21 14:42:12 -08:00
Fikou
eea0599511 moves gun related icons to guns folder (#57077)
moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd
2021-02-21 13:58:33 -05:00
Cimika/Lessie/KathyRyals
5c45a259e0 Buffed atmos holofans. Added to CE locker. (#57074)
Atmos holofans can now make six holos instead of three. Swapped the (useless) engineering holo with the atmos holo in the CE locker.
2021-02-21 13:55:23 -05:00
MrMelbert
466a54383d Updates the lifebringer flavor text to be less ambivalent about their goals (#57059) 2021-02-21 04:23:55 -08:00
Mothblocks
3502284268 Fix multiple high impact rulesets being chosen (#57036)
About The Pull Request

This was code I didn't touch but just never worked. I'm pretty sure this is the fix.
Changelog

🆑
fix: Fixed multiple high impact rulesets being chosen on Dynamic.
/🆑
2021-02-21 13:14:59 +01:00
Tlaltecuhtli
152fd762a1 improves fire extinguisher code, and makes fire extinguisher water go through machinery, lockers, and crates (#57004) 2021-02-21 03:31:51 -08:00
Fikou
98c3a4ff0b cult construct stuff (#57027)
edits sprites for wizard cult constructs to have more sheen
fixes wizard cult constructs not working
makes soulstone code a bit cleaner i think
makes cult spells use second defines
fixes wraith jaunts being invisible
2021-02-20 23:16:35 -03:00
Arkatos1
0e5c7041e2 Auxiliary Base construction fixes (#56969)
* Base construction fixes
2021-02-20 22:39:17 +01:00
Time-Green
ad358635a1 Fixes chemscan runtiming on mindless (#57046) 2021-02-20 20:53:52 +00:00
c420-o
08b9927aa4 Add a new admin weapon: foam finger that shoots missiles (#57013)
An admin only rocket firing foam finger has been added. There is also
a toy version available from arcades that is just a giant foam finger.
2021-02-20 15:08:53 +00:00
Timberpoes
6d8d0a415e Fixes restraint alerts doing nothing when clicked. (#57034) 2021-02-20 00:36:59 -08:00
cacogen
d379fb9555 Crafting menu tells you which colour of crayon is needed (#56950)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-19 15:10:06 -08:00
Thalpy
fa575db934 Fermichem part 2.2 Adds new tools, crafts and methods for ghetto chemists to handle the new reaction mechanics. (#56871)
Since reactions now require a bit more involvement from chemists, ghetto chemistry is a bit harder. This seeks to help some of those problems by providing new tools for those without a chem heater/reaction chamber.

Also some of these might be useful for chemists in the lab too!

Here's what you can make:
image
the burners are similar to candles - except they burn their internal reagents. The temperature they heat by is dependant on the flame, fuel and oil burn for a lower amount, ethanol for a higher amount and plasma for the highest amount. They can be put on tables and bonked with beakers for a quick way to heat them (similar to lighters). You'll need to light them with a match or lighter too, though, and can be put out by use in hand.

The thermometer looks like this and gives you temperature readings!
thermom

The pH booklets are the same as before - but you can now craft them by making universal indicator. These are the best way for a ghetto chemist to check their pH, and multiple sheets should be used over a reaction.

The improvised chem heater looks like this, and is a reconfigured space heater, it requires more materials and tools lending itself to a static drug den, but has the best method of adjusting temperature and fighting against exo/endo thermic reactions:
Improv_heater

Finally, the cooling spray lets chemists do the oposite of a lighter on their beaker - cooling the reagents within. In addition, fire extinquishers perform the same function.

In addition ice and universal indicator have been added as reactions.

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-02-19 20:28:48 +02:00
TemporalOroboros
e2e7ccdbdc /mob/living/proc/Life(delta_time) (#55534)
- Makes `/mob/living/proc/Life` and most related procs use `delta_time`
- Procs that had snowflaked timing systems, such as breathing, addiction, and advanced diseases were left unchanged.
2021-02-19 10:24:20 -05:00
TemporalOroboros
e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
Tim
e092545282 Fixes Cigarettes being lit in no-oxygen environments (#56911)
This closes #26487 (Issue about cigs working fine in non-oxygenated enviroments) which has been a known bug for years. Everyone knows how EXTREMELY CRITICAL cigarettes are to game balance. Plasmamen being able to smoke in a room with no oxygen? Spessmen smoking in the hard vacuum of space? What is this madness?!?

I must put an end to these OP tactics.

My changes make it so that if a cigarette has either one mole of oxygen in the current atmosphere or is injected with oxygen reagents, then it can be smoked.

I've also made it so "Space" cigarettes can be smoked in space by changing the default starting reagents to include oxygen. The description was also updated to hint that they can be smoked anywhere.

Also I added a has_gas proc to gasmixtures. I have seen a few places in the code where this can be used and once this gets merged, I will be doing a refactor to clean some code involving it. (bonfires, plasmamen code, etc.)

(Note from lemon, if you use this in the supermatter I will eat you)

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-02-19 01:02:47 -08:00
necromanceranne
e0f6481957 Cleans up living duffel bag code to meet guidelines (#57014) 2021-02-19 00:13:40 -08:00
NotRanged
0427c0c1ba Fixes reflection of hitscan beams against tiles (#56881)
Co-authored-by: Ranged <nickvanderkroon@gmail.com>
2021-02-18 12:56:43 -08:00
Timothy Teakettle
d92a503785 stop people using message all when their pda doesn't allow it (#57005)
Fixes not checking for Send All permissions in Topic.
2021-02-18 18:12:27 +00:00
necromanceranne
5368342573 Adds a plushie sprite for suit storage (#56919)
fix: Adds a sprite for plushies in suit storage slots.
2021-02-18 08:35:58 -05:00
Kylerace
a801e25764 fixes being unable to attach training toolboxes to training units (#56990) 2021-02-18 02:51:34 -03:00
Kylerace
45ccba3809 replaces all instances of ammo_casing/BB to loaded_projectile again without crashing this time (#56989) 2021-02-18 02:50:56 -03:00
Qustinnus
bf6059e42a fixes has_material_type and has_material_category always returning a true value (#56971) 2021-02-17 17:33:26 -08:00
Whoneedspacee
9ee4703133 Icebox QoL minus features (#56472) 2021-02-17 03:17:41 -08:00
Fikou
d40732f7aa you can now open airlocks and firedoors and stuff with a crowbar on combat mode by right clicking (#56960) 2021-02-17 02:40:49 -08:00
Time-Green
3abcf0fe3f Plumbing IV drip (#56920)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-17 02:38:29 -08:00
LemonInTheDark
90682bdb7c Fixes an edgecase where an area can be deleted, but still be stored inside GLOB.sortedAreas, which can cause a runtime on player related Initialize(), which can cause mobs to improperly init. No I don't know why this would happen, but it happen to me. This is an ided commit (#56954)
Fixes an edgecase where an area can be deleted, but still be stored inside GLOB.sortedAreas, which can cause a runtime on player related Initialize(), which can cause mobs to improperly init. No I don't know why this would happen, but it happen to me.
2021-02-17 00:05:39 -05:00
necromanceranne
4d40a03102 Fixes an incorrectly set variable in portaturret code that broke all syndicate shuttle turrets (#56941)
Sets a var that was FALSE to TRUE again, so that these turrets can fire once again.
2021-02-17 00:00:51 -05:00
Qustinnus
e8a7bd566f Hovering your mouse over things now shows their name on the top of the screen (#56729)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-16 18:57:34 -08:00
Qustinnus
ef80ed1935 Addiction rework (#56923)
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-16 18:20:16 -08:00
cacogen
e87ebc783f Can no longer immediately return a wayfinding pinpointer for a costume (#56916) 2021-02-16 15:24:10 -08:00
LemonInTheDark
5c22a0cfc1 Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#56847)
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
2021-02-16 09:18:46 -05:00
TemporalOroboros
9c63024b59 Refactors the Light Eater and gives it some flavortext. Some minor behavior changes included. (#55551)
Converts the effects of the nightmares light eater into a component and a couple elements
Adds some flavor text to the light eater
Makes the effects of the nightmare's light eater dispel if the armblade is destroyed
Probably a net increase in code quality
More flavortext
The nightmare's light eater effect can be dispelled if you are willing to sacrifice the armblade
2021-02-15 19:11:52 -03:00
MLGTASTICa
da0b4f7d1b Glowcap spread endurance loss is 10 times bigger (#56885)
Co-authored-by: MLGTASTICa <ak9bc01d@yahoo.com>
2021-02-15 14:10:40 -08:00
Timothy Teakettle
f6b7665aab [s] stops you purging sec records without being logged in (#56922) 2021-02-15 13:01:21 -08:00
Kylerace
b6551c5000 Gets Rid of Both Sleeps In Transit Tubes, Replaces Them With Timers (#56913) 2021-02-15 12:52:20 -08:00
necromanceranne
efa1f8088f Sprite fixes: Suppressed Sniper Rifles and Donksoft Pistols (#56754)
* Gives the sniper rifle a suppressor overlay so that it no longer shows up as missing a sprite, also fixes donksoft pistols by repathing them from pistols over repathing them from toy saber smgs. Creates a flag for checking if a gun needs a toy overlay, so it is handled in the parent.
2021-02-14 21:33:48 -08:00
Mothblocks
df26df828b Add back hearts for valentines, but in a sane manner (#56900)
Adds back hearts removed by #56897, but in a way that doesn't completely murder timers.

Also made the code a bit better.


Here you can see it on my hideous date.

https://user-images.githubusercontent.com/35135081/107848333-6ec06280-6da7-11eb-91b6-1382380eb3b4.mp4
2021-02-14 23:36:18 -05:00
LordVollkorn
249d25ce08 Portable chem mixer: Integration of fermichem and minor updates to usability (#56894)
- The portable chem mixer now displays pH-values
- It can now dispense 1u of reagents, so buffer solutions can be added carefully
- It can now be loaded with bottles, plastic bottles and condiment bottles (all bottle types that the chem masters/chemistry can make). Beakers also still work of course.
- CTRL+click opens and closes it to switch between filling mode (inventory in which you place beakers and bottles) and dispensing mode (UI in which you dispense to a container)
- When worn on the belt and in filling mode, a left click opens its inventory. No more dragging or alt-clicking needed to open it. (alt-clicking to swap beakers in dispense mode still works, just like the normal dispensers)
- The UI has been resized to, in its default state, make it easier to visually skim through the chemicals in the list
2021-02-14 23:35:43 -05:00
coiax
668955d817 Add gas giant controversy posters (#56830)
* Add official There Is No Gas Giant poster

🆑 ArcaneMusic, coiax
add: Nanotrasen reminds its crew members that the station has never
orbited a Gas Giant, and is engaging in a media campaign to remind
employees of this fact.
/🆑

There is a half remembered fact that Space Station 13 orbits a gas
giant, allegedly due to some entry on a wiki someplace.

Given the vigorous discussion on this subject, it seems appropriate that
this confusion is forever immortalised in poster form.

With thanks to @ArcaneMusic for doing the sprite.

* gas truths

Co-authored-by: tralezab <spamqetuo2@gmail.com>
2021-02-14 23:31:48 -05:00
tralezab
e09101cb4b Pirates are split into three different ghastly crews! (#56264)
Co-authored-by: DeAndre <robustness13@hotmail.com>
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-14 16:55:37 -08:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
cacogen
e86bb7e90b Adds GPS to bounty cubes (#56838)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-14 02:05:43 -08:00
Elli-Skala
8988d6b984 lowers the size of torches, and lets them be made with leafy mushrooms (#56877) 2021-02-13 21:31:23 -08:00
TJatPBnJ
7a8d614ab2 RCDs now use right click to deconstruct (#56864)
RCDs use right click to deconstruct, everything else is functionally the same. The RCD defines also aren't bitflags anymore, they didn't seem to have any reason to be in the first place.
2021-02-14 01:17:37 -03:00
necromanceranne
4b6742cc26 Makes the spy bug pocket protector a suit accessory (#56883) 2021-02-13 19:48:03 -08:00
itseasytosee
f2b9adbc35 Gives wizard constructs a purple theme. Minor construct fixes. (#56758) 2021-02-13 12:43:49 -08:00
MrMelbert
4f7a73c3e0 Moves the plant analyzer chem mode to right click + lets you read out a tray's chemical contents (#56836) 2021-02-13 00:35:29 -08:00