Commit Graph

40 Commits

Author SHA1 Message Date
Alexis 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00
Jacquerel 7a994fffba Pathfinder Module no longer pathfinds (#94261)
## About The Pull Request


![dreamseeker_9pYVx5xTE0](https://github.com/user-attachments/assets/86695b34-deb1-4307-83c8-ecd81b1b6b28)

Removes the "pathfinding through the halls" function of the MODsuit
pathfinder module in favour of having it "fly" to your location in the
same manner as cargo pods (by getting inside an invisible cargo pod).

If it's inside a locked crate or locker when this happens it will break
the door on the way out, so be careful where you leave it.

## Why It's Good For The Game

Mostly because nobody uses the pathfinder module.
Pathfinding through the corridors is _cool_ on a conceptual level but
it's not very practical, _especially_ because it means that it has a
good chance of not functioning at all if you are on a station with Z
levels.
This method means that it will always arrive in the same amount of time
(quite fast, but not fast enough that it will arrive before someone can
shoot you) regardless of where you are when you suddenly realise that
you need spaceproofing rather than drip.

Also Fikou asked me to do it.

## Changelog

🆑
balance: The Captain's MODSuit pathfinder module now flies it directly
to their location rather than physically traversing the halls of the
station.
/🆑
2025-12-03 13:37:35 -07:00
Ben10Omintrix db9e3cf9dd red raptors are now able to attack while ridden (#92455)
## About The Pull Request
red raptors will now be able to retaliate against mobs adjacent to it
while ridden.

## Why It's Good For The Game
red raptors dont have much use compared to its colleagues. this gives it
a bit of a unique purpose and makes it a viable option to have out on
the field

## Changelog
🆑
balance: red raptors are now able to attack while ridden
/🆑
2025-08-26 10:33:46 +10:00
Ben10Omintrix 173185ea9a [no gbp] few repairbot fixes and some beacon pathing improvements. (#88144)
## About The Pull Request
this fixes some few sentient repairbot-related issues that were reported
a few days ago. ive also given sentient repairbots a new simple UI to
manage their materials.

![image](https://github.com/user-attachments/assets/bc269769-439e-4aa8-82ca-e433c031fbec)

while I was at it, i also fixed bots continuously trying to path to
unreachable beacons, which can be quite costly since they're regularly
very far away.

## Why It's Good For The Game
closes #88067

## Changelog
🆑
fix: repairbots no longer get flashed by their own welder
fix: repairbots no longer break glass tables they step on
fix: repairbots can no longer flush their own welders
fix: fixes some runtimes when emagged repairbots try to deconstruct
things
fix: fixes sentient repairbots not being able to see or remove their
material counts
/🆑
2024-11-27 11:29:20 -07:00
MrMelbert 72491a5e41 Fix monkeys ignoring grabs while restrained/in crit (#88041)
## About The Pull Request

Fixes #84338

When handcuffed or crit, you are unable to resist even a passive grab,
you are truly helpless

Yet monkeys ignore this

They ignore this because the code handling above is on the client:
`/client/proc/Process_Grab()`

The ideal fix for this is to move it off the client, but that carries a
bunch of order of operations shenanigans so I'll leave that for a more
in depth refactor of this kinda stuff

In the meanwhile we can simply tell AI controllers not to move if
grabbed and incapacitated (barring stasis)

## Changelog

🆑 Melbert
fix: Monkeys no longer ignore basic rules such as "you can't escape a
passive grab if you're cuffed or in crit"
/🆑
2024-11-21 18:18:47 +01:00
Ben10Omintrix d2c8e10e26 Repairbots (#86084)
## About The Pull Request
adds repairbots to the game!

![repairbot](https://github.com/user-attachments/assets/8c492c7c-6c12-4095-89f6-cc97ae1edbc0)

this pr serves as a massive rework and buff to floorbots. i was a bit
sad that they dont get built much anymore so ive given them tons of more
utilities and uses.
Repairbots still inherit to place tiles and repair breaches. but they
can now rebuild walls, rebuild windows and repair structure and
machinery. Also Ive given them voicelines to add more character to them.
In short, they are very depressed with their job (however they express
their happy go lucky attitude when u emag them where they will start
deconstructing the station)

to demonstrate capabilities, here's a slightly sped up clip of some
repairbots patching up an area that was maxcapped 4 times:

https://github.com/user-attachments/assets/bddac3b0-1984-4571-85d3-c5283dd7c0de

When repairbots feel threatened, they will retract into their little
toolbox which u can pick up and hold in ur hand, either to conveniently
carry and plop them down at breached sites, or to bash skull with it

U can build them using a toolbox, proximity sensor, cyborg arm and a
conveyor belt

## Why It's Good For The Game
refactors floorbots and makes them alot more useful tools for engineers
to use


## Changelog
🆑
refactor: floorbots have been refactored, please report any bugs
add: adds repairbots to the game!
/🆑
2024-11-19 15:19:44 -05:00
MrMelbert 239797a4ee Deletes misleading infinite define, adds defines for clearer status effect durations (#87842)
## About The Pull Request

1. Deletes `INFINTIE`, it is misleading and not at all a big number and
causes bugs
2. Adds `STATUS_EFFECT_PERMANENT` and `STATUS_EFFECT_NO_TICK` to make it
clearer what infinite status effects are
2024-11-12 17:24:27 +01:00
Ben10Omintrix 51cc8d62dc fixes botkeeper displaying wrong states (#86786)
## About The Pull Request
bot modes werent correctly reflecting the bot's AI states. this pr fixes
that. also fixes some issues where the bot's AI might get stuck
inbetween switching modes

## Why It's Good For The Game
closes #86771

## Changelog
🆑
fix: botkeeper now displays bot's correct states!
/🆑
2024-09-21 15:09:58 +02:00
Ben10Omintrix 91baa94ac5 event based incapicated and able_to_run (#86031)
## About The Pull Request
this is a revival of #82635 . i got permission from potato to reopen
this, he did almost all the work. i only just solved the conflicts and
fixed all the bugs that were preventing the original from being merged
(but it should be TMed first)

## Why It's Good For The Game
slightly improves the performance of basic mob AI

## Changelog
🆑
LemonInTheDark
refactor: able_to_run and incapacitated have been refactored to be event
based
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ZephyrTFA <matthew@tfaluc.com>
2024-09-04 10:02:49 -04:00
klorpa d2c7806047 Spelling and Grammar Fixes (#85992)
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
2024-08-21 17:07:02 +12:00
Goat 6934b13ee2 Adds a TRAIT_NO_TRANSFORM check to AI movement. (#83621)
## About The Pull Request
Checks for `TRAIT_NO_TRANSFORM` in `allowed_to_move`. Will stop mobs
from moving when they should not.

## Why It's Good For The Game
Fixes #79870
Fixes AI movement not respecting TRAIT_NO_TRANSFORM.

## Changelog
🆑 Goat
fix: mobs no longer move during cutscenes
/🆑
2024-06-07 22:45:53 -04:00
Ben10Omintrix 55c41fb9ad basic honkbots (#81920)
## About The Pull Request
this refactors honkbots into basic mobs. its mostly a faithful 1:1
refactor but i couldnt keep my hands to myselves so i gave them some new
behaviors.

honkbots now love playing with clowns, they will go seek out for clowns
and celebrate around them. also, if the honkbot finds a banana peel or a
slippery item near it, it will actively drag people onto them

honkbots will now go out of theirway to mess with secbots and annoy them

## Why It's Good For The Game
refactors hinkbots into basic bots and also undoes some of the silliness
i did in the previous basic bot prs. i also added lazylist support to
remove_thing_from_list.

## Changelog
🆑
refactor: honkbots are now basic mobs, please report any bugs
add: honkbots will try to slip people on banana peels
/🆑
2024-06-05 10:17:34 -04:00
Mothblocks bc4e7d3b4e Remove data systems in favor of global datums (#82943) 2024-04-29 22:47:36 -07:00
Ben10Omintrix e8787ed2b7 fixes jps mobs occasioanlly pathing forever (#82874)
## About The Pull Request
if MOVELOOP_NOT_READY gets passed once through the signal (which can be
often), the failure increments gets reset back to 0 and starts counting
again. this can cause the increments to never reach the max failure
threshold so itll keep checking forever. i saw some mobs get stuck
trying to reach an unreachable target because of this

## Why It's Good For The Game
fixes mobs getting stuck trying to reach something unreachable

## Changelog
🆑
fix: fixes mobs getting stuck trying to reach something unreachable
/🆑
2024-04-26 21:39:11 -07:00
Jeremiah c1a775efe1 Implements data systems (#82816)
## About The Pull Request
Subsystems currently come in two different flavors:
1. Systems that process at intervals with the master controller
2. Global data containers that do not fire

And I think they should be split up...


This moves 4 non firing, non init subsytems -> datasystem

## Why It's Good For The Game
Clarity in code
2024-04-22 21:27:15 -06:00
Kapu1178 77399e2083 Fix modsuit pathfinder module / JPS changes (#81983)
## About The Pull Request
The Pathfinder module sucks cock because it doesn't work. And the
reasons it doesn't work are as follows:
1. It uses the default JPS pathfinding datum, which has a hard distance
limit of 30, instead of the intended 200.
2. JPS pathfinding as a whole will fail if you encounter more than 3
doors. This is because every door wastes about 5 movement opportunities,
and the default pathfinder only has a limit of 20 before it considers
the entire pathfinding attempt moot and bails out.

Here's how I fixed it:
1. Created a new jps child that has a range of MOD_AI_RANGE
2. Instead of counting all failures during the entire pathfinding
attempt, it will only consider consecutive failures. Every successful
move will reset the pathfinding failure count. This should make JPS
pathfinding more reliable overall?


## Changelog
🆑
fix: Modsuit Pathfinder module is significantly better at finding it's
destination.
/🆑
2024-03-15 13:47:37 -06:00
Ben10Omintrix dd5234b401 [no gbp] fixes ai controller runtime (#81134)
## About The Pull Request
fixes the flaky error that would happen in cleanbot controllers. i
discovered thru the profiler that a proc i was using to stop tracking
unreachable targets and caching them to a blacklist in selectbehavior
had a bit of a high real time cost, so if the mob got deleted midway
through for any reason would cause a runtime error. ive moved this proc
off selectbehavior and im instead letting the move loop cache this
target into the blacklist if it reaches the max pathing attempts
## Why It's Good For The Game
fixes a runtime that sometimes happens in ai controllers

## Changelog
🆑
fix: fixes a runtime that sometimes happens in ai controllers
/🆑
2024-01-28 23:53:05 +01:00
Ben10Omintrix 13e27c36a6 basic bot path huds and medbot research (#80277)
## About The Pull Request
this pr integrates the bot path huds to ai controllers and move loops to
allow basic bots to display their paths in the hud.
also closes #80280 and closes #80330

## Why It's Good For The Game
basic bots now can display their path on huds

## Changelog
🆑
add: basic bots can now display their paths on huds
fix: medbots can research healing again
/🆑
2023-12-27 12:57:35 +01:00
Ben10Omintrix a3c24dd74e Basic bots (medibots) (#79955)
## About The Pull Request
refactors bots into basic bots. i decided to do medibots first because
they were the most complex bots and wanted to get them out of the way
first. if this pr gets merged then i will be rolling out the rest of the
bot refactors over the next months

medibots can now wear any type of hats! some of these hats can trigger
unique new recorded voicelines and interactions!

![chickembot](https://github.com/tgstation/tgstation/assets/138636438/09d4519d-0a34-4b7f-898b-260f894bfdce)

![hatbot](https://github.com/tgstation/tgstation/assets/138636438/088e0618-108d-4fb4-a29b-771cfa027fb3)


## Why It's Good For The Game
converts medbots into basic medbots. they are now a bit more responsive
than before but overall they should act similarly to how they did. also
adds the basic bot ai framework which has all the generic bot behaviors
that the next bots may or may not need to have in their ai. i tried my
best to improve their code and turned some of their bitflags into define
bitfields. this pr may need a careful review because i did it from
scratch as the old bot project branch was too outdated for me to use
## Changelog
🆑
refactor: medbots are now basic bots. please report any bugs
add: medbots can wear hats!
/🆑
2023-12-01 22:49:18 -07:00
LemonInTheDark 3223d2a3fb Lemon fixes ci (#79384)
## About The Pull Request

Sets up moveloops to better catch issues with duplicated loops

Letting people modify the timer var AND have it track what bucket we're
in was a bad idea.
So instead let's store the queued time separate. Also makes
allowed_to_move return true/false instead of flags

This fixed? the null loop issue locally, I honestly have no damn idea
why. I'm gonna be working on the rest of ci here, left trackers so if it
pops up between now and merge I'll know what the issue is.

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2023-11-12 09:25:59 +00:00
MrMelbert 51220a36c1 Basic mobs check for MOBILITY_MOVE to move (#79627)
## About The Pull Request

Adds a check for `MOBILITY_MOVE` in basic mob `allowed_to_move`. 

This prevents AI controlled mobs which are `TRAIT_IMMOBILIZED` from,
well, not being immobilized

## Changelog

🆑 Melbert
fix: AI controlled mobs which are immobilized are now properly
immobilized
/🆑
2023-11-11 07:45:27 -05:00
Emmett Gaines 162e3aac66 Improves how ai movement checks for if movement is allowed (#79620)
## About The Pull Request

While looking into the moveloop processing issues I found a place where
moveloops were being interacted with while qdeleted. This restructures
the code a bit to prevent that being possible and also improves the
design overall here so implementers of `allowed_to_move` don't need to
be careful about their return value, which is just begging for a bug
down the line. `increment_pathing_failure` also wasn't getting called
when subtypes stopped movement.

The rest of this description is a bit of an informative lecture.

There's a pattern you do on occasion when designing public facing
functions where you have a public, but non overridden, function with
some default behavior that must always run, calling on an internal
function that *is* overridden but never called from any other location.
This is a good pattern for making sure some core behavior always runs or
for making sanity checks that can't be dodged, as the internal function
never even gets called when it has been determined that something needs
to cancel the whole thing.

Previously this code had something that looked kinda like this, there
was a proc called `pre_move` that was not supposed to be overridden, and
a proc it called called `allowed_to_move`. However, contrary to the
usual reason for doing this, `pre_move` had no behavior itself and was
meaningless. `allowed_to_move` on the other hand had exactly the sort of
sanity check that we'd want using this pattern in the form of
`if(!controller.able_to_run())`. This was allowing subtypes access to a
qdeleted move loop when it had just been deleted in the parent's version
of the proc.

This is your yearly reminder to watch out for cargo culting.
2023-11-10 20:02:29 -08:00
lizardqueenlexi 7c98a22628 Mobs will not path into dangerous turfs. (#79428)
## About The Pull Request

Fixes #79255
Fixes #79272
Fixes #79313
Fixes #79328

As it turns out, "basic avoidance" and "dumb" AI pathfinding were both
broken with regards to dangerous turfs, as was "random walk" idle
behavior. Now, these three things will properly avoid turfs that could
kill the mob.

The global typecache of dangerous turfs has been removed, in favor of a
turf-level proc, `can_cross_safely`, which returns TRUE or FALSE based
on whether a movable atom can cross the turf without being harmed. This
obviously defaults to TRUE, and is overridden for the four dangerous
turf types:
- **Space** can be safely crossed only with TRAIT_SPACEWALK. While space
does not directly cause harm, being sent drifting away is not desirable
behavior.
- **Chasms** and **open space** can be safely crossed with
TRAIT_MOVE_FLYING.
- **Lava** can be safely crossed with TRAIT_MOVE_FLYING or
TRAIT_LAVA_IMMUNE.

If an AI's pathfinding would take it through a dangerous turf, or if it
tries to randomly step onto one, the movement will be cancelled.
## Why It's Good For The Game

Basic mobs have all been ignoring dangerous terrain this whole time.
This means that mobs on Lavaland could walk right into chasms, mobs on
multi-Z stations could be tricked into falling into pits, and so on. In
the case of idle movement, no checks were happening whatsoever, causing
similar problems without players ever being involved.

Notably, skeleton mobs on certain away missions were randomly wandering
into lava, causing one of our many random CI failures of the last week.
They won't do that anymore.

All told, this should make AI behavior a little more believable, by
giving basic mobs literally any sense whatsoever of self-preservation.
## Changelog
🆑
fix: Basic mobs will no longer randomly walk into terrain that harms or
kills them.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-11-02 13:25:40 +00:00
LemonInTheDark 2532911353 Adds pathmaps, refactors pathfinding a bit (#78684)
## About The Pull Request

Implements /datum/pathfind/sssp, which generates /datum/path_map

/datum/path_maps allow us to very efficently generate paths to any turf
they contain from their central point.

We're effectively running the single source shortest paths algorithm.
We expand from the center turf, adding turfs as they're found, and then
processing them in order of addition.
As we go, we remember what turf "found" us first. Reversing this chain
gives us the shortest possible path from the center turf to any turf in
its range (or the inverse).

This isn't all that useful on its own, outside of a few niche cases
(Like if we wanted to get the farthest reachable turf from the center)
but if we could reuse the map more then once, we'd be able to swarm
to/from a point very easily.

Reuse is a bit troublesome, reqiures a timeout system and a way to
compare different movables trying to get paths.
I've implemented it tho. I've refactored CanAStarPass to take a datum,
/datum/can_pass_info. This is built from a movable and a list of access,
and copies all the properties that would impact pathfinding over onto
itself.

There is one case where we don't do this, pathing over openspace
requires checking if we'd fall through the openspace, and the proc for
that takes an atom.
So instead we use the weakref to the owner that we hold onto, and hold
copies of all the values that would impact the check on the datum.

When someone requests a swarmed path their pass info is compared with
the pass info of all other path_maps centered on their target turf. If
it matches and their requested timeout isn't too short, we just reuse
the map.

Timeout is a tricky thing because the longer a map exists the more out
of date it gets.
I've added a few age defines that let you modulate your level of risk
here. We default to only allowing maps that are currently
being generated, or finished generating in our tick. 
Hopefully this prevents falling into trouble, but consumers will need to
allow "failed" movements.

As a part of this datumized pass info, I've refactored pathfinding to
use access lists, rather then id cards directly. This also avoids some
dumbass harddel oppertunities, and prevents an idcard from changing mid
path.

Did a few things to the zPass procs, they took args that they did NOT
need, and I thought it'd be better to yeet em.

If you'd all like I could undo the caching/can_pass_info stuff if you'd
all like. I think it's useful generally because it avoids stuff changing
mid pathfind attempt, but if it's too clunky I could nuke it.

Oh also I added optional args to jps that constricts how it handles
diagonals. I've used this to fix bot paths.

## Why It's Good For The Game

Much of this is redundant currently. I'm adding it because it could have
saved hugglebippers, and because I get the feeling it'll be useful for
"grouping" mobs like bees and such.
We're doing more basic mob work currently and I want to provide extra
tools for that work.


https://github.com/tgstation/tgstation/assets/58055496/66aca1f9-c6e7-4173-9c38-c40516d6d853

## Changelog
🆑
add: Adds swarmed pathfinding, trading accuracy for potential
optimization of used correctly
fix: Bots will no longer take diagonal paths, preventing weirdo looking
path visuals
refactor: Refactored bits of pathfinding code, hopefully easier to add
new pathfinding strategies now
/🆑
2023-10-17 23:52:54 -06:00
Jacquerel 517d33e6f0 Basic blob mobs (#78520)
## About The Pull Request

I remembered today that blob code is ass, especially blob spores.
There's still a lot to improve but I cleaned up _some_ of it by
converting these mobs.
Now they use a newer framework and more signal handling as compared to
circular references.

I _expect_ the behaviour here to largely be the same as it was or
similar. I haven't added anything fancy or new.

This is a reasonably big PR but at least all of the files are small?
Everything here touched every other thing enough that it didnt make
sense to split up sorry.

Other things I did in code:
- Experimented with replacing the `mob/blob` subtype with a component.
Don't know if this is genius or stupid.
- AI subtree which just walks somewhere. We've used this behaviour a lot
but never given it its own subtree.
- Blob Spores and Zombies are two different mobs now instead of being
one mob which just changes every single one of its properties.
- Made a few living defence procs call super, because the only thing
super does was send a signal and we weren't doing that for no reason.
Also added a couple extra signals for intercepts we did not have.

## Changelog

🆑
fix: Blob spores will respond to rallies more reliably (it won't runtime
every time they try and pathfind).
fix: Blobbernaut pain animation overlays should align with the direction
the mob is facing instead of always facing South
refactor: Blob spores, zombies, and blobbernauts now all use the basic
mob framework. They should work the same, but please report any issues.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-09-26 15:28:26 -06:00
Jacquerel 72174845f5 Basic Watchers & Basilisks (#77630)
## About The Pull Request

This one is a double feature because Watchers and Basilisks share the
same typepath. You might see a couple more of those.
As is tradition I decided to fuck with them rather than just port them.
Here's what's up.

**Basilisks**

![image](https://github.com/tgstation/tgstation/assets/7483112/9e4b0115-65dd-4df7-b62a-21c7be8549bf)

![image](https://github.com/tgstation/tgstation/assets/7483112/59162e68-7d73-4659-9531-5078ff751228)

- Have a new soulless sprite which looks less like a living blue hedge.
- Walk at you and shoot you while you are not in range (just like
before).
- Become supercharged if they become "heated" by lava, lasers, or
temperature weapons. This was a feature they also previously had but
they would never encounter lava, so now it also works if you use the
wrong gun on them.
- Lose their supercharge if you cool them down.
- Otherwise pretty normal mobs.

**Watchers**

https://www.youtube.com/watch?v=kOq_Bf78k5A
Here's a traditional video of me intentionally getting hit by mechanics
(trust me its definitely on purpose)

- They glow emmissively a little bit so you can see them from further
away.
- Their eyes light up about 0.5 seconds before they are able to shoot at
you.
- No longer melee attack, instead try to stay out of melee.
- Will occasionally put you into "Overwatch", meaning they will shoot
you rapidly if you move or act while they're staring at you for a brief
time period (after which you become immune for 12 seconds, and during
which other watchers will play fair and stop shooting at you).
- If they start taking damage they will also start using their "Gaze"
attack, look away or suffer some kind of negative effect!
- - Normal watcher gaze flashes and confuses you.
- - Magmawing watcher gaze obviously burns (and briefly stuns) you.
- - Icewing watcher gaze freezes you and throws you backwards.
- Magnetically attract and eat diamonds. They also used to do this, but
just if they happened to coincidentally walk past some.

**Other accompanying changes**

All basic mobs will now adopt the "stop gliding" trait if they get
slowed down too much.
I moved behaviour for "fire a projectile from this atom" into a helper
proc because I was using it in three places and I will probably use it
in more places. There are probably other places in the existing code
which could be using this.
I think I made the basic mob melee attack forecast default a little more
forgiving, they were fucking me up too much and I am the playtester.

## Why It's Good For The Game

Another one off the list.
New tricks for old dogs.
Framework for making mobs with ranged attacks "fairer" (you can see when
they are ready to shoot you).
More (hopefully) versatile AI behaviours which we will reuse later (I
hope I'm not duplicating one someone already made).
If our players "enjoy" them enough we can give more mobs "don't look at
me" mechanics.
Removes some soul sprites.

## Changelog

🆑
refactor: Basilisks and Watchers now use the basic mob framework. Please
bug report any unusual behaviour.
sprite: Basilisks have new sprites.
add: Basilisks will go into a frenzy if heated by energy weapons or
temperature beams as well as by lava.
add: Watcher eyes will be illuminated briefly when they are ready to
fire at you.
add: Watchers can now briefly put you into "Overwatch" and penalise you
for moving while they can see you.
add: Wounded watchers will occasionally punish players who look at them.
balance: Unusual watcher variants are more likely to appear.
/🆑
2023-08-16 13:04:41 -06:00
MrMelbert ed2f04f486 Experiment with replacing weakrefs in AI blackboard with deleting signals, ideally making it easier to work with and harder to cause hard deletes (#74791)
## About The Pull Request

Replaces weakref usage in AI blackboards with deleting signals

All blackboard var setting must go through setters rather than directly

## Why It's Good For The Game

This both makes it a ton easier to develop AI for, and also makes it
harder for hard deletes to sneak in, as has been seen with recent 515
prs showing hard deletes in AI blackboards

(To quantify "making it easier to develop AI", I found multiple bugs in
existing AI code due to the usage of weakrefs.)

I'm looking for `@Jacquerel` `@tralezab` 's opinions on the matter, also
maybe `@LemonInTheDark` if they're interested

## Changelog

🆑 Melbert
refactor: Mob ai refactored once again
/🆑
2023-04-23 17:07:17 -06:00
san7890 43473a4dac Turns Deer into Basic Mob - They Freeze At The Sight of Vehicles (#74784)
## About The Pull Request

deers only show up in the BEPIS but i decided that they would be easy
enough to turn into a basic mob (they were). it was so easy in fact that
i decided to dip my toes into coding AI behavior, and made them freeze
up whenever they see a vehicle. this required a lot of code in a bunch
of places that i was quite unfamiliar with before starting this project,
so do let me know if i glonked up anywhere and i can work on smoothing
it out.
## Why It's Good For The Game

one less simple animal on the list. deers staring at headlights is
pretty cool i think, neato interaction for when you do get them beyond
the joke the bepis makes

i'm also amenable to dropping the whole "deer in headlights" code if you
don't like that for w/e reason- just wanted to make them basic at the
very least
## Changelog
🆑
add: If you ever happen upon a wild deer, try not to ride your fancy
vehicles too close to it as it'll freeze up like a... you know where I'm
going with this.
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-04-23 11:31:03 -04:00
CapybaraExtravagante bd81d32080 Makes some improvements to how AI can use JPS with movement loops (#72685)
## About The Pull Request

This PR makes some changes to how JPS is used in movement loops, as it
was causing a variety of issues:

- Fixed some code where JPS would fail because the path is still being
made. Instead, the movement loop will now wait.
- Reduced the subsystem wait for the pathfinder subsystem from 2 seconds
to 0.1 seconds. @LemonInTheDark told me that this is better, I'll update
this with a better explanation once I squeeze it out of him :D
- Allows you to provide an initial path to the movement loop, in case
you pre-calculated one while making a plan.

## Why It's Good For The Game

Makes working with JPS a bit easier when making AI.

---------

Co-authored-by: Capybara <Capybara@CapybaraMailingServices.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-02-03 18:40:47 -08:00
AnturK 4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
MrMelbert 70db96c46f Convert mouse and rat to basic mobs (#70728)
* Converts mice and rats to basic mobs

* Update paths

* Fixes

* Tweaks

* .

* Use helpers

* Unit test

* Correct the targeting

* Fixes the unit test?

* Fixes the unit test

* Docs

* update the path script with pr id

* Faction check tweak

* Review

* AHH
2022-10-28 08:49:17 -04:00
Marina fcaa0b24db Alphabetized, fixed spelling error, clarifying event descriptions. Polish (#69707)
About The Pull Request

Alphabetized several long lists of strings so its easier for us to look through them, just code polish, nothing the players would see.

Fixed some minor spelling errors as well.

Clarified door bolt state to be less ambiguous in the door wiring gui.
Originally it would say the door bolts have fallen, and the door bolts "Look up". i dont know about you but that was very not clear for me to read. Like where are the bolts? In the door or the frame? Arnt there bolts on top and bottom? Just didn't make sense to me.

Now it says "Have engaged!" & "Have disengaged"
hopefully that makes the state clearer at a glance.

I also added a small handful of funny texts to some string files. See changelog
Why It's Good For The Game

Well, who doesn't like a bit of polish? Just makes the game a little easier for people.
Also funny text funny text.
Changelog

spelling: improves spelling and adds more flavortext
2022-09-11 21:51:01 +12:00
ma44 da36517f7c Removes some boilerplate code from basic AI (#64826)
* Squashed commit of the following:

commit 71fb208502
Author: Changelogs <action@github.com>
Date:   Tue Jul 6 00:09:32 2021 +0000

    Automatic changelog compile [ci skip]

commit d07bfa44a4
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jul 5 13:03:46 2021 -0700

    Automatic changelog generation for PR #60014 [ci skip]

commit cd147702cb
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 22:03:42 2021 +0200

    fixes voice of god not giving you large text (#60014)

commit bef10b996b
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jul 5 11:46:16 2021 -0700

    Automatic changelog generation for PR #59988 [ci skip]

commit 7b0385468b
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 20:46:13 2021 +0200

    Concussive Gauntlets Resprite by MeyHaZah (#59988)

commit 56a58fc3bc
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jul 5 00:51:28 2021 -0700

    Automatic changelog generation for PR #59990 [ci skip]

commit 181d64d929
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 09:51:25 2021 +0200

    switchblade can now be used to butcher and slice necks, icon updates when you toggle it on (#59990)

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

commit 2b315303d9
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 20:56:32 2021 -0700

    Automatic changelog generation for PR #59944 [ci skip]

commit 2a3330c132
Author: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Date:   Sun Jul 4 22:56:28 2021 -0500

    Non-changeling spawned headslugs now burst non-antag changeling variant again (#59944)

commit 3b041f8d54
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 05:54:14 2021 +0200

    knight helmets no longer delete a nonexisting component (#60003)

commit 826e7b01a0
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 20:53:56 2021 -0700

    Automatic changelog generation for PR #59994 [ci skip]

commit 31478ebcda
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Sun Jul 4 20:53:53 2021 -0700

    Fix cursed spring ruin acting as a polymorph teleport forwarder (#59994)

commit a5827ab8b1
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 20:53:29 2021 -0700

    Automatic changelog generation for PR #59999 [ci skip]

commit 4fcf927bf4
Author: Bobbahbrown <bobbahbrown@gmail.com>
Date:   Mon Jul 5 00:53:26 2021 -0300

    fix buckling to a vehicle not setting your initial sprite position correctly (#59999)

commit 35673b7aeb
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 20:52:31 2021 -0700

    Automatic changelog generation for PR #60004 [ci skip]

commit adb9b76e1c
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 05:52:28 2021 +0200

    wisps no longer fall in chasms (#60004)

    Co-authored-by: coiax <yellowbounder@gmail.com>

commit 69a5c827c8
Author: Changelogs <action@github.com>
Date:   Mon Jul 5 00:08:58 2021 +0000

    Automatic changelog compile [ci skip]

commit 7ded98f76d
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 16:47:35 2021 -0700

    Automatic changelog generation for PR #59993 [ci skip]

commit 9c46c01439
Author: obsol <33932119+read-0nly@users.noreply.github.com>
Date:   Sun Jul 4 19:47:32 2021 -0400

    Adds temperature and pressure sensors to circuits (#59993)

    Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>

commit 6948ca330f
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 16:42:32 2021 -0700

    Automatic changelog generation for PR #59963 [ci skip]

commit f9a2fcfdb0
Author: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Date:   Sun Jul 4 19:42:29 2021 -0400

    Removes plasteel as a custom material for tanks to prevent bugs (#59963)

commit 13776b7c13
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 16:41:55 2021 -0700

    Automatic changelog generation for PR #59927 [ci skip]

commit 4e891fb72e
Author: spessbro <51048066+spessbro@users.noreply.github.com>
Date:   Sun Jul 4 19:41:52 2021 -0400

    carnivory is visible (#59927)

commit 31942bda5b
Author: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
Date:   Mon Jul 5 01:40:04 2021 +0200

    Cleans up and DMdoc's lazarus_injector.dm. (#59937)

commit f0203b9261
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 16:39:06 2021 -0700

    Automatic changelog generation for PR #59950 [ci skip]

commit 63da37d8ef
Author: TheSmallBlue <ilanmori@hotmail.com>
Date:   Sun Jul 4 20:39:03 2021 -0300

    Adds the "Split" circuit component (#59950)

commit 6ec208438f
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 16:37:54 2021 -0700

    Automatic changelog generation for PR #59983 [ci skip]

commit b7c2c9134e
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 01:37:51 2021 +0200

    hiero dash now doesnt work on blocked turfs (#59983)

commit fba41ea78a
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 16:37:07 2021 -0700

    Automatic changelog generation for PR #59982 [ci skip]

commit f124ed1cff
Author: Fikou <piotrbryla@onet.pl>
Date:   Mon Jul 5 01:37:04 2021 +0200

    removes the weird light from the upgraded mining hardsuit (#59982)

commit 27e1c4d3c1
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 15:28:41 2021 -0700

    Automatic changelog generation for PR #59986 [ci skip]

commit 189a7160da
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Sun Jul 4 15:28:38 2021 -0700

    sillycone touch (#59986)

commit 3d43e96634
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 15:27:17 2021 -0700

    Automatic changelog generation for PR #59995 [ci skip]

commit fec650f7fe
Author: 小月猫 <alina.r.starkova@gmail.com>
Date:   Sun Jul 4 18:27:15 2021 -0400

    fixed the define for the shock wire (#59995)

    no wonder autolathes never shocked the cargo techs whenever they hacked it

commit b647efd8fb
Author: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Date:   Sun Jul 4 12:54:59 2021 -0700

    Migrates the hellspawn stuff over from hackmd (#59928)

    * Migrates some content over from hackmd, this should make it more visible, which I think is a good thing.
    In other news, we really should reorg this document, should make subdocs like oranges wanted

    * Parently we lint for this, nice

commit a6635f7efe
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 09:48:21 2021 -0700

    Automatic changelog generation for PR #59985 [ci skip]

commit 35af64526a
Author: Fikou <piotrbryla@onet.pl>
Date:   Sun Jul 4 18:48:18 2021 +0200

    Make the light eater a mining tool (#59985)

    what the title says, light eater can now pick rocks

    ive had a lot of rounds as admin on kilo/tram where i have to give them this so they arent stuck in gay baby jail forever

commit e6d4748d87
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 09:47:54 2021 -0700

    Automatic changelog generation for PR #59984 [ci skip]

commit cd5c44d4ed
Author: Fikou <piotrbryla@onet.pl>
Date:   Sun Jul 4 18:47:51 2021 +0200

    Set commission plaques to below open door layer (#59984)

    it looks bad when you drop an item

commit 092c73c24e
Author: InsaneRed <47158596+InsaneRed@users.noreply.github.com>
Date:   Sun Jul 4 17:29:09 2021 +0300

    Update Delta Camera Dir (#59960)

commit 084d325e10
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 07:28:27 2021 -0700

    Automatic changelog generation for PR #59972 [ci skip]

commit 437383413a
Author: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Date:   Sun Jul 4 10:28:23 2021 -0400

    Meta Atmos Piping fix (#59972)

commit bb17e725da
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 03:21:19 2021 -0700

    Automatic changelog generation for PR #59968 [ci skip]

commit 5347af6dfd
Author: KIBORG04 <bossmira4@gmail.com>
Date:   Sun Jul 4 13:21:16 2021 +0300

    Fix reveal role from a mafia psychologist (#59968)

commit 4249a1ba6b
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 02:37:32 2021 -0700

    Automatic changelog generation for PR #59976 [ci skip]

commit 92c6b5f4f2
Author: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Date:   Sun Jul 4 05:37:30 2021 -0400

    Allows the detective's and nuke op's holsters to be placed in the suit storage slot of armor vests (#59976)

    * single line change that will break everything

    * now they work even better

    * Trailing comma

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

commit 3157e7ae3d
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 02:20:45 2021 -0700

    Automatic changelog generation for PR #59877 [ci skip]

commit e4d8795e9c
Author: coiax <yellowbounder@gmail.com>
Date:   Sun Jul 4 10:20:42 2021 +0100

    Add new Wallets! station trait (#59877)

        Add a new simple station trait, that replaces everyone's ID with a
        wallet containing said ID, as well as their starting money, and if
        they're lucky, a little bonus surprise.

            In addition, adds a force variable to station traits, which will
            always enable them, rather than having to edit weight and probability
            of rolling a trait of that sign (postive, negative).

    Co-authored-by: Rohesie <rohesie@gmail.com>

commit 8a2d5307e6
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jul 4 01:50:21 2021 -0700

    Automatic changelog generation for PR #59772 [ci skip]

commit a8d7b45d2a
Author: tralezab <40974010+tralezab@users.noreply.github.com>
Date:   Sun Jul 4 01:50:18 2021 -0700

    Ban posibrains and mmis from savannah ivanov (#59772)

    Savannah Ivanov cannot have mmis or posibrains in them.

    Now I know that sounds BAD... but I originally intended to do this as it removes a huge trust element and bypasses recruiting people for cooperation. I simply uuuh genuinely forgot to include this, so sorry for the DRAMA.

    I was considering blocking the AI too, but AIs are actually more likely to be turned against you than fellow crewmembers

    Co-authored-by: coiax <yellowbounder@gmail.com>

commit 7ef4c4c027
Author: Rohesie <rohesie@gmail.com>
Date:   Sun Jul 4 02:14:44 2021 -0300

    Fixes a runtime and refactors suit jetpacks a bit (#59922)

commit 7c22e67bfb
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 22:06:02 2021 -0700

    Automatic changelog generation for PR #59752 [ci skip]

commit b2ecb787e1
Author: Greniza <61635418+Greniza@users.noreply.github.com>
Date:   Sat Jul 3 22:05:58 2021 -0700

    Environment Protection Bags + Minor Weather Changes (#59752)

    Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>

commit ea59898bc1
Author: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Date:   Sun Jul 4 00:48:27 2021 -0400

    Documents antag_datum.dm (#59967)

    Co-authored-by: AnturK <AnturK@users.noreply.github.com>

commit a8839f233e
Author: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Date:   Sat Jul 3 21:47:10 2021 -0700

    Changes a line of the master controller to make it easier to read (#59974)

commit 12645cefc4
Author: Changelogs <action@github.com>
Date:   Sun Jul 4 00:09:34 2021 +0000

    Automatic changelog compile [ci skip]

commit 1e063242d0
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 15:29:50 2021 -0700

    Automatic changelog generation for PR #59925 [ci skip]

commit 972cd3de61
Author: Bobbahbrown <bobbahbrown@gmail.com>
Date:   Sat Jul 3 19:29:46 2021 -0300

    introduce advanced sucking functionality to custodians (+ bonus GAGging) (#59925)

    * base sucking functionality

    * functional upgrade and upgrade refactor

    * minor tweak here

    * finish overhaul of upgrades, add gags-ified upgrades

    * add documentation (you love to see it)

    * update sucking sound

    * do some of the requested cleanup, fix key going into trash bag, add right click func

commit d7c855b00e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 13:59:39 2021 -0700

    Automatic changelog generation for PR #59966 [ci skip]

commit 7215711974
Author: Ghom <42542238+Ghommie@users.noreply.github.com>
Date:   Sat Jul 3 22:59:36 2021 +0200

    Fix "Is This Thing On?" sci experiment to accept any explosion(#59966)

    ...Even those with negative devastation and/or heavy values (like IEDs, welders, fuel tanks).

commit 24cb23fa74
Author: Rohesie <rohesie@gmail.com>
Date:   Sat Jul 3 15:49:32 2021 -0300

    Inexistent prefs runtime fix and a little cleanup (#59915)

commit fbfefee3cd
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 11:39:59 2021 -0700

    Automatic changelog generation for PR #59938 [ci skip]

commit be92d05a4b
Author: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Date:   Sat Jul 3 20:39:56 2021 +0200

    Large cardboard box icon fix (#59938)

    * cardboard box fix

commit 4d62d199d2
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 11:37:39 2021 -0700

    Automatic changelog generation for PR #59935 [ci skip]

commit 578588e8e9
Author: MMMiracles <lolaccount1@hotmail.com>
Date:   Sat Jul 3 14:37:35 2021 -0400

    removed extra yellow pipe and made orange/red pipe overlap in atmos better looking (#59935)

commit a2eb5c5382
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 11:36:00 2021 -0700

    Automatic changelog generation for PR #59934 [ci skip]

commit 1e5e3803ae
Author: Urumasi <Urumasi@email.cz>
Date:   Sat Jul 3 20:35:57 2021 +0200

    Fix turbine exploit (#59934)

commit fce141a97e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 11:33:16 2021 -0700

    Automatic changelog generation for PR #59931 [ci skip]

commit 7d82dc2644
Author: Sheits <81964183+Sheits@users.noreply.github.com>
Date:   Sun Jul 4 04:33:13 2021 +1000

    Sprites (#59931)

commit cc791ed2be
Author: Emmett Gaines <ninjanomnom@protonmail.com>
Date:   Sat Jul 3 14:31:34 2021 -0400

    Makes GAGS layer limit per icon state, not per config file (#59923)

commit c9314a321e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:59:41 2021 -0700

    Automatic changelog generation for PR #59962 [ci skip]

commit ebac974568
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 18:59:38 2021 +0100

    Fixed being able to insert infinitely many components into a shell. Fixes being able to view the shell's circuit in a locked shell. (#59962)

commit b54bffe24a
Author: coiax <yellowbounder@gmail.com>
Date:   Sat Jul 3 18:53:36 2021 +0100

    Remove unused hivemind powers and supression (#59911)

    - BZ metabolites no longer mute changeling hiveminds, because changeling
      hiveminds no longer exist.
    - Removed code for two unused changeling powers, Hive Channel DNA and
      Hive Absorb DNA.

commit 1ee1b03df3
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:53:03 2021 -0700

    Automatic changelog generation for PR #59917 [ci skip]

commit 5adf4f17d2
Author: death and coding <58394696+thestubborn@users.noreply.github.com>
Date:   Sat Jul 3 18:53:01 2021 +0100

    Allows Bananas to be holstered (#59917)

    Clowntectives can now comically whip out their trusty potassium pistol to brutally feed mimes to death. Or sneak into the detective's office and replace their actual gun with a banana.

    Get it, because I call you guys the banana bros all the time?

commit f279f19e08
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:52:13 2021 -0700

    Automatic changelog generation for PR #59919 [ci skip]

commit e361040c74
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Sat Jul 3 10:52:10 2021 -0700

    Fix incorporeal movers procing containment field effects (#59919)

commit 22340a88c7
Author: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Date:   Sat Jul 3 13:49:04 2021 -0400

    Makes bots order from what kind of venue you are, rather than being hardcoded (#59954)

    Instead of checking the type of venue to order from, they will now instead check from venue_type (Which there's currently only 2 of)

commit 7d8346eb04
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:46:46 2021 -0700

    Automatic changelog generation for PR #59946 [ci skip]

commit 066e34148c
Author: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Date:   Sat Jul 3 13:46:43 2021 -0400

    Makes tanks display their max pressure and only return their analysed contents once (#59946)

commit cd5660a87d
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:46:17 2021 -0700

    Automatic changelog generation for PR #59953 [ci skip]

commit 16d89a146e
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 18:46:13 2021 +0100

    RAM now has an option to select between types. Refactored the any type to be more friendly with circuit code. (#59953)

    RAM now has an option to select between types and an output signal. Refactored the any type to be more friendly with user displays.
    Code that includes changing type is no longer hard to read because of snowflake code for the "any" type.
    RAM can now more easily act as a constant value component.
    RAM also has an output signal because it should and the fact that it doesn't was an oversight when converting everything to use input and output signals.

commit c7d4606b68
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:44:49 2021 -0700

    Automatic changelog generation for PR #59952 [ci skip]

commit d35ec05181
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Sat Jul 3 10:44:46 2021 -0700

    Fix Cross Server Messages Containing HTML Garbage (#59952)

    Gets rid of a minor annoyance that has been around since like when the feature was first added?

commit ad39071239
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:44:13 2021 -0700

    Automatic changelog generation for PR #59955 [ci skip]

commit a57a04b320
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 18:44:09 2021 +0100

    Fixed carps being untameable and fixes tameable code not properly removing itself from something (#59955)

    Fixes #59897

commit 452952851d
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:43:38 2021 -0700

    Automatic changelog generation for PR #59942 [ci skip]

commit 11dd7a852b
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 18:43:35 2021 +0100

    Adds crew monitor usb connections and fixes the soundemitter's frequency port (#59942)

    Adds crew monitor usb connections and fixes the soundemitter's frequency port
    Allows you to view health and stuff.

commit ed6d5465b5
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:42:45 2021 -0700

    Automatic changelog generation for PR #59958 [ci skip]

commit 3356f5d2ab
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 18:42:42 2021 +0100

    Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components. (#59958)

    Fixes to the cooldowns. Also circuits now use an input trigger/output trigger system which the speech component hadn't yet adopted because it was made before that system was introduced and left out when changing most components to use this system.

    Also temporarily disables input/output signal ports for the prebuilt speech relay circuit until I can properly code in a way to load circuits.

commit 78f9f71ceb
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:41:36 2021 -0700

    Automatic changelog generation for PR #59959 [ci skip]

commit 5e6a90a0d5
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 18:41:32 2021 +0100

    Limits the maximum string length of a circuit component port to 5K characters (#59959)

    People could duplicate string lengths to the point where UIs break (and maybe OOMs though it'd take a while).

commit 6c502cecd5
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:35:37 2021 -0700

    Automatic changelog generation for PR #59941 [ci skip]

commit e29c6c7a89
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Sat Jul 3 10:35:33 2021 -0700

    Hookup Change Command Name to Create Command Report (#59941)

    Adds and defaults the contents of command_name() to the list of names in the Create Command Report tgui presets if changed from Central Command.

commit 101da02669
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:34:35 2021 -0700

    Automatic changelog generation for PR #59943 [ci skip]

commit cc40cc4677
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Sat Jul 3 10:34:32 2021 -0700

    Fix blanket cure_blind calls removing quirk and blindfold traits (#59943)

    Makes it so when proc/cure_blind(source) is called with no source is does not cure blindness from the quirk, blindfolds, or other eye coverings.

commit 87f0e0d4a0
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jul 3 10:31:40 2021 -0700

    Automatic changelog generation for PR #59957 [ci skip]

commit 3c7c5f0dbe
Author: tralezab <40974010+tralezab@users.noreply.github.com>
Date:   Sat Jul 3 10:31:37 2021 -0700

    PDAs now include round time (#59957)

    Part of my document on duplicating verb panel functionality so at some point in the far, far future we may be rid of it. you can read more here.

    hackmd.io/tJ5H3opRQiG1GCN1sP142w

    The other thing the status panel needs to do is send time dilation to the tgui chat. Having messed around with tgui chat, I am very confident i'm going to need stylemistake or mothblocks help me out with that one, it's so beyond my level it isn't even funny.

    I know this is a VERY long description for a very small change but expect more of this in the future

commit 911d762562
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Fri Jul 2 21:23:19 2021 -0700

    Automatic changelog generation for PR #59638 [ci skip]

commit 4a62b6ba9c
Author: YakumoChen <king_yoshi42@yahoo.com>
Date:   Sat Jul 3 04:23:16 2021 +0000

    New contraband peanuts (#59638)

    Adds a new variety of peanuts to Getmore
    Tweaks peanuts to have a higher price, since they're currently the best thing to buy in the vendor.

commit d20a701b7c
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Fri Jul 2 21:01:17 2021 -0700

    Automatic changelog generation for PR #59947 [ci skip]

commit 97e15965a1
Author: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Date:   Sat Jul 3 00:01:14 2021 -0400

    Fix ion carbine parts kit's name and other similar grammar issues (#59947)

commit 4b84de5573
Author: Changelogs <action@github.com>
Date:   Sat Jul 3 00:09:45 2021 +0000

    Automatic changelog compile [ci skip]

commit 72c047c72e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Fri Jul 2 16:23:20 2021 -0700

    Automatic changelog generation for PR #59574 [ci skip]

commit 629c06dee7
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Sat Jul 3 00:23:17 2021 +0100

    Adds blob as a midround antag like midround traitors, where it does not require a ghost role (#59574)

    Co-authored-by: Jonathan Rubenstein <jrubcop@gmail.com>
    Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
    Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
    Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>

commit d4ed79af38
Author: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Date:   Sat Jul 3 00:17:33 2021 +0100

    Fix error on secondary attacking certain secure closets. (#59867)

    * Feex

    * Reviewify

commit dd8e5e559a
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Fri Jul 2 13:21:36 2021 -0700

    Automatic changelog generation for PR #59939 [ci skip]

commit 3c202820ef
Author: interestingusernam3 <51925758+interestingusernam3@users.noreply.github.com>
Date:   Fri Jul 2 22:21:33 2021 +0200

    Makes polar bears not become easier to move after you kill and revive them  (#59939)

commit 5b35c83f3e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Fri Jul 2 08:59:41 2021 -0700

    Automatic changelog generation for PR #59921 [ci skip]

commit f5be9c5cee
Author: dragomagol <66640614+dragomagol@users.noreply.github.com>
Date:   Fri Jul 2 08:59:38 2021 -0700

    Removes reference to intents from Martial Arts instructions (#59921)

    In CQC, Plasma Fist, Sleeping Carp and Wrestling instructions verb:
    Harm -> Punch
    Disarm -> Shove

    Also removed reference to intents from the changeling's tentacle grab, changing it to neutral/combat stance.

commit c5914c4784
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 21:32:22 2021 -0700

    Automatic changelog generation for PR #59887 [ci skip]

commit 4ae906446f
Author: aaaa1023 <74441292+aaaa1023@users.noreply.github.com>
Date:   Thu Jul 1 22:32:19 2021 -0600

    Sink frames are now deconstructable (#59887)

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

commit 6e7a2372a2
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 17:18:09 2021 -0700

    Automatic changelog generation for PR #59773 [ci skip]

commit 444ae340d0
Author: tralezab <40974010+tralezab@users.noreply.github.com>
Date:   Thu Jul 1 17:18:06 2021 -0700

    Catwalk Flooring (#59773)

commit 8841fb0006
Author: Changelogs <action@github.com>
Date:   Fri Jul 2 00:11:47 2021 +0000

    Automatic changelog compile [ci skip]

commit 2c5a357035
Author: Rohesie <rohesie@gmail.com>
Date:   Thu Jul 1 21:06:42 2021 -0300

    Reverts Entered() passing dir instead of old loc (#59910)

commit 512fe152ab
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 16:37:38 2021 -0700

    Automatic changelog generation for PR #59918 [ci skip]

commit 1faae1350b
Author: Cheshify <73589390+Cheshify@users.noreply.github.com>
Date:   Thu Jul 1 19:37:35 2021 -0400

    Fixes Pocket Protector/Flashlight Pen Oversight (#59918)

commit ab8ba5ce2f
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 16:35:30 2021 -0700

    Automatic changelog generation for PR #59920 [ci skip]

commit 0ce099fd77
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Thu Jul 1 16:35:26 2021 -0700

    Fix rogue vending machines targeting incorporeal (#59920)

commit db71bc8455
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 13:56:53 2021 -0700

    Automatic changelog generation for PR #59909 [ci skip]

commit e1d3c12dba
Author: Sparkezel <53384660+Sparkezel@users.noreply.github.com>
Date:   Thu Jul 1 22:56:50 2021 +0200

    Make bat hits no longer stunlock (#59909)

    Wooden bats are 2nd best melee weapon in game, just next to stun batons. They cost 5 wooden planks which makes them ridiculously cheap and available to everyone, and the worst thing about them is how easily they can just stunlock people out of nowhere. I did what I believe was the best way to balance them out

commit 5600467371
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 13:31:14 2021 -0700

    Automatic changelog generation for PR #59884 [ci skip]

commit 05a4afd2fd
Author: Emmett Gaines <ninjanomnom@protonmail.com>
Date:   Thu Jul 1 16:31:10 2021 -0400

    Adds verification for reference layers to check if target config has the desired icon_state (#59884)

commit 65de6ac785
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 13:31:01 2021 -0700

    Automatic changelog generation for PR #59832 [ci skip]

commit bc09b1d15a
Author: Seris02 <49109742+Seris02@users.noreply.github.com>
Date:   Fri Jul 2 04:30:58 2021 +0800

    Makes it so changeling legs copy digitigrade/normal, try number 2 (#59832)

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

commit c7c84cc47d
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 11:58:36 2021 -0700

    Automatic changelog generation for PR #59735 [ci skip]

commit 38278f2e17
Author: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Date:   Thu Jul 1 14:58:33 2021 -0400

    Change uplink implants to inherit the uplink flags of the uplink they were bought from (#59735)

    Uplinks implants bought from uplinks inherit the uplink flags of the uplink they were bought from.

    This fixes an undocumented bug where by purchasing an uplink implant, nuke ops would be able to get things they normally can't.

    Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
    Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>

commit fee8d505f1
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 01:23:09 2021 -0700

    Automatic changelog generation for PR #59875 [ci skip]

commit b949810112
Author: Bobbahbrown <bobbahbrown@gmail.com>
Date:   Thu Jul 1 05:23:03 2021 -0300

    Remove ability to circumvent config VAS protection (#59875)

commit 77766aa79f
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 01:13:46 2021 -0700

    Automatic changelog generation for PR #59904 [ci skip]

commit 1524f80565
Author: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Date:   Thu Jul 1 04:13:42 2021 -0400

    Fixes OOC heart commendations not saving between rounds (#59904)

commit 8c2c0670c8
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 01:13:24 2021 -0700

    Automatic changelog generation for PR #59902 [ci skip]

commit e42f7f867d
Author: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Date:   Thu Jul 1 03:13:20 2021 -0500

    Fixes spread glowshrooms runtiming on initialize  (#59902)

commit e381dbd79e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Thu Jul 1 00:50:04 2021 -0700

    Automatic changelog generation for PR #59905 [ci skip]

commit 8168f8d84c
Author: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Date:   Thu Jul 1 03:50:01 2021 -0400

    Fixes being able to sacrifice pAI's (#59905)

commit c5c941766b
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 19:41:07 2021 -0700

    Automatic changelog generation for PR #59873 [ci skip]

commit 90a611a344
Author: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Date:   Thu Jul 1 03:41:04 2021 +0100

    Fix forensic component inheritance inserting null entries into lists and causing to_chat errors. (#59873)

    Fixing the following runtime:

    [17:13:04] Runtime in to_chat.dm,88: Empty or null string in to_chat proc call.
      proc name: to chat (/proc/to_chat)
      usr: Cowboy_penis_monster/(Zackary Mason)
      usr.loc: (Telecomms Control Room (105,89,2))
      src: null
      call stack:
      to chat(Zackary Mason (/mob/living/carbon/human), "", null, "", 0, 1, 1, 0)
      the forensic scanner (/obj/item/detective_scanner): add log("", 1)
      the forensic scanner (/obj/item/detective_scanner): scan(Control Room (/obj/machinery/door/airlock/command/glass), Zackary Mason (/mob/living/carbon/human))

    Forensic scanner attempting to add "" to the logs, which eventually gets output to_chat.

    Tracked error down to forensic component lazylists and the fun of trying to OR two lazylists together.

commit 86f12caeef
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 18:46:27 2021 -0700

    Automatic changelog generation for PR #59871 [ci skip]

commit 63f84711ed
Author: 小月猫 <alina.r.starkova@gmail.com>
Date:   Wed Jun 30 21:46:24 2021 -0400

    Fixes some minor tramstation mapping issues (#59871)

    * Added heavy firedoors on the windows between toxins and the sci hallways

    * Fixed air alarm placement in science

    * added missing air alarms in engineering

    * kitchen freezer now has the proper area

    * sec point near arrivals had no air alarm

    * added missing air alarms in security

    * added missing air alarms in science

    * added missing air alarm in escape hallway

    * removed redundant air alarm

    * added APC in kitchen

commit d368e4d49d
Author: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Date:   Wed Jun 30 17:51:35 2021 -0700

    Changes how weather sends sound to players, reduces sound loop overtime (#59284)

    * Converts looping sounds from a list of play locations to just the one

    * Updates all uses of looping sounds to match the new arg

    * Adds an area based sound manager that hooks into looping sounds to drive the actual audio. I'll be using this to redo how weather effects handle sound

    * Some structrual stuff to make everything else smoother
    Timers now properly return the time left for client based timers
    Weather sends global signals when it starts/stops
    Looping sounds now use their timerid var for all their sound related timers, not just the main loop

    * This is the painful part
    Adds an area sound manager component, it handles the logic of moving into new areas potentially creating new
    sound loops. We do some extra work to prevent stacking sound loops.
    Adds an ash storm listener element that adds a tailored area sound manager to clients on the lavaland z level.
    It's removed on logout.
    Adds the ash_storm_sounds assoc list, a reference to this is passed into area sound managers, and it's modified
    in a manner that doesn't break the reference in ash_storm (This is what I hate)

    * Hooks ash storm listener into cliented mobs and possessed objects

    * Documents the odd ref stuff, adds an ignore start var to looping sounds, fixes some errors and lint issues

    * Applies kyler's review

    banging

    Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

    * Cleans up some var names, reduces the amount of looping we do in some areas

    * Makes the code compile, redoes the movement listener to be more general

    * fuck

    * We don't need to detach on del if we're just removing signals on detach

    * Should? work

    * if(direct) memes

    Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

commit 52398b255a
Author: Changelogs <action@github.com>
Date:   Thu Jul 1 00:09:35 2021 +0000

    Automatic changelog compile [ci skip]

commit 7eacef421a
Author: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Date:   Wed Jun 30 16:01:26 2021 -0700

    Revert "Barticles for bonfires 2021 (#59869)" (#59916)

    This reverts commit 0ad74e9637.

commit c94d077ca2
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 14:32:34 2021 -0700

    Automatic changelog generation for PR #59893 [ci skip]

commit 39a9331614
Author: Malgover <56408561+Malgover@users.noreply.github.com>
Date:   Wed Jun 30 23:32:31 2021 +0200

    New riot gear sprites (#59893)

commit 852a839a50
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 14:31:51 2021 -0700

    Automatic changelog generation for PR #59869 [ci skip]

commit 0ad74e9637
Author: tralezab <40974010+tralezab@users.noreply.github.com>
Date:   Wed Jun 30 14:31:48 2021 -0700

    Barticles for bonfires 2021 (#59869)

    * barticles

    * better bode

commit 257b90dd62
Author: Rohesie <rohesie@gmail.com>
Date:   Wed Jun 30 18:29:03 2021 -0300

    Fixes oneway effects (#59872)

commit c3f659295f
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 14:25:16 2021 -0700

    Automatic changelog generation for PR #59888 [ci skip]

commit 7e2a944fc7
Author: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Date:   Wed Jun 30 23:25:13 2021 +0200

    Null rod radial menu update (#59888)

    Co-authored-by: Fikou <piotrbryla@onet.pl>
    Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>

commit be0e1c4360
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 14:16:27 2021 -0700

    Automatic changelog generation for PR #59684 [ci skip]

commit 6e01f2901f
Author: bloons3 <bloons3@users.noreply.github.com>
Date:   Wed Jun 30 16:16:23 2021 -0500

    Enhances AI law and borg logging (#59684)

    Persistent logging for sometimes disputed actions

    The "impacted cyborgs" is useful for reconstructing which borgs were synced to an AI at what time, which sometimes may not be clear from logs

commit 2d597584c8
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 11:38:34 2021 -0700

    Automatic changelog generation for PR #59866 [ci skip]

commit 02f0fe75fa
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Wed Jun 30 19:38:31 2021 +0100

    Adds the sound emitter circuit component (#59866)

    Adds the sound emitter circuit component. Allows the integrated circuit to play a sound of varying volume and frequency.

commit 6f3f14566a
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 10:21:11 2021 -0700

    Automatic changelog generation for PR #59865 [ci skip]

commit b9dbda85a5
Author: Time-Green <timkoster1@hotmail.com>
Date:   Wed Jun 30 19:21:08 2021 +0200

    Massively buffs debriding surgery (#59865)

    Yesterday, I got lasered in the arm twice. A good three minutes later I lose all controle off my arm and have an assistant debride my arm. On a surgical table with sterilizine, this took 2 minutes and 30 seconds.

    All wounds can be fixed quite easily, but the infection wound type has always been an absolute nightmare. This was the only time I recorded it, but this has happened so many times and it feels like the average lies around 4~ minutes for this surgery to complete.

    It still depends on how badly infected your burn wound is, but it shouldn't take longer than 30 seconds now.

commit a0941fe7f2
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 09:47:44 2021 -0700

    Automatic changelog generation for PR #59885 [ci skip]

commit fcf6bbd9ec
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Wed Jun 30 09:47:41 2021 -0700

    Fix cyborg locker right click (#59885)

    I guess silicon shared the old AltClick proc with other living, but that is not the case for secondary click.

commit a2a40e2b08
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 09:46:51 2021 -0700

    Automatic changelog generation for PR #59883 [ci skip]

commit 9d80156890
Author: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Date:   Wed Jun 30 09:46:46 2021 -0700

    Fixes an issue with performance logging (#59883)

    Redoes how logs are generated, calling profile() does not guarentee that the output logs will contain one of each entry, if the value is 0 it just doesn't return data for that entry. So we need to do some memes to make sure things are working properly

    Removes a debug proc that I forgot about

commit 7ad39850ed
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 09:40:26 2021 -0700

    Automatic changelog generation for PR #59882 [ci skip]

commit 71e2191f5f
Author: Bobbahbrown <bobbahbrown@gmail.com>
Date:   Wed Jun 30 13:40:22 2021 -0300

    Add 'other tickets by user' to adminhelp ticket panel (#59882)

    added a list of other tickets that have been opened by a user, when relevant, to the adminhelp ticket panel.

commit ce7a658c10
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 09:39:04 2021 -0700

    Automatic changelog generation for PR #59852 [ci skip]

commit 31e9f7444a
Author: KubeRoot <kubinator4321@gmail.com>
Date:   Wed Jun 30 18:39:01 2021 +0200

    Make transit tube dispenser stations buildable (#59852)

    Dispenser stations had some sprite issues due to using wrong icon states and having wrong orientation for flipped versions.

    This PR fixes the issues and adds them to the RPD.
    I can remove them from RPD construction if you don't want them to be constructible - this was the main motivation for implementing the changes in a downstream.

commit 3a0815f191
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Wed Jun 30 01:30:55 2021 -0700

    Automatic changelog generation for PR #59879 [ci skip]

commit 0f0714691e
Author: tralezab <40974010+tralezab@users.noreply.github.com>
Date:   Wed Jun 30 01:30:51 2021 -0700

    fixes buying shuttle insurance while the shuttle is docked (#59879)

    * ok

    * ??

commit bc79093c63
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Tue Jun 29 21:21:00 2021 -0700

    Automatic changelog generation for PR #59874 [ci skip]

commit 634049e1e9
Author: Bobbahbrown <bobbahbrown@gmail.com>
Date:   Wed Jun 30 01:20:57 2021 -0300

    Add $reset directive to config processor for setting a config entry to default value (#59874)

    added this so that the value of INTERVIEW_QUESTIONS (and subsequently any other string list) can be overridden without much issue by additional config files.

    i also changed the functionality of default on config_entry as it seemed to be counterintuitive to have it be set to the initial value of the config_entry. in my opinion this should be a compile-time default, and so i've refactored the code such that default now contains the actual default, and the config_entry_value is set at intialization.

commit 3542c43c5a
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Tue Jun 29 18:05:36 2021 -0700

    Automatic changelog generation for PR #59880 [ci skip]

commit 50954715d8
Author: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
Date:   Wed Jun 30 03:05:33 2021 +0200

    Fixes relic war hammer typepath (#59880)

    This PR fixes a typepath mismatch - /obj/item/nullrod/hammmer and /obj/item/nullrod/hammer, which are supposed to be one item. This mismatch caused relic war hammer not to be able to do kneejerk action, and it also meant that one duplicate nullrod item was showing in the radial menu for the null rod reskin variant selection.

commit 4549b0be9d
Author: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Date:   Wed Jun 30 02:03:58 2021 +0100

    Fix to_chat error with empty surgery step strings (#59876)

    /datum/surgery_step/incise/success() has no vague_message arg in a certain edge case when calling display_results. This eventually leads to an empty string being sent to /mob/proc/show_message() - Unsure if this is intended or not, but I've added an equivalent string based on the other usages of display_results instead of sending an empty string.

commit c0e41885b8
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Tue Jun 29 17:53:40 2021 -0700

    Automatic changelog generation for PR #59894 [ci skip]

commit 03c1ce3932
Author: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
Date:   Tue Jun 29 17:53:37 2021 -0700

    Fix hand teleporter and other portals looping forever (#59894)

    Makes portals use Bumped() instead of COMSIG_ATOM_ENTERED for detecting atoms crossing the event horizon.

    Removes unused and potential loop causing forceMove argument from do_teleport()

commit 2c7c09867f
Author: Changelogs <action@github.com>
Date:   Wed Jun 30 00:09:55 2021 +0000

    Automatic changelog compile [ci skip]

commit 7771a76dca
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Tue Jun 29 13:23:17 2021 -0700

    Automatic changelog generation for PR #59850 [ci skip]

commit 7e9e2df721
Author: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date:   Tue Jun 29 21:23:14 2021 +0100

    Adds USB to arrest consoles. Adds list circuit components. (#59850)

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

commit b2285bf29b
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Tue Jun 29 12:50:32 2021 -0700

    Automatic changelog generation for PR #59868 [ci skip]

commit d0181eacad
Author: Fikou <piotrbryla@onet.pl>
Date:   Tue Jun 29 21:50:29 2021 +0200

    Fix singularity beacon (#59868)

    Stops singularity objects from being added to the global singularity list,
    this list is only for singularity components.

    This fixes singularity beacons breaking because they expect that only
    singularity components are in the global singularity list.

commit 11b8701215
Author: AnturK <AnturK@users.noreply.github.com>
Date:   Tue Jun 29 21:13:12 2021 +0200

    Fixes minor quirk runtime. (#59870)

commit 2a1569a7a7
Author: Time-Green <timkoster1@hotmail.com>
Date:   Tue Jun 29 18:21:47 2021 +0200

    Remove unnecessary species breath code (#59864)

    Human code override breathe(), called the species datum which checked if the human had NO_BREATH. I just made it check for NOBREATH directly, since it is apparently a human only trait.

    If someone wants to implement special breathing checks/behaviour, make custom lungs

commit ae078ffbfa
Author: spessbro <51048066+spessbro@users.noreply.github.com>
Date:   Tue Jun 29 04:45:18 2021 -0400

    puts the drag_pickup component on card decks (#59857)

commit 3801c24229
Author: oranges <email@oranges.net.nz>
Date:   Tue Jun 29 20:44:43 2021 +1200

    Update rust-g version to latest release (#59863)

    * Update rust version to latest release

    This should fix the fact our docker build has been failing for the past
    10 days

    * Make wget not be quite so noisy

commit 79680e46aa
Author: Changelogs <action@github.com>
Date:   Tue Jun 29 00:11:50 2021 +0000

    Automatic changelog compile [ci skip]

commit 3c91a86cc5
Author: Rohesie <rohesie@gmail.com>
Date:   Mon Jun 28 19:44:53 2021 -0300

    Fixes a runtime: Entered() passing the wrong args (#59854)

commit c183ddf839
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jun 28 15:39:26 2021 -0700

    Automatic changelog generation for PR #59855 [ci skip]

commit c3917b8225
Author: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Date:   Mon Jun 28 23:39:23 2021 +0100

    Cooked steaks are once again edible. (#59855)

commit baa1b96449
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jun 28 07:03:25 2021 -0700

    Automatic changelog generation for PR #59520 [ci skip]

commit 24be009e96
Author: zxaber <37497534+zxaber@users.noreply.github.com>
Date:   Mon Jun 28 07:03:22 2021 -0700

    Jaunting no longer allows you to end up inside a wall (#59520)

    Jaunting now keeps track of the last five non-blocked tiles you moved across while in the jaunt. Upon exit, it will attempt to deposit you into the last unblocked tile. Should it run out of tiles to try, you will be returned to your starting location. As such, jaunting mobs can no longer end up inside walls or dense objects. Tables, and anything else with the climbable element, are still allowed.

    Added support to /turf/proc/is_blocked_turf() to allow ignoring climbable atoms.

    Added the TRAIT_CLIMBABLE trait, applied by the climbable element, to accomplish the above.

commit f7ac03beb0
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jun 28 07:02:01 2021 -0700

    Automatic changelog generation for PR #59848 [ci skip]

commit baf7efb692
Author: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Date:   Mon Jun 28 10:01:58 2021 -0400

    Slightly buffs knife wounds, slightly nerfs scalpel wounds (#59848)

    Recently it came to my attention that knives are actually really bad at causing slashing wounds, while the scalpel is probably a little too good at causing them, even through armor. So, here's what this PR does:

    Knives in general are more effective at causing slash wounds, especially if the target has no armor/clothing on that limb. The butcher's cleaver in particular is now equally as effective as a circular saw.
    Scalpels are a bit less effective at causing slash wounds against armor/clothing, though they're still extremely good at cutting, especially against exposed flesh.

    With these stats, knives will be more effective against unarmored targets, and can actually be counted on to draw blood when needed.

commit ff0031b244
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Mon Jun 28 06:56:36 2021 -0700

    Automatic changelog generation for PR #59779 [ci skip]

commit 52283197a6
Author: Sheits <81964183+Sheits@users.noreply.github.com>
Date:   Mon Jun 28 23:56:33 2021 +1000

    Paradox bag resprite and rework (#59779)

    Paradox bags can now be worn on the belt slot instead of the back, while being able to carry less (it can still fit inside bags).
    Adds new sprites for the icon and belt.

commit fbdfde900c
Author: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Date:   Mon Jun 28 14:11:33 2021 +0100

    The to_chat proc no longer accepts null or empty strings and runtimes instead. (#59843)

    * Catch null text sent to to_chat

    * Brain traumas no longer send empty to_chat gain strings

    * Make to_chat_immediate changes and clean up args list formatting

    * Fix empty to_chat message where there is no memo for admins

    * Fix additional edge case where there are no messages for the ckey.

commit 5f4c0baeea
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 19:02:23 2021 -0700

    Automatic changelog generation for PR #59675 [ci skip]

commit 901d6c0651
Author: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Date:   Sun Jun 27 22:02:20 2021 -0400

    Cyborg Cult Sacrifice Fix (#59675)

    This PR fixes cyborgs' interactions with Cult's offer rune. Before this PR, the game would attempt to sacrifice the cyborg and put its mind into a soulstone by handing it over to a method that was incapable of doing so, thus creating an empty soulstone and permanently removing the cyborg from the round as a result. Now, attempting to offer a cyborg on an offer rune provides the first activator with an option of any construct to turn the cyborg into, and turns them into that when chosen, similar to how twisted construct operates but without the wait time.

    Also moves cult construct list into global vars, renames THEME_CULT into THEME_FAKE_CULT and adds a real THEME_CULT for actual cult constructs, and added another proc to handle the class switching.

commit f7d2ce1510
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 18:11:55 2021 -0700

    Automatic changelog generation for PR #59839 [ci skip]

commit cb3835db08
Author: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Date:   Mon Jun 28 02:11:52 2021 +0100

    Fix obsessed antags not getting policy string output to chat (#59839)

commit ac8a7cdf5d
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 18:11:35 2021 -0700

    Automatic changelog generation for PR #59822 [ci skip]

commit f0da569a02
Author: Aronai Sieyes <arokha@arokha.com>
Date:   Sun Jun 27 21:11:32 2021 -0400

    Fix tgui async modals (#59822)

    * Fix tgui async modal constructor order

    * Fix another bug with the async modals

commit 80875b03a6
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 18:10:38 2021 -0700

    Automatic changelog generation for PR #59830 [ci skip]

commit 891d7bb363
Author: zxaber <37497534+zxaber@users.noreply.github.com>
Date:   Sun Jun 27 18:10:35 2021 -0700

    Sets RD consoles to have two ID card slots (#59830)

commit dffa8af41e
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 17:14:50 2021 -0700

    Automatic changelog generation for PR #59360 [ci skip]

commit d3dd525e08
Author: cacogen <25089914+cacogen@users.noreply.github.com>
Date:   Mon Jun 28 12:14:48 2021 +1200

    Cannabis has more believable effects (#59360)

    Adds cannabis reagent and replaces space drugs with it in cannabis products
    Adds space drugs to rainbow weed, which fits its theme and might satisfy the people who miss the effect
    Removes lipolicide from cannabis products in favour of the reagent consuming nutrition directly
    Cannabis reagent gives you messages describing symptoms of cannabis intoxication, makes you laugh, makes you hungry, has a chance to couchlock you buckled to a chair and put you to sleep lying down
    Cannabis no longer references hallucinating, can't be overdosed and has no addiction
    Adds Stoned status effect, which is applied by cannabis reagent
    Stoned status effect slows you down, gives you bloodshot eyes, makes you clumsy, boosts your mood and gives you the drugged sound environment
    Adds "stoned" icon state for Stoned status effect screen alert (sprite shamelessly stolen from the Smoke spell)
    Adds BLOODSHOT_EYES trait, which is applied by Stoned status effect
    Adds examine eye descriptions for bloodshot eyes and player-chosen red eyes
    Adds cannabis movespeed modifier, which is applied by the Stoned status effect
    Adds Stoned mood event, which is applied by Stoned status effect and gives the same mood boost as High but doesn't reference tripping

commit d986f791ed
Author: Changelogs <action@github.com>
Date:   Mon Jun 28 00:09:47 2021 +0000

    Automatic changelog compile [ci skip]

commit 1cdbec7a37
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 15:31:07 2021 -0700

    Automatic changelog generation for PR #59750 [ci skip]

commit 7ace8da9e0
Author: Kyle Spier-Swenson <kyleshome@gmail.com>
Date:   Sun Jun 27 15:31:03 2021 -0700

    Adds configs to disable laggy hard deletes (#59750)

    cl
    server: Added configs to disable laggy hard deletes once they lag the server too much.
    admin: laggy hard deletes only output once per type path.
    /cl

    closes #58379

commit 56ec8af075
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 11:12:53 2021 -0700

    Automatic changelog generation for PR #59820 [ci skip]

commit 2303f6a892
Author: dragomagol <66640614+dragomagol@users.noreply.github.com>
Date:   Sun Jun 27 11:12:50 2021 -0700

    Remove yellow siding tiles (#59820)

    They're only used at Centcom, and we have decals now to do what these tiles do.

commit 134f266f78
Author: Rohesie <rohesie@gmail.com>
Date:   Sun Jun 27 13:45:24 2021 -0300

    Document Moved() and forwards old_locs (#59819)

    - Passes the proper arguments on Moved(), forgot to do this on another PR.
    - Documents the proc better.
    - Cleans up code a little.

commit 3316e2223f
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 08:35:57 2021 -0700

    Automatic changelog generation for PR #59801 [ci skip]

commit a915c7167e
Author: Time-Green <timkoster1@hotmail.com>
Date:   Sun Jun 27 17:35:53 2021 +0200

    Refactors species stomach code, makes ethereal charge inherent to their stomach (#59801)

    A stomach would literally just ask the species datum how to be hungry and made a bunch of exceptions for ethereals. I mostly just moved code around so that hunger is handled by a persons stomach, thus shrinking the species.dm bloat.

    This also makes it so ethereal's charge mechanic is unique to their stomache, instead of this really weird inbetween where just nothing happens and you kinda starve to death. You can stick an ethereal stomach in a human and this will replace their hunger mechanic with the charge mechanic and lets them absorb power from APCs and everything. You can also give ethereals a normal stomach and they'll use the normal hunger mechanics

commit 04e845fa77
Author: AnturK <AnturK@users.noreply.github.com>
Date:   Sun Jun 27 17:33:23 2021 +0200

    Fixes projectile runtime (#59824)

    For example projectile moving into a chasm on last step.

commit 23790c6c5e
Author: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Date:   Sun Jun 27 07:43:49 2021 -0700

    Fix missing SIGNAL_HANDLER (#59826)

    Adds SIGNAL_HANDLER to everywhere that didn't have it that was picked up by dm-lua, which is now ready enough to catch these.

commit 8b2c21cfa1
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sun Jun 27 07:18:45 2021 -0700

    Automatic changelog generation for PR #59831 [ci skip]

commit c13a7a83a9
Author: Coconutwarrior97 <40315842+Coconutwarrior97@users.noreply.github.com>
Date:   Sun Jun 27 09:18:42 2021 -0500

    Free golem policy (#59831)

    Adds policy.json functionality for Free Golems, will make it easier for future headmins to alter the policy.json rather than PR a change.

commit 2f7c7d0bad
Author: tgstation-server <tgstation-server@tgstation13.org>
Date:   Sat Jun 26 19:26:36 2021 -0700

    Automatic changelog generation for PR #59556 [ci skip]

commit 67c89fa1ab
Author: Emmett Gaines <ninjanomnom@protonmail.com>
Date:   Sat Jun 26 22:26:33 2021 -0400

    Greyscale Mat Datum Stationary Smooth Tanks (#59556)

    Stationary gas tanks have been in a terrible place for a long time, this addresses some of the issues with a more balance focused change coming in a second mapping pr after this one.

    Stationary gas tanks have been made constructable and act similarly to canisters in that they can be damaged, repaired, and over-pressurized to explode. Additionally, they can be made with any rigid material and their stats depend on that material. A glass tank is going to have far less pressure capability than one made of plasteel.

    In terms of gameplay there are two main differences now: Adjacent stationary tanks will merge together both graphically and with their internal storage. Any port on any of the tanks can access this shared storage. Also stationary tanks no longer magically have many times the volume for gas as the tile it's in, instead they have a pressure cap and a normal amount of volume.

    Of interest to coders this pr also adds a generic grouping datum that acts similar to how pipe networks work. It maintains a listing of all adjacent objects whose type falls within a specified filter. In this case it's us…

* initial

* actually works

* Removes defines

* Autodocs, SIGNAL_HANDLER cleanup and better documentation
2022-03-04 00:31:40 -05:00
LemonInTheDark 815bb8ae40 Adds a movement looping system, replaces inbuild procs and spacedrift with it (#62567)
* Adds a subsystem to handle automated directional movement, replaces all instances of walk_towards with it. Makes meteors and immovable rods not drift in space, and makes immovable rods more destructive. Note, I've opted not to use byond's method of moving towards something, which is effectively Move(src, get_step(src, get_dir(src, target))) as it's cringe and doesn't make a smooth line. I've replaced it with a autoupdating rise over run setup, read the code for more details

* woop forgot the subsystem

* Documentation, contributing.md entry, and some cleanup

* Makes the moveloop datum more oop friendly, sets us up for a lot of conversions

* Converts the curseblob and walk_away() to the subsystem

* Changes the default for override from FALSE to TRUE

* converts walk() over, still need to add a replacement proc for it, but we didn't actually have anything that used the raw proc

* converts the rest of walk_to() over, nearing the end now

* cleans up some errors

* Fully documents everything, fills in some missing movement types, uses the power of oop to make things cleaner, and typepaths longer

* Finishes the contributing.md stuff

* Done

* Fefaults -> Defaults, can you tell I wrote this at 1AM?

* resolves bubblegum issues

* Roh's suggestions

Co-authored-by: Rohesie <rohesie@gmail.com>

* Cleanup

* Hey lemon, did you know that Destroy() lives on datums? ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

* Converts over the discrepencies created in my absense

* HAHA FUCK YOU I PAY MY DUES

* Whoops lost some stuff in the merge

* Converts the system from seconds to deciseconds to make dealing with the api more sane

* Some stuff I missed

* Makes movement an inheritable subsystem type, splits the moveloop file into two, one for the subsystem, and one for the datums

* Makes a subsystem that handles directing movers out to other subsystems. It's a bit bad right now, but it's a
good first step. I think I'll move the move loop datum to a lazy var on mobs instead of an assoc list, don't
like lists.

Also makes the movement procs global, I'll move em to the /movement subsystem at some point or something like
that

* Converts the existing uses of the procs over to the new format

* Adds support for subsystem precedence, so a type of A can override type B.
General cleanup, still kinda in debug mode but it's getting better

* I'll admit I'm not too familiar with this, but I think it will work

* Adds starting logic so movement types "pausing" makes any sense
Redoes how waiting is handled to make it based on world.time directly. I don't remember why. I think it's better
this way.

Adds a drifting movement type, moves space drift over to it.
Needs severe work before it's ready, too much info stored and modified on the moving object, see comment
Starts work on making drifting smooth

* Moves almost all space drifting vars over to signals on the movement datum
Properly implements glide size stuff for both the subsystem and the loops. Space drift will be smoother now.
It's not perfect, but it'll work just fine for now

Adds a way to override a client'd mob's glide size mid move, uses it to make entering a spacedrift look right
Adds a way to delay a client move outside of just move_delay, meant to be used for long periods, and setup such
that it doesn't make inputs persist

Adds flags to movement loops, alongside MOVELOOP_OVERRIDE_CLIENT_CONTROL, which blocks client movements while
the loop is firing, and for it's visual delay after

This means you can't exit a space drift until you hit the actual wall. This feels a lot better

Some general logic stuff, move() will return true/false if it succeeded or failed
Adds a stop_loop() proc that's called when a move loop is no longer active

Suck my nuts

* Moves precedence to the loop instead of the subsystem

* Moves drifting into a component, this lets me explictly block input after the move loop ends, so people can't
move the moment they functionally move onto a new tile
This is a bit underdeveloped currently, but that's a problem for another day

Cleans up some uses of move procs, fixes runtimes in metoer and curseblob code
Adds signals for stopping/starting a move loop, sending one for destroy is redundant.
Moves existing event signals from the movable being acted on to the loop itself, makes more sense this way
Makes the move handler return the created loop up the chain so we can register to it
Fixes a logic error in loop contesting code that lead to loops never actually being removed from subsystems
because they didn't know they should be.
Properly changes lifetime from a time to stop, to functionally an amount of moves to complete before stopping
Adds some new signals for pre/post loop process. This is to better tie into components.

I decided I didn't like the idea of tying all functionality to the loops themselves
The loop decides functionally how to move, components or just tied in signals can decide when/when not to move
and can modify properties of the loop

Making a new loop for things like atmos drift, something I'm interested in tackling in the future, seemed silly

* Moves movement procs directly to the subsystem for better namespacing or whatever

* Moves movement packets onto /atom/movable, no longer need the debugging
I've decided to not just put their contents fully onto atom movable, since it makes debugging on live much
harder, can't sdql for them anymore.

Fixes a runtime in meteor code, properly this time
Fixes a logic error in stop_looping
Makes move manager NO_INIT, because well, it doesn't init

* Commits human sin, makes Recover() work properly for movement subsystems

* Fixes immovable rod orbits not always working, they were returning too early in moved and fucking up the var we use to track move count, and thus not sending a signal properly

* Reworks the curseblob to use signals more, and to not use override

* Missed this in the movement ss commit

* Removes override, makes having a higher or equal precedence take its place

* Updates documentation

* Cleans up some unused defines

* Nukes the unused flags option

* Whoops forgot to qdel check

* Removes an unused var I had for client move prevention before I started using a component

* Let's do this properly

* Modernizes meteor code to better match how explosions actually work currently

* Some more cleanup

* Cleans up effect code a little bit
Nukes the effect system's sleep loop, we use movement loops instead
As a part of that, instead of 1 timer per effect spawned, we react to loop failure and make it 1 timer per
effect system
This should reduce the amoumt of slowdown we see after mass lighting break

It's not everything, we're still making a timer per spark effect, but it cuts things down significantly

* Updates explosions to not sleep

* Adds support for modifying a loops delay post process, makes extinguisher code suck less then it does currently, nukes some more sleeps and timer loops

* Converts water tank resin over to move loops rather then sleeps, minor behavior change mind, the cooldown starts on fire rather then on land, but I think that makes more sense anyway

* compile and runtime fix

* Fixes some runtimes, cleans up some code, ensures feature parity when it comes to logging

* Prevents resin foam from space drifting

* Adds support for flags back into the system, I need it for reasons

* Updates move_towards to fix some bugs and resolve some inconsistent behavior, implements a flag that makes a loop's first move start instantly

* Fixes extinguishers not actually transfering any reagents

* Converts sprays to the new system. This does actually minorly change behavior, in that I've changed the order of spray actions from step -> sleep -> wash to step -> wash -> sleep, but I'm not terribly torn up about it because frankly I think it feels better

* Converts grav catapults over to the new system

* Converts trays over to moveloops

* Converts robot streaking to move loops, the other two coming soon

* Compile you won't. Also fixes a behavior issue with oil streaks

* Does directional step_to properly, cleans up the other two streaking types

* Converts step_trigger over, not that it's actually used anywhere. Changes how stoping a move works, you need to explicitly qdel, other the step is just considered to be ignored. This will make life easier later

* Adds a jps movement loop. It's a bit bloaty, id is stupid, but it'll work just fine

* Makes the system support passing in a datum that's just used as extra context for the move. The hope is this makes signalizing things less of an absolute headache

* Begins the conversion of ai movement datums to movement loops

* These two are reasonably simple, only weird thing I'm doing is A: Not allowing target hotswapping, which I hope none is doing, and B: passing the controller into the move loop as extra context so things work properly

* JPS is a bit more complex, partially because the old implementation was a bit weird. 2 major things. 1: I'm dropping what I think was a redundant behavior minimum distance check from the premove bit of logic, since I'm pretty sure it didn't do anything. 2, instead of just stoping the step in an error state like being pulled, we count it against our max move total

* Audit

* Moves most forced movement to the framework, adds some components to make things nicer

* Implements a flag that makes the loop always operate, regardless of precedence and without impacting any other loops

* Moves movement subsystems into the right folder

* Hey potato what if you had two procs that did the same thing and one called the other? Wow it's useless

* Merges slipping and force movement

* Converys conveyors over to the system. It's a bit fragile, but I think it's totally worth it to save the sleep loop

* Precedence -> Priority, cleans up some logic errors, makes priority highest to lowest instead of lowest to highest, straight cleans some code up

* Makes poly and bubbles ignore spacedrift, now that precedence actually functions properly. I'm likely missing cases of this, will deal with it later

* Depression, thy name is linter

* Fixes linter, and hopefully fixes the runtimes in ci too

* Wew

* Sets sprays and extinguishers back to legacy, since people do actually seem to have noticed

* Spelling errors my beloved

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* More detail, moves return descriptions

* Converts transit tubes to the system?

* Adds the glide size modifier. Not honestly sure that this should be default, considering how crummy it makes things look for normal walking, but it's useful as hell here

* Adds a force move in dir template, actual support for fast initial steps (wtf old me) and a helper proc for setting delay

* Cleans up displosal code a bit, I thought about adding it to the system but it would functionally be just 'disposal loops'. Maybe I'll make a template subtype? not sure how I want to handle stuff like this

* Cleans up mob movement a bit

* Let's use the controller's visual delay

* Makes the resin thrower nicer, cries

* Cleans up some comments, replaces an implicit world.icon_size with an explicit one, fixes up a typecheck

* typecache instead of double istype. Can't do much about the !atom/movable, list would be too big I feel

* hhh

* bro wtf

* Documents the why of SS_TICKER

* Puts SSmovement on SS_TICKER. Lets us support tick steps

* Cleans up the charge action. Makes it use moveloops

* Fixes CI? kinda worried that this just got dropped

* Converts disposal pipes to move loops. They stutter a bit more then usual as of now, hoping that's a me thing, if it's not I'ma look at uping the priority of the base subsystem

* Moves the move subsystems off background, puts some on ssticker

* Prevents some things that shouldn't move in space from moving in space

* Documents the general form and usage of the system

* Virgin one vs chad once

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Removes unneeded check

* Moves appropriate movement subsystems into SS_BACKGROUND. Removes redundant SS_KEEP_TIMINGs

I do want the behavior of SS_TICKER, which at this point is tick based waits, and ignoring overtime when
calculating next fire.
Since honestly, these subsystems should ignore overtime in regards to next fire, the cost of moving A may be
nothing compared to the cost of moving B.

* Makes the MODULUS macro use floor. I knew our coders would never let me down, glad this exists, thanks ninja
Fixes teleporting caused by shitty round() behavior, adds a "you hit your target" case to homing loops

* Converts blood splatters to move loops, that'll do it

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2022-01-16 14:58:41 -08:00
AndrewL97 b3f5ab3c30 prevents ai from moving after being killed (#63455)
I don't like that they move, when you kill them
2022-01-03 17:11:36 +00:00
AMonkeyThatCodes 46cb925af0 Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept) (#60694)
Simple_animals / mobs are the biggest lie in this code-base. They're far from simple and have an extreme god-object problem. Especially when you get to /hostile, where there is so many procs, vars, and what not, that you can't make any interesting additions without snowflaking the hell out of the code.

This PR hopes to help kill this problem by introducing a new /living subtype, /living/basic. The idea of this refactor is to slowly start moving all old simple_animals to this new system, moving over behaviors like charging and more extravagant mobs like megafauna over bit by bit similar to how newfood was implemented.

One of the other big goals of this refactor is to move many of the fringe simple animal behaviors into either AI datums, or components/elements. (Some of which still needs to be done in this PR).

As a proof of concept, I created the base mob/living/basic, and moved cockroaches over to the system. Since cockroaches have both a passive, melee and ranged mob.

This PR does slightly affect balance as the behavior isn't 1-on-1 due to it no longer running on the janky /hostile behavior, but I tried to keep the effects to a minimum, and the glockroach and hauberoach are not spawnable through many means as far as I know.
2021-08-30 16:22:24 +01:00
ma44 7b5e83e1e9 Revives PR #58579; Sligh refactor to AI datums that allows for basic support of subtrees (#60249)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: coiax <yellowbounder@gmail.com>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Matthew J. <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Jonathan Rubenstein <jrubcop@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Emmanuel S. <emmanuelssr@gmail.com>
2021-07-28 17:56:31 -07:00
Ryll Ryll ced28d5cec 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
2021-03-07 02:19:38 +00:00
Qustinnus dc78e93543 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>
2021-02-25 19:39:02 +01:00
Qustinnus bb8faec7a1 Adds a subsystem for ai movement (#57111)
* done

* straight walk

* movement

* yep

* removes unused macro

* done

* Update ai_movement.dm
2021-02-23 22:29:32 +01:00