* Fixes typos in span, other html elements (#63510)
Atomizes a much larger PR for another time...
There are typos in span and other html messages that causes them to not render correctly or at all.
Bug fixes
Converts those instances of span to use the macro
* Fixes typos in span, other html elements
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Chimps no longer get grumpy when you hug them or throw things with no throw force at them. (#62685)
* Chimps no longer get pissed when you hug them.
* Pun Pun no longer hates hat throwing.
* Chimps no longer get grumpy when you hug them or throw things with no throw force at them.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds a (hopefully) comprehensive guide to writing an AI Datum in our repo (#61811)
AI Controllers are pretty difficult to learn if you don't have someone to explain the concepts, I thought I could cut that out by having a handy dandy guide to show people. If we're ever to eventually move all simplemobs onto basic mobs, we need to have a weapon like this to combat the questions.
The more people who understand Datum AI, the better. I remember a few maintainers mentioning that it would be nicer to have more guides in the repo, since it is essentially 9,970 bytes of future review prevention.
* Adds a (hopefully) comprehensive guide to writing an AI Datum in our repo
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* stops the monkey ai from committing 53k runtimes and makes it so they can disposal people again (#62121)
* stops the monkey ai from committing 53k runtimes and makes it so they can disposal people again
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
* Monkey subtree breakup refactor! (#61741)
Splitting up monkey ai into subtrees allows me to make a punpun ai after this pr is merged, makes stopping planning matter for the AI subtrees, and more generic subtrees that can be used by most ais
It also gets rid of bad practices like setting blackboards in the ai controller.
* Monkey subtree breakup refactor!
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* if you give a monkey an instrument, it will begin playing the donkey kong theme (#61726)
* if you give a monkey an instrument, it will begin playing the donkey kong theme
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Hauntium is chill with the undead, buffs hauntium stats (#61584)
* Hauntium is chill with the undead, buffs hauntium stats
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Refactors datum AI idle behaviors into datums (#61455)
Co-authored-by: MonkeyThatCodes <monkey>
* Refactors datum AI idle behaviors into datums
Co-authored-by: AMonkeyThatCodes <20987591+AMonkeyThatCodes@users.noreply.github.com>
* fixes bad arguments to /datum/footstep/Attach() (vary to sound_vary) (#61231)
#60479 changed the attach argument "vary" into "sound_vary" but didnt change the two associative arguments for vary to sound_vary. this does that. now Attach() wont runtime for the footstep element
* fixes bad arguments to /datum/footstep/Attach() (vary to sound_vary)
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Refactors connect_loc_behalf into a component (#60678)
See title. Also refactors caltrops into a component because they use connect_loc_behalf which requires them to hold the state.
This also fixes COMPONENT_DUPE_SELECTIVE from just outright not working.
connect_loc_behalf doesn't make sense as an element because it tries to hold states. There is also no way to maintain current behaviour and not have the states that it needs.
Due to the fact that it tries to hold states, it means the code itself is a lot more buggy because it's a lot harder to successfully manage these states without runtimes or bugs.
On metastation, there is only 2519 connect_loc_behalf components at roundstart. MrStonedOne has told me that datums take up this much space:
image
If we do the (oversimplified) math, there are only ever 5 variables that'll likely be changed on most connect_loc_behalf components at runtime:
connections,
tracked,
signal_atom,
parent,
signal_procs
This means that on metastation at roundstart, we take up this amount: (24 + 16 * 5) * 2519 = 261.97600 kilobytes
This is not really significant and the benefits of moving this to a component greatly outweighs the memory cost.
(Basically the memory cost is outweighed by the maint cost of tracking down issues with the thing. It's too buggy to be viable longterm basically)
* Update glass.dm
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Monkeys can now retaliate against xenomorph and animal attacks. (#60157)
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Monkeys can now retaliate against xenomorph and animal attacks.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
* Fixes carps being given orders without a friend. Fixes sentient carps being unridable (#60441)
* Fixes carps being given orders without a friend. Fixes sentient carps being unridable
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Sentient monkeys are no longer knocked over by mobs in the way. (#60139)
Title. They used to be immune to this in the past, but then they were refactored into a species and things have changed.
* Sentient monkeys are no longer knocked over by mobs in the way.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Makes carps not lose track of who they're following if vision gets obstructed (#60274)
* Makes carps not lose track of who they're following if vision gets obstructed
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
* Monkeys and dogs no longer yoink items they can't reach. (#60150)
* Monkeys and dogs no longer yoink items they can't reach.
Title. More ai behavior botherations.
* Monkeys and dogs no longer yoink items they can't reach.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Reverts Entered() passing dir instead of old loc (#59910)
* Reverts Entered() passing dir instead of old loc
Co-authored-by: Rohesie <rohesie@gmail.com>
* Makes turfs persist their signals, uses this to optimize connect_loc (#59608)
* Makes turfs persist signals
* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear
* Converts all uses of connect_loc over to the new patterns
* Adds some comments, actually makes turfs persist signals
* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work
* bro fuck documentation
* Changes from a var to a proc, prevents admemems and idiots
* Extra detail on why we do the copy post qdel
* Makes turfs persist their signals, uses this to optimize connect_loc
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Adds set_density()
Fixes one instance of a duplicate density assignment on an object.
Comments two hacky usages of density which will have to forgo using the setter for now.
Lets us append code to the event of density changing.
Pretty sure this is leading up to some multitile object thing -Lemon
Co-authored-by: Rohesie <rohesie@gmail.com>
* Corgis will no longer pick up non-items (like entire cars) (#59246)
I made one hell of a whoopsie with dog AI, letting dogs fetch and pick up and carry around things that are absolutely not meant to be carryable, basically anything that isn't anchored. This restricts their carrying ability to items.
Fixes: #59202
* Corgis will no longer pick up non-items (like entire cars)
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* I hate TGUI even if its better than what we had before
* this is why linters exist
* you need to be a Head or the Warden to get items
* does this please you linter?
* foundation
* basic interactions
* yea I can spell okay?
* linters please leave me alone
* begone debug code
* if you are dead, no interacting
* linters leave me alone
* linters are stealing my soul
* forgot to do this
* sound framework, probably wont work though
* max length, and interaction cooldowns
* message can now be a list and minor code improve
* I am a slave and linters are my master
* fix improper static reference
* add json loading/saving functionality
* default for message is now a list
* jsonize def interactions; implement requirements
* bad
* bug fix; CtrlShiftClick to interact
* minor qol fix
* fix CtrlShiftClick and remove debug code
* haha docker has security measures
* this was painful
* why are you in this branch
* begone
* bruh
* begone
Co-authored-by: Matthew <matthew@tfaluc.com>
Co-authored-by: Matthew J <GoldenKeyboard@users.noreply.github.com>
* use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
* USE SIGNAL_HANDLER REEEEEE
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Tidy HTML folder (#58761)
This PR aims to make the HTML folder a little more organized, as well as remove a few unused files.
Why It's Good For The Game
Doesn't change anything for the player, however makes the files more organized.
* Tidy HTML folder
Co-authored-by: Celotajs <81999976+celotajstg@users.noreply.github.com>
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc
* WHEW THAT WAS EASY
* Update ammo.dm
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* dogs now resist before fetching or harassing, to unbuckle from stuff if they need to (#58686)
fixes#58656 (Pets can move while buckled in their beds)
* dogs now resist before fetching or harassing, to unbuckle from stuff if they need to
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Adds new wrinkles to monkey brains (#58631)
This does a variety of improvements to monkey ai that I got drawn into after fixing a relatively simple bug with monkeys and guns. This pr is in support of #58565 so that in the rare chance pun pun gets a gun, they know how to use it. Previously #16630 made it so monkeys could use guns but semi-recently that was broken. Now that's fixed and in addition some other monkey ai capabilities were enhanced, read the changelog for the full list.
* Adds new wrinkles to monkey brains
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>