When I merged master into pull 1245 to resolve conflicts, I didn't notice that
the merge did some unintended things, like duplicating conditionals.
These have been corrected, and I also made more things call ..(act) so that
there is less duplicate code in different emote procs.
When an emote fails the switch check for a mob, it calls ..(act).
New files in mob/living and mob/living/carbon with associated procs that
handle these invalid emotes from higher emote calls.
If invalid on mob/living, mob/living will show the invalid emote dialog.
Slimes, Cyborgs, and MMIs do not call ..() on fail.
mob_sleep and lay_down are now procs of mob/living, added as verbs to whichever mob should have the ability to sleep or lay down (alien, monkey, human as of now)
Fixed the possibility to forcefeed brains snacks.
Removed the countdown of various status effects in brain's life() proc that shouldn't happen to brains anyway.
Adds a variable ('idle_env_destroyer') to all hostile mobs, denoting
whether the mob destroys it's environment while idling or not. Default
value is 0 (no). Syndicate, russian and pirate mobs are affected. Also
prevents aforementioned mobs from suiciding and/or wrecking away mission
environments before the player could see them.
Fixes hostile mobs interpreting 'null' as a valid target and always
being in HOSTILE_ATTACK stance.
Added helper: /proc/findchar(haystack, needles, start=1, end=0)
works like findtext except it finds the first occurrence of one of the characters from the needles string, within haystack.
Permissions can now be removed as well as added, by replacing the + with a -. e.g. +BAN adds bans permissions, -BAN removes them. This applies to admin_ranks.txt and the permissions panel.
Verb overrides are now possible for admins_ranks. Specific verbs can be forced-on, or forced-off via keywords like +/client/proc/mimespeak or -/client/verb/ooc. This applies both to admin_ranks.txt and the permissions panel. SQL system is not compatible.
admin_ranks are now datums. This means admin_ranks actually behave more like permission groups as intended.
When you temporarily modify an admin's permissions via the permissions panel, their rank_name is appended with "([ckey])". This prevents modifications to their rights affecting everyone.
admin rank names now support - _ and @ characters (since ckeyEx() does not strip these).
SQL permissions system was modified. SQL databases will have to be updated or they will no longer work.
WARNING: admin_ranks.txt and admins.txt format has changed slightly! You will need to redo those txt files!
* You have to be within camera vision to place the machine.
* The machine has been given a minute cooldown per each use, and will look unpowered when cooling down.
* Added a delete option for /Robotize() and used it in the machine, to stop items piling up and eventually crashing clients.
* The machine will make a sound when placed.
* Added auto conveyor belts which are always on unless unpowered or broken.
* Cyborgs built from the machine will only get 5k power cells.
* Added a changelog entry for this change.
Made the blob start strong but grow slower, helping stop situations where the blob is instantly caught and gets wiped out and stop the blob from being unstoppable after making 4 resource blobs.
Removed the AI quarantine laws from the blob gamemode.
People didn't like getting instantly KO'd by the blob, reduced the damage output to encourage melee engagements.
Blob overminds can see in the darkness now.
It will search list/L for a /datum/data/record with fields[field] == value, and return it.
This removes a vast amount of copypasta (there's still so much left in there though). It also removes all the locate(\ref[record]) I could find, which were normal used with topic(), meaning it was susceptible to abuse.
Secbots, ed209s and turrets are now smarter with their record-checks. They now prefer to use our face-name rather than id-name. ICly, this is the bot using facial recognition. This fixes an issue where it'd try to use the name variable which could be in the format "Unknown (as their id name)" when they were disfigured, etc. causing record-lookup to fail.
Additionally, these bots will treat those without a valid record in the security database, to be treated like criminals.
- Updated to new UI
- Put professions into columns to reduce the length of the window
Supply Ordering Console
- Updated to new UI
- Added "Main Menu" button to the top of all lists
Security Records Console
- Fixed colors (eyes should bleed less now)
Voting Panel
- Updated to new UI
Newscaster Unit
- Updated to new UI
DNA Modifier Console
- Overhauled UI to make it (slightly) more accessible
Airlock Control Console
- Fixed UI not updating automatically
- Updated to new UI
- Overhauled UI
Modules can just run install(target,user) and everything will work fine.
Upload computers cleaned up quite heavily. Less copy+paste. Removed that pointless "Open access panel" verb they had.
Law changing procs moved from mob/living/silicon/robot and mob/living/silicon/ai to mob/living/silicon. This means clear_inherent_laws(), add_inherent_law(), etc. This is what the new file is for. Doesn't change anything since they both had exact copies of the same procs.
NOTE: This commit doesn't change the maps, so don't checkout to this without the next one.