Commit Graph

188 Commits

Author SHA1 Message Date
Spookerton 978f4511a5 examine signature changed to include distance
- distance is INFINITE, 0, or a positive integer based on get_dist() between
the examiner and examinee's turfs when they are on the same Z. When the
examiner is dead or a ghost, distance is always 0.
- also updates /examine( implementations to use it!
- adds w_class_to_name proc for reusing "It is a X item." examine behavior.
2024-01-31 13:49:52 +00:00
Mechoid 7dc13d532f Demolishing Mobs (#9264)
* Work on the Bluespace Worm, Again.

Space worms propagate their sprites/tooltips/meat types/segment types from the head back.
Space worms have modified organ lists, only having a brain in their head.

Bluespace worms have a unique sprite done by Sypsoti/Schnayy

Bluespace worms have more xeno-organs in addition.

Bluespace worms convert eaten things to Magmellite, instead of Phoron.

* Target through walls.

Distance traveled when not hitting a solid structure during charge is based on the length of the worm.

Bluespace Worms drop xeno hide.

* can_demolish includes trees and barricades

simplemobs can now actually attack trees

* Truncated version of my Bluespace Worm pr.
Simplemob AI can be permitted to demolish walls, mineral turfs, and other common obstructions.

Simplemob AI can be given vision through walls, to make greater use of wall demolishing.

Spaceworm now has an AI controller with x-ray and demolishing capability to tunnel through rock / into buildings, and a wind-up charge that devours impacted mobs or structures.

* Thermic spiders are demolishers, and able to detect prey through walls.

* Inert.

* Decreased chance for thermic spiders to spawn, matching carriers and webslingers.

* Adjust for continued response & thoughts.

Thermic dropped to only Demolishing by default. Still a barricade buster, not a wallhacker.
Phorogenic bumped to be Demolishing. It's big, purple, and unlikely to care there's a twig in the way of its target.

Thermic now has an xray variant for PoI or adminspawn, similar to carriers having the recursion variant.

* Spiders:
Demolishing Phorogen and Thermic moved to subtypes

AI targeting only loops over range once, typecache manually checked for machines instead of making a new list from range again.

* AI targeting dist check instead of range

== FALSE check is a ! prefix, me.

Worm no longer early returns off its overshoot charge call as it does nothing but end the proc regardless of a successful movement

* Pain in two letters.
2024-01-14 14:10:24 -08:00
Ava 5ddf26c41b Slimes are smarter about opportunistic snacks (#9149)
* Slimes are smarter about opportunistic snacks

* Prevent calling for help against non-mob targets

* Ater's fix
2023-07-23 15:08:29 -08:00
MistakeNot4892 9edb69e93b I hate mecha.dm I hate mecha.dm I hate mecha.dm. 2023-07-04 22:01:48 +10:00
MistakeNot4892 0a08f37fd2 Preventing bot AI from stalling SSmobs hopefully. 2023-07-03 01:55:30 +10:00
MistakeNot4892 642348983f Fixing positional custom emotes. (#9011)
* Fixing positional custom emotes.

* see_emote cleanup.

* Further refinement work on custom emotes.

* Cleaning up some custom_emote() calls.
2023-03-08 19:33:25 -08:00
MistakeNot4892 2ab7622a30 Making floor decls use the decl repository. 2023-03-05 14:58:28 +11:00
MistakeNot4892 9b7ba12c89 Cleaning up storage attackby. 2022-11-16 14:02:54 +11:00
MistakeNot4892 44160ab8ba Enforcing no sleep during mob/Life(). 2022-10-24 16:51:32 +11:00
spookerton ffba11e5ab rename a bunch of atom flags 2022-10-18 09:36:41 +01:00
spookerton 3abdbbaa1c replaces atom.initialized with ATOM_INITIALIZED
refactors atom/var/flags to atom_flags and area_flags
moves NOBLOODY, NOBLUDGEON, and PHORONGUARD to item_flags instead of atom_flags
corrects various misapplied flags
2022-10-18 09:36:36 +01:00
spookerton a62dd54cf4 implement suggested behavior for #8703
closes #8703
2022-10-07 11:32:35 +01:00
Atermonera 21bd8477c7 Merge pull request #8531 from Spookerton/spkrtn/sys/global-agenda
updates all bare globals to use /global/ semantics, and all shared members to /static/
2022-04-24 19:56:07 -08:00
spookerton ee67e174fb use static for shared member vars 2022-04-24 07:52:32 +01:00
spookerton 1f3ffc2433 non-flagged, non-complex overlay -> ssoverlays 2022-04-24 07:51:12 +01:00
spookerton 1ccb2df2de trivial 1:1 overlays -> overlay proc changes
NB. In some cases we go from a more complex image() to a single icon_state string and I assume this works for every case but do not care to check because of the sheer scale of extra fiddly effort. Buyer beware, not my code.
2022-04-24 07:50:21 +01:00
atermonera 9d71839ac6 Removes devices 2022-04-17 19:14:43 -08:00
atermonera 7a9806d9b4 Removes weapons 2022-04-17 19:14:32 -08:00
atermonera c7f1880394 Revert "What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)"
This reverts commit 4d8c43f106.
2022-03-29 16:01:32 -08:00
Atermonera 4d8c43f106 What was supposed to be another straightforward major system overhaul that once again spiraled out of control (#8220)
* get_tool_quality has numerical meaning

* Basic tools set tool quality

* Toolspeed is replaced by tool quality checks

* Addresses assorted results from live test

* Extra cleanup
2022-01-16 15:52:55 -08:00
Atermonera 0232be9531 Repaths obj/effect/effect, datum/effect/effect [MDB_IGNORE] (#8312)
* Repaths obj/effect/effect, datum/effect/effect

* linter fixes

* No new

Co-authored-by: Atermonera <forslandm@gmail.com>
2022-01-16 00:14:39 -08:00
MistakeNot4892 2f0a618d45 /atom New() => Initialize() [MDB IGNORE] (#8298)
* Find and replace argless atom New() to Initialize().

* Manual replacement of no-arg New() to Initialize().

* Manually replacing remaining New() overrides.

* Fixing linter issues with now-removed New() args.

* Tidying area init overrides.

* Porting Neb's atom subsystem.

* Trying to isolate init problems.

* Adjusting Init code post-test.

* Merging duplicate Initialize() procs.

* Merge resolution.
2021-11-14 00:09:14 -08:00
Cerebulon 30b192cc2b Farmbot can be turned off, not just on 2021-08-11 00:18:08 +01:00
Atermonera 959511918c Replaces DEFAULT_WALL_MATERIAL with MAT_STEEL, where applicable (#8156)
* Replaces DEFAULT_WALL_MATERIAL with MAT_STEEL, where applicable

* floorbot compiles
2021-06-29 20:28:16 -07:00
MarinaGryphon 593246b595 Linter diagnostics + bans non-var relative pathing (#8150)
* Linter diagnostics + bans non-var relative pathing

* Enable DreamChecker Annotations

* make it executable

* update hashFiles

* oops

* tries to fix it... again

* trying again

* path

* repath

* fix perms

* fixes weird capitalisation issue
2021-06-20 13:14:29 -09:00
Neerti fdabe51ee8 Linter Introduction + Cleanup (#8085)
* Adds linter defines to repo.

* Uncomments linter defines already in the code.

* Resolves unreachable code linter errors.

* Nukes decade+ old syndie specops code except for computer since that's mapped in?????

* Resolves procs has no parent linter error.

* Proc signature fixes

* Bad comments

* "In" danger

* Type safety

* Implied nested list abuse

* Top level ..() usage

* Sleepy coder typos

* Invalid kwargs calls

* Pointless returns

* Linter hacks (see full message)

Byond doesn't care and it has no effect but linter doesn't like var/proc
for holding references to procs, despite that it's valid byond code.

Also, the linter seems to have serious issues figuring out relative
proc names. This commit is a sort of take-it-or-leave-it thing. It's not
required, it just cuts down on warnings, but this code is valid DM code.

* WHATEVER THIS IS

* Trick dreamchecker linter into ignoring this file's sins in it's weird use of vars

* Fix list decoration syntax - Its a list, not list of lists

- To declare that a var is a list you can `var/list/blah = list()` syntax or the `var/blah[0]` syntax.  Both do exactly the same thing. But if you do `var/list/blah[0]` that is just like doing `var/list/list/blah = list()`

* Hopefully stops the ai holder subtype folder from going quantum and sometimes changes capitalization over time, and incidentally causing 20+ linter errors.

* Fixes unwrapped negated object in list linter error.

* Resolves colon-like list accessing linter error.

* Turns linter on in linter config.

* Fixes closet indentation properly and cleans up suit storage unit switch.

Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
2021-05-25 18:17:26 -09:00
TheFurryFeline c3882a0590 Maybe Fix Cleanbots
Removes blood stuff, since it's already a cleanable, which is what a cleanbot is to clean, anything cleanable. Also effectively removes anything in the target_types list, replace with the base cleanable obj path so it cleans any children of cleanable. Tested, spawned stuff, it cleaned pie splatter, cobwebs, etc.

The way this was before, if there was still a cleanable that wasn't listed in target_types, the bot would get stuck forever without the un-included cleanable showing up in their target.

🆑
bugfix - Cleanbots no longer get stuck trying to clean something not in its target list
/🆑
2021-05-15 10:58:28 -04:00
Nyks 6526ca1b61 Updates all bots to use TGUI, and adds mute button for certain bots (#8035)
* tgui-bots

* Uhhh, guess it needs tgui bundle too?
2021-04-20 18:54:53 -09:00
Novacat 157fe17963 fixes typo in qerr quem ID (#8026)
* fixes typo in qerr quem ID

* Removes unnecessary comments
2021-04-09 22:47:50 -09:00
greggbot 59d7f9f3dd Stops slime securitrons from going ballistic when they get scratched (#7738)
* Stops slime securitrons from going ballistic when they get scratched so they can actually discipline properly

* Stops slime ed-209 from retaliating
2020-10-24 01:17:18 -07:00
Cerebulon 900c2b20e4 Graffiti + Filth Fixes (#7656) 2020-09-18 20:47:00 -07:00
Verkister 20f9a7449d Enables passtable for cleanbots (#7545)
One of the most common reasons behind cleanbots getting stuck in stupid places is because they went after some mess underneath table/rack/railing/whatever without ever getting to reach it.
2020-08-26 00:51:17 -07:00
Atermonera 9e2430531f Merge pull request #7522 from Meghan-Rossi/cleanbotaitweak
Improve cleanbot ai slightly
2020-08-20 22:27:47 -07:00
Meghan-Rossi d1ee8d117f Stop bots standing around blocking doors (#7509)
* Idle bots will move out of doorways

Idle bots will move out of doorways, including turfs with firedoors or blastdoors.

* +changelog

* fix parentheses
2020-08-20 19:31:57 -07:00
Meghan-Rossi 925b8350f5 Improve cleanbot ai slightly
*Multiple cleanbots will no longer attempt to clean the same tile at the same time.
*Cleanbots will now clean tiles closer to them first.
2020-08-18 20:12:57 +01:00
Rykka Stormheart 89bfe3be40 Mulebot and vehicle updates - they now run over mobs! (#7430)
* Mulebot and vehicle updates - they now run over mobs!

* Remove unneeded safety check, and lying check

* Fix Mulebots running over themselves, fix runtime with blood.dm
2020-08-06 21:21:18 -07:00
Atermonera 55b2c8d6ef Merge pull request #7354 from Neerti/status_indicators
Implements Status Indicators
2020-07-30 12:29:46 -07:00
Mechoid 7f5e74e5d7 Fix Medbot interact 2020-07-24 17:27:49 -07:00
Rykka Stormheart abc53cb88d Port Medibot Tipping! (#7356)
This PR lets you tip over medbots which prevents them from moving or healing, and they'll slowly get more and more distressed and desperate asking for help from people around them. After a few minutes (currently moments, but can be tweaked), if no one helps right them, they'll manage to right themselves up and snitch on whoever tipped them over to medical so the psychologist can keep an eye on them.
2020-07-22 03:09:23 -07:00
Neerti 94062a21bf Implements status effect icons for various statuses. Cleans up various variable accesses to use setters instead. 2020-07-18 12:53:32 -04:00
Rykka Stormheart 9917f31031 Merge branch 'master' into shep-dev-upstream-screenport 2020-05-30 06:54:08 -04:00
Rykka fc1d6e741c Ported /tg/ style screen alerts, replacing the hunger icon with them
This adds throw_alert() and /obj/screen/alert, a system that allows you to do custom hud alerts for any variety of things from "You're too cold!" to mecha status indicators for the pilot.

There's quite a few things that actually got replaced; the
fire/oxy/tox/co2 alerts are all now just alerts, as is nutrition. There's also a number of new alerts, such as blindness, highness, legcuffed, buckled, handcuffed, and probably some more I missed; read code/_onclick/hud/alert.dm and see for yourself!

Additionally, a number of tweaks have been done to resisting code, to make it so that there's an indicator when you're buckled or handcuffed, and can just click the alert to start resisting. This includes a refactor that combines the logic for lockers, holders all into one proc, called container_resist().

Also, the health and internals indicator got moved down one tile each. Needed room for the alerts. If we add the oxygen tank action buttons from /tg/ and remove the internals indicator, the health indicator can go back where it was originally.

Alerts, pictured in the top right.
![https://i.imgur.com/H7Bipci.png](https://i.imgur.com/H7Bipci.png)
2020-05-23 04:48:47 -04:00
Aronai Sieyes ad75bb86bd Alter playsound paradigm 2020-05-19 11:06:28 -04:00
ShadowLarkens 54a8a5823d Saycode Overhaul -- Multilingualism (#6956)
* Port ParadiseSS13/Paradise#2100 - Saycode refactor

* Removed unused old carbon slimes code

* Port ParadiseSS13/Paradise#5099 - Saycode part 2

* Ported ParadiseSS13/Paradise#7170's /datum/browser Check Known Languages

* Port ParadiseSS13/Paradise#9240 - Get rid of alt_name in favor of GetAltName()

* Port ParadiseSS13/Paradise#10330 - You can now use multiple languages in one message

* Addressed Atermonera's review.

Translators now print the full message if they find any languages within the
message that the user doesn't understand, minus languages it cannot translate.

Additionally, the combine_message proc has been significantly simplified
by eliminating an ugly tree structure with the help of a little helper
proc.

The removal of the extra span inside each piece doesn't seem to have
visually changed the messages in any other way than changing where the
wordwrap happens, strangely enough. Must be something in IE's code being
picky about invisible elements. On the bright side, it splits *later*
than it did before, thus reducing the lines a message will take up by a
tiny amount.

Also, a bunch of things now have the 'filter_say' class from
PolarisSS13/Polaris#6998. Since span classes with no definition are
totally valid and just don't do anything, this PR does **not** depend on
that PR being merged first.

* Always gotta be one
2020-04-20 01:11:53 -07:00
Aronai Sieyes ad5f0485f7 Clean up things 2020-03-25 22:10:56 -04:00
Leshana 767e6227f5 Replace all direct setting of mob.stat with mob.set_stat() 2020-03-20 23:45:29 -04:00
Arokha Sieyes 5b15917d32 to_chat replacing stream operator 2020-02-17 13:14:08 -05:00
Mechoid b687d7da7e Merge branch 'master' of https://github.com/PolarisSS13/Polaris into GlobSpecies 2019-12-05 23:55:44 -08:00
Mechoid 58e2ce2fb4 Change various global species lists to GLOB versions. 2019-12-05 23:55:22 -08:00
Heroman3003 0159551776 Stops bots from opening elevator doors (#6557) 2019-12-05 15:30:01 -08:00