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.
* Changes navbeacons to no longer use radios (Doing so was slower and didn't really help anything) Note: var/freq remains for mapping compatibility until all maps are updated.
* Fixes navbeacons to actually hide under flooring if you put plating over them.
* Changed how navbeacons are mapped in. Don't use the picky "code_txt" variable, instead use appropriate subtype.
* Made useful reusable subtypes so you don't have to code in a type for every. single. one.
* Updated mulebot to use new navbeacon codes.
* Re-activate patrolling! With the new navbeacons, bots with will_patrol can follow the patrol navbeacons.
* Note: various "should_patrol" variables on each bot type unified under /mob/living/bot/var/will_patrol
* Securitrons (beepsky) got an overhaul to the new patrol routing.
* Note: BayStation replaced the snowflake handcuffs code with acutal handcuffs. Polaris handcuffs requiere a grab to work, so are more complicated. Kept our existing attack code.
* Behavior procs reorganized to use better movement detection and just be more flexible.
* Floorbot fixes & removal of bridgemode
* Floorbot will now remove & replace broken floor tiles.
* Floorbot will no longer decide its okay to pave over all of SPACE.
* For the moment patching hull breaches is disabled, it is too laggy.
* Sundry bugfixes to all bots
* Use forceMove() instead of setting loc
* Use "\The [X]" message strings.
* Pass target to do_after() when doing something to a target.
* Fixed events that were supposed to emag bots to now do so again.
A lot of new defines are now in inventory_sizes.dm, which contains;
All the size identifiers (the thing that tells the game if something is bulky, or w/e).
Storage costs for all the sizes, which are exponents of two, as previously.
A few constants for inventory size.
Also changes all storage item's capacity definitions by basing it off of how many 'normal slots' exist for it. This allows one to change the definition for all of the defines in the file, and everything will follow along without needing to change 500 files. In testing, I made all ITEMSIZE_COST_* defines doubled, and nothing had broke.
The benefit of doing all of this is that it makes adding new weight classes in the future much simpler, and makes knowing how much space a container has easier, as seeing ITEMSIZE_COST_NORMAL * 7 means it can hold seven normal items.
General:
Bots are now /mob/living/bot. They support player control fully. Just in
case an admin feels like letting a ghost take control of beepsky or
something.
Since they are bots, spooders and whatnot will attack them.
They now don't need an open panel to be emagged.
Spawns replaced with do_after, meaning that they will stop
injecting/cleaning/repairing/arresting if pulled away.
Medbot:
Emagger is added to ignore list.
Will now inject spaceacilin regardeless of disease type and level.
Previously: only if disease was past stage 1 or airbone.
Cleanbot:
Patrolling rewritten. They now find a closest beacon, and go to the NEXT
beacon after the closest one.
They will not wiggle out when pulled.
They will now ignore (for a while) the gibs they make if odd button is
pressed.
They will now freely claim cleanables. Previously, they would not target
ones targeted by other bots.
Floorbot:
This was a helluva buggy one.
They will now build bridges (but still won't do random repairs) in space
area.
They will now build bridges even if the tile directly next to them in
that direction is tiled.
They will now ignore for a while a tile they can't reach. This is to
stop them from hopelessly targeting tiles under grilles for upgrades and
getting stuck.
They will now slowly (200 ticks for a tile) build new tiles on their
own.
They will now preserve tile's icon when repairing it like a player
would.
They will now place first rods, then tile when fixing space breaches.
Rod costs two tiles.
When emagged, they will first always tear off the tile, then will (over
triple the normal amount of time) breach the tile to space. There are
noticeable warnings for both actions.
Secbot:
Will no longer run away to patrol when panel is open.
Now deals stamina damage instead of instastuns.
Small delay between approaching the target and stunning them.
Laserbots axed.
Removed their weird EMP act.
Will no longer stun lying people, just cuff.
They will also demand surrenderring (lying down) before smacking you. If
target moves, or 5 seconds pass, it will attack.
Farmbot:
It's alive!
It has settings to: water trays, refill its own water, uproot weeds, add
nutriment (ammonia, internal synthesizer), collect produce, and remove
dead plants.