Commit Graph

703 Commits

Author SHA1 Message Date
AnturK 873c0a7765 Fixes strippanel stuff. (#48937)
* Fixes strippanel stuff.

* Cleanup
2020-01-23 12:52:35 +13:00
MrPerson f7eb2c905b Unicode awareness Part 2 -- copytext() (#48512)
* Unicode support Part 2 -- copytext()

This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.

I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````

with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.

This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.

* Makes the code functional

* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.

* Removes ninjaspeak since it's unused
2020-01-18 13:07:22 +13:00
Rohesie 675a358b1b Moves mob stat var changes to a proc (#48760)
* set_stat

* Adds a signal.

* Signal comes before
2020-01-15 16:43:10 -05:00
skoglol 5de437ff1c Adds specified give control option to mob VV (#48290)
* Adds specified give control option to VV

* click ckey to run

* Safer, less nullspacey.

* logging fixed

* review
2019-12-30 08:53:30 +01:00
Buggy123 0e1d968efc Round time starts counting from round-start, not world-start (#48273)
* Round time no longer includes time spent on startup.

* Add lobby time/round time check

* Indents
2019-12-22 09:26:47 +01:00
AnturK 6b422a3af8 Fixes client_colours runtime 2019-12-02 09:11:43 +01:00
Emmett Gaines 3cb25d9e6e fix to borg buckling offhand (#47978) 2019-11-26 16:24:30 +00:00
Emmett Gaines 5481515dff Removes the non bitflag slot defines (#47742)
Removes the non bitflag slot defines
2019-11-17 17:52:11 -08:00
Emmett Gaines 70cc9d71c1 Migrates equipment slowdown to a movespeed mod (#47782) 2019-11-16 05:28:51 -08:00
skoglol b20f151c0c Some ghost improvements (#47700)
* Ghost face direction and restoring ghost name.

* name wont reset

* Overrides canface
2019-11-13 17:52:00 -08:00
Emmett Gaines d8d1abadd1 Grab movespeed modifier (#47728)
* Migrates grab move delay to a movemod

Doesn't work until all grab state changes are hooked in

* Replaces grab_state sets with proc

`\bgrab_state\s*?=\s*?(\w+)` => `setGrabState($1)`
Check over the results, this will catch a couple false positives

* Catches a missed increment and fixes a bug
2019-11-13 03:30:28 -08:00
Rohesie 9dd28d5180 ID fix (#47387) 2019-10-30 16:17:55 -07:00
skoglol c949b059f2 Fixes pointing at something in darkness/past walls (#47379)
* Fixes pointing in darkness/past walls

* stray whitespace
2019-10-25 16:35:57 -07:00
spessbandit e3d1e5c53e ghosts can't use monitors; dextrous animals can climb crates; fixes atrocious spelling (#47262) 2019-10-22 04:37:35 -07:00
Emmett Gaines 8982f509b5 Refactors screen object update_icon to call parent (#47094)
* Refactors screen object update_icon to call parent

And makes update_icon an /atom proc

* Cleans up some missed null checks

The student teaches the master
2019-10-17 18:21:50 -07:00
KomradeSpectre 9ff071af60 Clockcult Removal 2019 (#47057)
* Nanotrasen fires the Wave Motion Gun at the Clock Cult

* Fixes a random changelog appearing from the reebe void.

* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.

* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.

* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron

* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
2019-10-15 10:13:41 +02:00
nemvar c38a7a3bb5 Removes a bunch of var/ in procs (#46946)
* Removes a bunch of /var in procs

* reset this

* Why wasn't this already?
2019-10-10 04:20:27 -07:00
nemvar 8cfe0f6467 Slightly improves visible and audible messages. (#46499)
* Doubtful improvement

* Switches out all the magic numbers with defines

* Thanks travis for finally finding a real error

* properly resolves some left over conflict
2019-09-18 12:52:18 +02:00
Qustinnus 72fe05f732 chain (#46563) 2019-09-16 14:34:43 -04:00
ATH1909 21909e2733 Makes borg buckling conflict less with inventory searching (#46364)
About The Pull Request

This PR finally splits up the ways that borgs are supposed to initiate inventory checks of a mobs and initiate attempts to buckle mobs to themselves (formerly, they would both happen upon click+dragging a mob onto yourself as a borg). Now a borg will only try to buckle a mob to themself if they ARE NOT on harm intent when they finish click+dragging said mob onto themself, and will only try to check a mob's inventory if they ARE on harm intent when they finish click+dragging said mob onto themself. An outsider can still buckle someone (even themself) to a borg who's on harm intent; the borg just can't do it themself.
Why It's Good For The Game

This issue is incredibly annoying to deal with as a borg (especially if you're in an area or situation where *spinning someone off of you could be risky), and I'm really surprised that it's taken this long for this control conflict to be fixed.
Changelog

cl ATHATH
tweak: If a cyborg click+drags someone onto themself, they will only try to buckle that person to themself if they (the cyborg) ARE NOT on harm intent. Attempts made by non-cyborgs to buckle themselves to cyborgs by click+dragging themselves onto said cyborgs should be unaffected by this change, even if those cyborgs are on harm intent.
tweak: If a cyborg click+drags someone onto themself, they will only attempt to check that person's inventory if they (the cyborg) ARE on harm intent.
/cl
2019-09-16 16:36:13 +12:00
kevinz000 6c50583b34 Fixes VV renaming (#46410)
* vv fix

* forgot the define
2019-09-10 20:13:09 +02:00
kevinz000 c6d710d40e VV refactors 2 - Actually not indefinitely WIP (#45217)
About The Pull Request

The thing other than ruining maps that I was working on
Refactors VV to use a more standard way of doing topic dropdown options rather than a huge if/else chain
Marking datums is now a right click option
Moves a few files around too/few procs
Why It's Good For The Game

Makes it easier to add more VV dropdown options in the future, and moving href list keys to defines make misspelling them harder.
Changelog

cl
add: Oh yeah also added a "return value of proccall" option for VV var editing.
refactor: View Variables has been refactored. It should now be easier to make VV dropdown options.
/cl
2019-08-03 14:43:26 +12:00
Kyle Spier-Swenson 0fa87b7bbd [s]Throttle mind notes (memories) (#45555)
* Throttle mind notes (memories)

Some dipshit is spamming this on ss13 servers

Limits to 100 times the message limit (removing old text after that), and one call every 5 game seconds.

* Throttle at the right place

* Not here

* We really need a generic throttler solution
2019-07-29 09:09:33 +12:00
oranges 800f24393d Convert some code docs into the auto doc format (#45101)
* Document datum, area,atom and some of the mob code

* Update

* Documented mob_helpers poorly

* Brief treatise on mob movement iself

* sdfasdf

* Add title to treaties

* Move readme file for say

* more say stuff for mobs

* Document login and status procs

* Add some goddan links like a boss

* Document some atom vars
2019-07-11 11:39:56 -04:00
nemvar 53d4c3f25a Refactor mob can_see_reagents (#44934)
Turns the scan_reagents var into a clothing flag.
2019-07-04 00:09:01 -07:00
kingofkosmos 6bbb64e2cf * more warnings 2019-06-25 21:46:21 +03:00
vuonojenmustaturska 8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
XDTM 3f28227f6c Makes surgery more stealthy (#44483)
About The Pull Request

Part of #44440

Surgery now gives detailed description to the surgeon and anyone within one tile of distance, and more vague or ambiguous descriptions to the patient and anyone further away. This can lead to a surgeon being able to perform a brainwashing in place of a brain surgery with nobody being the wiser, or implanting a different organ than the one agreed on, and so on.
Changelog

cl
add: Surgery steps are now shown in detail only to the surgeon and anyone standing adjacent to them; the patient and people watching from further away get a more vague/ambiguous description.
/cl
2019-06-18 11:44:58 +12:00
oranges 2d30317a49 Merge pull request #44510 from ninjanomnom/revert-datum-output
Reverts datum outputs
2019-06-16 08:31:38 +12:00
nemvar 74c8498c08 [Ready]Gives ashwalkers an antag datum (#44396)
* welp

* Savages, savages, barely even human.

* Savages, savages, barely even human

* You didn't see this

* h

* bee gone

* FFS, I mixed up my... ugh

* savage

* removed test line

* Turns ashwalkers into antags

* fuck

* hjjg

* fixes stupid

* g

* h2

* Damn...

* There we go?

* If it compiles, we can ship it

* Forgot the actually remove the thingy
2019-06-14 19:48:12 +02:00
ninjanomnom 56196df9c6 Reverts datum outputs
reverts #43038
reverts #41535
2019-06-13 20:09:10 -04:00
Rob Bailey 5743c9a748 Dragging prone mobs slows you down, fireman carrying (#44155)
About The Pull Request

Dragging prone mobs (resting, knocked down, stunned, dead, in crit, etc) that aren't buckled to anything slows you down.

You can fireman carry by aggressive grabbing then click dragging onto yourself. This causes a slight speed penalty that is lower than dragging.
Why It's Good For The Game

Prevents the classic "stun and beat the shit out of while zipping off" which is obnoxious and I don't think anybody likes besides the people who do it.
Makes it so if you feel like being a cunt you can rest while being arrested to make you a pain to take back.
Makes it harder to steal bodies and move away before anybody can properly react, but makes dragging bodies riskier at the same time
Fireman carrying adds an element of risk reward, it takes a little while of standing still to pick them up and also slows you down slightly. More useful to move someone a long distance out of a relatively safe area than a quick pull away.
Changelog

cl
add: fireman carrying. Aggressive grab then click drag onto yourself.
tweak: pulling prone mobs slows you down.
tweak: carrying another human slows you down.
tweak: pacifists can aggressive grab.
/cl
2019-06-09 23:54:02 +12:00
Ghom 17b3091867 Merges tinfoil (hat) protection into the anti_magic component. Implements it on Hivemind gamemode and telepathy. (#43978)
About The Pull Request

Was fairly shocked to find out hiveminds never took tinfoil hat protection in account, so decided to implement the factor in the game mode. Might have overdone it and probably erroneously changed a couple logics while getting rid of some really indented passages that could easily early return.
So what's said on the tin, this is lot more preferable than clunky is_type() checks on headwear anyway.
Also expanded tinfoil protection to hivemind and (non-revenant) telepathy.
Why It's Good For The Game

Let us remember the "purpose" of tinfoil hats.
Changelog

cl
code: Merged tinfoil hat kind of protection into the anti_magic component.
add: Tinfoil hats can also be warped up from excessive dampening of mindray/though control/psicotronic anomalies, or by simply being microwaved in an oven, and become useless.
add: Immortality Talisman and Paranormal Hardsuit helmets now come with tinfoil protection too (minus the paranoia and limited charges).
balance: Rebalanced many hivemind effects to be dampened/delayed by tinfoil shielding. Bruteforced Assimilate Vessel, One mind and Awake Vessel abilities will consume more tinfoil charges compared to others.
balance: Genetics/Slime/Alien Telepathy and Slime Link are now stopped by tinfoil protection.
/cl
2019-05-30 20:29:30 +12:00
vuonojenmustaturska e2104ed3c8 Blob refactor (#43872)
* blob refactor

* blobtype -> blobstrain

* fixes, chemical -> strain

* only /mob/living experience Life, blobs and other cameras can process if they need to

also other fixes

* call_life goes out

* ispath thing
2019-05-12 23:59:36 +02:00
vuonojenmustaturska fb45b7a017 Turns trait accessors into defines, fixes some bugs (#43820)
It's free performance.
2019-05-06 19:44:05 -04:00
Militaires cecf676684 [Ready] Outputs datum (#41535)
Idea and instructions by @Razharas, many thanks.

This PR only implements the framework required to catalog as well as play the sounds. Their to_chat text, and icons (if any) are not included, are to be pushed in a separate PR.

This PR does not remove the old playsound_local system, it is kept for the sake of not necessitating a direct changeover of every single playsound in the code, which will surely cause a lot of merge conflicts. It does however, replace bike horns' and toy nukes' means of playback to this datum, purely as proof of concept.

Playsound_local may remain in the code to support playback of admin-uploaded sounds that do not have an inherent datum. Playsound will likely be renamed to something else in the next PR to reflect its new, more universal function. We will see.

New process for adding sounds:

    Create a new datum/outputs subtype.
    If you wish, write down some supporting text; this gives further meaning to the sound.
    Add multiple sounds to the sounds list, and weight them as you wish. (New)
    Add a sound icon if you wish, it defaults to a generic sound circle anyways though.
    playsound(/datum/outputs/new_subtype, receiver), and it will deliver, icon, sound, and text to the receiver.

Maintaining implication is that from now on playsound should only be processing datum/outputs

This pr intends to gut to_chats that are added alongside playsounds in the code.
This pr eliminates the need to initialize sounds in a list so that you can weight them or have the game play them randomly from the list.

Sound Rings
Currently, only mobs with the audiolocation var may view them. Sound icons have an alpha that depends on the volume of the sound, louder sounds create a more opaque image

Sound rings are completely modular and may be changed to any image.

In addition to renaming playsound to reflect its new function. I intend to give blind people sound icons at the cost of their small view, but that is for another PR.

cl Basilman
refactor: refactored how sounds are stored and played
add: Added sound rings and supporting text
/cl
2019-02-04 10:25:48 +13:00
kevinz000 a7e974f9d3 [READY]Ports yet another SDQL2 upgrade, refactors SDQL2 to a datum, adds SDQL2 options/more features (#42008)
Thanks to PJB3005
cl
experimental: SDQL2 has been refactored to a datum!
rscadd: A new SDQL2 panel has been added to admin tabs, for tracking, VVing, and halting SDQL2 queries.
rscadd: SDQL2 documentation is now available in SDQL_2.dm
rscadd: SDQL2 now has MAP added. MAP will cause the query to execute on whatever is specified in MAP, whether it's a variable or a procedure call (which will grab the return results), etc etc.
rscadd: SDQL2 now has a superuser mode, for uses outside of admin button pressing. This causes it to operate without admin protection wrapping.
rscadd: SDQL2 now supports options, including ignoring nulls in select or forcing it to operate in high priority mode, which lets it use 95% of the tick instead of obeying the Master Controller's tick limit. USE WITH CAUTION. Also includes a mode for blocking proccalls
rscadd: SDQL2 now supports TRUE/FALSE.
rscadd: To use options, append OPTIONS to the query. Available are "PRIORITY" = HIGH/NORMAL, "SELECT" = FORCE_NULLS/DISABLE or 0/FALSE, "PROCCALL" = ASYNC/BLOCKING.
/cl

Also displaytimetext is refactored.
2019-01-07 20:03:41 +13:00
0d0be32b607ee4ecbc2358f3dd4a27de 00762e4851 [I GUESS THIS MIGHT BE TESTMERGED? I DUNNO] return of the ling action buttons (#41928)
cl 0d0be32, PKPenguin321, Armhulen, epochayur
refactor: Changeling powers are now action buttons rather than verbs.
imageadd: Thanks to epochayur for creating and compiling sprites for every single changeling action button!
imageadd: Thanks to Armhulen for the changeling button background sprite!
/cl

original pr #35394

the two main bugs i saw are fixed. reviving works, monkeyform/humanform works

fixes #41899
2019-01-03 11:33:18 +13:00
XDTM 9f74fef3d5 Allows the antimagic component to react to spells, limits holymelon uses (#41739) 2018-12-17 19:09:35 -05:00
Qustinnus b9f5dbac6b Adds a new race: Ethereal (also adds wrappers for nutrition adjustment) (#40995)
cl Qustinnus / Floyd / Ethereal sprites by Space, is that it? / Alerts and food sprites by MrDroppodBringer
add: Adds Ethereal; a race which lives off of electricity and shines bright. If they are healthy they shine a bright green light, and the more damaged they are, the less they shine and the greyer they become. Their punches do burn damage and they are weak to blunt attacks!
They dont need to eat normal food and dont have nutrition, Instead they gain charge by going into borg rechargers, eating ethereal food or doign specific interactions.
refactor: all nutrition changes now go through a proc so we can override behavior
/cl

Adds Ethereal. A race which is essentialy inspired by Zoltan but then with different mechanics to make it fit with SS13 more. I'm trying to stay away from making them actually provide power but the change from nutrition to electricity seemed kind of fun.

They have the following specifications:

    They are walking lights; and shine bright and green if healthy, and get greyer and darker the more damaged they are. When dead they are just a grey unlit corpse.
    They do burn punch damage instead of blunt.
    They are weaker to blunt; especially when low on charge
    They have charge instead of nutrition. Charge is gained by some interactions or by going into a borg charger. or eating new ethereal food.
    They are slightly stronger to shock damage, and gain charge from it a bit; however, it is still deadly to them and thus they aren't free insulated gloves.
2018-11-29 10:09:56 +13:00
ShizCalev dc019b09ba Fixes illiterate & blind mobs being able to read books (#41400)
cl ShizCalev
fix: Fixed inconsistency where illiterate and blind mobs were able to read some books/manuals, but not others.
fix: Fixed mobs being granted mime speak even if they failed to finish reading the Guide to Advanced Mimery Volumes 1/2.
/cl

Step towards resolving #41396
2018-11-12 21:10:21 +13:00
ShizCalev 24778debd1 Mob/topic fixes 2018-10-31 20:33:01 -04:00
Jordan Brown fb0b3a19f0 Merge pull request #41144 2018-10-28 14:09:53 -04:00
ShizCalev 17d894fcba Adds examine messages to disembodied & robot heads (#40999)
cl ShizCalev
tweak: Added some examine messages to disembodied heads indicating if it's missing eyes, or if it's brain is nonfunctional.
tweak: Added some examine messages to cyborg parts to indicate their current construction status.
tweak: You can now remove the power cell and cut the wiring out of a cyborg chest during construction.
/cl

Small indicator to help alleviate some minor wastes of time (such as folks bringing suicider's heads to the roboticist instead of the chef.)

Added some missing destroy handling, fixed vars not being set and unset properly, cleaned up some duplicate code in human/examine handling for departed souls.
2018-10-27 13:10:55 +13:00
MrDoomBringer 3d24bc0f08 Prevents blob overminds, sentient diseases, etc. from dumping out boxes (#40823)
* nerf boxes

* uuh i think i see what you mean. hows this

* shuffles it over to mob.dm

* asdf

* hows this

* ooga

* i should probably rebase

* t

* cheaper and stronger unlike me

* aaaaa

* does the thing with the words
2018-10-26 22:03:09 +02:00
AnturK 9306d01f6f Adds old name tracking to player panel, cleans up some name assignments. 2018-10-25 20:39:51 +02:00
oranges 294cd92353 Merge pull request #40951 from ShizCalev/ID-fix
Fixes fully_replace_character_name not updating bank account names
2018-10-18 00:03:16 +13:00
AnturK 65412f4088 Adds helper global mob signals. (#40936)
global mob death and global mob created signal.
2018-10-18 00:02:00 +13:00
Emmett Gaines 5d8419541b Adds movetype based speed modifiers and makes the mood speed mod use it (#40581)
This allows us to more easily keep track of speed modifiers which only affect certain move modes. Also cleans up a small bit of movespeed and mood code while I'm at it.
2018-10-17 23:17:07 +13:00
ShizCalev 47cb992bd6 Fixes replace_identification_name not updating account names 2018-10-15 22:59:25 -04:00