* Monkeys are a bit more of a handful
They will aggro, steal, pick up weapons and stuff bodies in disposals
* search using held_items instead of manually
* Only natural monkies should reliably stun
Natural monkies don't try to stun-lock
* Pushes equip_in_one_of_slots to carbon from human
* Removed unused helper.
* Make the trip and stun only against monkeys
The main reason this is here is for the swarm behaivour.
* Just return true for now. It should flee on next life tick.
* remove blocking call from Life
* stuff_mob_in blocks so make it non-blocking
* add check to stop add/remove in same function
Only occours if the monkey attacks someone who isn't in the enemies list.
This only happens during a monkey swarm. Best to check.
* Fix for monkeys ripping stuff off walls.
* Moved shared emote/weaken down into living
Called the new function knockOVer. Monkey and Secbot both have different
control flow before the shared code.
* Stop monkeys fighting over body
* Remove commented out code
* Reduce flee range
* replace spawn with addTimer by moving code into callbacks
* Move magic numbers to defines
Also removed 900 delay in resisting cuffs as its a useless argument
* Refactor. Attacking has a function: monkey_attack
Combined de-aggro into it
* rework monkeyDrop to force drop
Also check for deleted items when snatching items
* Aggresive can be toggled by an admin
Allows for a mass mob of angry monkies
* Tweak aggressive monkeys to attack each other less
Monkey vs Monkey probability is a define
Warning: Once MVM combat breaks out in large mobs, mayhem insues
* Set the monkey back to idle once it attemps to dispose the body
* fix for aggressive monkeys self-harming
* comment wording fix
* changed walk2derpless to a callback and fixed deathgrip
* Allows syringes and droppers to show their reagents when examined.
* rearranges my logic
* replaces SEMIOPENCONTAINER with TRANSPARENT
* Silly spelling error fix.
* Moves the defines from flags to container_type to avoid issues with conflicting flags
* changes it back to obj/item/O
* Moves the OPENCONTAINER and TRANSPARENT defines to the reagents.dm
* SSthrowing + callbacks!
Throwing is now a subsystem.
It's low priority, but is a ticker subsystem so is ran before most other subsystems.
To allow for shit to run after the throw finishes, throwing now supports a callback.
A callback datum system was created, conversion of addtimer is planned for another PR.
Throwing now has a limit of 2048 turfs (was 600)
Throwing now ticks every world.tick, and properly converts the speed arg from 1ds to what ever tick_lag is.
Throwing now properly accounts for missed ticks.
Throwing no longer uses sleep.
Throwing should no longer lag since it's not filling the sleep queue up
* Smoother tentacles
* Some improvements
* Missed a spot.
* Makes shit quicker.
Inlines the thrownthing.tick() proc.
Raises missed ticks value
Lowers max dist value
Inlines the two sister overrides for /atom/movable/Moved() because that just seemed like a waste
* >PRs open that use procs i'm removing.
* STOP THE PRESSES!
* throw_at now runs the first throw tick() immediately
This will help some with throwing while running.
* Item throwing now imparts the momentum of the user throwing.
(ie, running in the direction you are throwing makes you throw faster, running away from the direction you are throwing makes you throw the item slower)
* Moves throwing momentum from carbon/throw_item to movable/throw_at.
There are other things that cause a mob to "throw" an item, I figured we keep this universal since thrower is already an arg.
* Explosions throw shit faster.
This was stupid, "Hey, lets set the item's throw_speed to 4 so embedding works, but lets make it throw at the base 2 throw speed for no reason."
* Fixes explosion embedding.
This also acts as a nice example of how to override a callback in an override of throw_at properly.
* Cyborgs reboot board tweaks
- Cyborgs now play the "I LIVE AGAIN" noise when rebooted, to give a
little bit of audio feedback.
- We use the grab_ghost() proc, because it's standardised.
* Only play the sound if the cyborg has a mind
* Fixed being able to hold twohanded-required items in one hand
Fixed dualsabers changing their weight_class and hitsound when unsuccessfully wielded
* Fixed ctf flags being unpickupable
* MMI'd clockcultists put in AI cores will properly lose clockcult
* uuuuugh
* fix the core while we're at it
* "
* mrrp
* this will also follow you around
* hmm
Fixes spider structures having null armor
Fixes division by 0 with hellcan
Fixes runtime in automatons
Fixes runtime with recharger in modular computer destroy
Fixes runtime in power monitor
* Cyborg upgrade board tweaks
🆑 coiax
add: Cyborg renaming boards cannot be used if no name has been entered.
del: Cyborg rename and emergency reboot modules are destroyed upon use,
and not stored inside the cyborg to be ejected if modules are reset.
/🆑
Reasons: Because being renamed "default name" isn't fun, and it means
you have to hang around to be renamed AGAIN. And for lore/balance/sanity
reasons, you don't get to get the reboot board back after you used it;
try dying less.
* Naming changes, and transformer tweak
- A new unnamed cyborg will copy the user's prefered cyborg name if
possible, defaulting to the old format if there's no preference.
- A rename board with no setting will apply the cyborg's default name,
if one exists, see above.
- Cyborg transformers (from the traitor AI) will no longer destroy all
items.
* Made behaviour more consistent
* Fix spelling
The offhand was deleted in unwield which can be called by dropped, which
can be called by unequip, which can be called by Destroy
By explicitly using wield as a guard, we avoid this