Commit Graph

147 Commits

Author SHA1 Message Date
Andrew
f4f754cd2a Nanite programs with triggers won't ignore rules (#56516)
* Added condition check to the trigger function

* Reversed the statement

* Updated the comment
2021-02-01 21:44:43 +01:00
Andrew
016ec5f523 Ability to select the logic for Nanite rules (AND, OR) (#56542)
Added a button to the Nanite Cloud Controller Rules UI with two states:

- Meet all (default) - all rules must be met to run the program
- Meet any - any of the rules must be met to run the program

This change doesn't impact the default rule behavior, but gives an
ability to create more flexible rule setups when needed.
2021-02-01 17:03:40 +00:00
Timberpoes
e85cf07b96 Mirror logging for brainwashing and hypnosis in the player panel and attack logs. (#56515)
Hypnosis and brainwashing now have entries in the Player Panel logging
under attack and entries in the attack logs.

Mirrors some logging that would otherwise just be in the game logs.
From an admin-perspective, issues where you'd want to check
brainwashing/hypnosis tend to go hand-in-hand with issues relating to
attack logs as opposed to game logs.
2021-01-31 20:21:38 +00:00
TemporalOroboros
1f1b58bb26 Adds Neon Carpet (#55782)
* Adds emissive carpet, adds plane support to decal element

- Adds a basic abstract/debugging emissive carpet
- Makes decals capable of supporting plane
- Adds auto-smoothing decals

* Adds simple neon carpet variations

* Adds neon carpet reagents and recipes

* Refactors emissive blockers to allow multiple layers of emissive / emissive blocking objects

- Splits the emissive and emissive blocker plane masters into several plane masters which handle different layers of emissiveness.

* Makes neon carpet tile stacks emissive

* Rearranges and docs some emissive plane masters

- Folds the overlay lighting plane master into the emissive planes since it is also used to mask the lighting plane

* Fixes null mats_per_unit stack recombining after splitting

- I think I broke this a while ago when I reworked how stacks handle materials. Whoops.
- This basically only effects carpet at the moment. Good thing I did this when I did!

* Adds neon carpets to cargo

- Adds a cargo supply crate containing a _lot_ of neon carpets for 3000 credits

* Fixes neon carpet highlights leaking through vending machines and such

- Turns out vending machines axed their own emissive blockers whenever they updated their icon because they cleared their managed_vis_overlays...
- Generic emissive blocking has been elementized and some update_overlays procs have been straightened out.

* Fixes id_arg_index for the emissive blocker element

* Commits @Rohsie's suggestions
2021-01-25 01:55:04 -08:00
Ryll Ryll
787bbeddbb Improves Bleeding Feedback + Misc Wound/Organ Decay Tweaks (+ Removes Teeth) (#56056) 2021-01-14 23:53:34 -08:00
TemporalOroboros
e543f07f56 Fixes nanite purge runtime on simple mobs (#55902)
- Makes nanites not try to purge reagents from mobs without reagents
2021-01-03 22:25:44 -08:00
coiax
8fbea46caf Tweak nanite subdermal ID to include pulled cards (#55883)
Some mobs which are capable of hosting nanites have no hands to hold ID
cards to be scanned, such as unexpectedly sentient Captain Ian. But now,
give them subdermal ID nanites, pull the ID card, and then you have a
full-access simple mob.

Note that this DOES NOT scan the ID cards of pulled mobs, only if you
are pulling an actual ID card. It is not possible to grab the captain to
leech his access.
2021-01-02 14:44:56 -08:00
TiviPlus
0eaab0bc54 Grep for space indentation (#54850)
#54604 atomizing
Since a lot of the space indents are in lists ill atomize those later
2020-11-30 12:48:40 -05:00
Coffee
4e243c626e Fixes forced speech nanite oversight (#55164)
All of the stunning emotes were blacklisted from the forced speech program. However, *faint was not added this to the list, and this is an oversight. This is a simple one line fix to add it to the blacklist.
2020-11-26 14:40:22 +00:00
XDTM
027aa228d5 Adds 'off' icons for nanite machinery (#54902)
* Adds 'off' icons for nanite machinery

* overlays

* overlays II
2020-11-21 17:29:20 -08:00
XDTM
03de3dfb07 Adds a set of nanite storage protocols as a Bepis research, plus small nanite adjustments (#54710)
Adds a new set of nanite protocol programs as a researchable Bepis tech.
Protocol programs are programs that are mutually exclusive within their time, so remember that only one of the following can be active at once in the same host.

    Hive Protocol: Makes nanites use space more efficiently, increasing maximum volume by 250 (500 -> 750)
    Zip Protocol: Makes nanites use a compression routine when not in use, increasing maximum volume by 500 (500 -> 1000) but consuming 0.2 nanites per tick to perform the zipping/unzipping
    Free-Range Protocol: Makes nanite use looser storage routines, reducing the maximum volume by 250 (500 -> 250) but gaining 0.5 nanite replication rate
    S.L.O.P. (Safety Level Override Protocol): Removes nanite storage safety measures, allowing them to reach up to 2000 volume. However, when the volume surpasses the maximum recommended volume (500) the host will start to suffer from side effects, manifesting in slow organ damage. The more the nanite volume approaches the physical limit, the more harmful it becomes.

Replaced the Tinker Nanite Replication Protocol with the Pyramid Protocol, which gives an extra 1.2 regeneration rate, but only while the nanites are at 80% volume or above.
Renamed the Offline Production Protocol to Eclipse Protocol.

Chain detonation now uses dyn_explosion(), at a rate of 1 power per 50 nanite volume. The power level should be similar to how it was for normal nanite volumes, but it should scale more linearly when going above the limit with the new programs.

If nanite volume is suddenly significantly higher than the maximum allowed (likely caused by deleting an active storage protocol) the extra nanites will be forcefully expelled from the host's body, which can range from minor oozing, to vomiting puddles of nanites, to nanites rapidly bursting from eyes, ears, and skin pores.
Despite how it looks, this process causes no lasting damage, since it's a security feature made to prevent acute nanite poisoning.

Added some comments on a few nanite functions.
Refactored vomit code to make it a bit more customizable. The toxic arg (supposedly used to choose an alternate vomit icon, but in fact not functional) is now vomit_type, and purge (which determined vomit would remove 10% of reagents or 67% of reagents) is now purge_ratio, which accepts custom values. Made the refactor mostly to allow a 0% ratio, but it can be handy in other future uses.

Adds extra content to Bepis research, giving a little more reason to invest money into it.
Creates more options to customize a previously rigid parameter in nanites, maximum nanite volume. This opens up strategies that involve storing up large amounts of nanites for special occasions, or viceversa reducing the maximum rate to get more constant replication rate to sustain continued programs.
2020-11-20 12:07:20 -08:00
XDTM
8cc691d43e More nanite logging (#54792) 2020-11-05 23:56:52 -08:00
XDTM
fcec27019b Fixes infective nanite programs not syncing cloud id (#54793)
## About The Pull Request

I have always meant to have infective programs copy over every property of the infector nanites, and i've only recently noticed from some log diving that this wasn't the case, and cloud IDs were defaulting to 0 (unsynced).
I probably never updated it since i made cloud nanites the default, assuming that the AddComponent handled it on its own.
Since an unsynced cloud ID causes constant software errors, this makes the infective programs much less useful than they're meant to be.

**Note: I'd also love to make the infectee's cloud ID a customizable parameter to allow for a wider range of possible uses, but avoided doing so to not violate the feature freeze. I'd gladly add that part if a maintainer gives the ok.**

## Why It's Good For The Game

Makes Viral Replica not obligatory for anyone who wants to use a spreading nanite program. Without it, the cloud IDs of infectees are defaulted to 0, causing degenerative software errors due to lack of cloud sync, which are likely to ruin any gimmick that involves infecting unsuspecting victims.
2020-11-05 12:36:35 -05:00
XDTM
b415ed1eee Cleans up suit/nanite sensor code a bit (#54670)
* Cleans up suit/nanite sensor code

* linted
2020-11-03 01:31:08 +08:00
XDTM
c9f9f2ed36 Fixes nanite comm remotes (#54511) 2020-10-31 20:31:02 +08:00
Qustinnus
74755a5a3a Audio falloff re-work, and increased audio range. (#54362)
imo; the ss13 audio-scape is quite barren, you can only hear most things if you can see them, which in my opinion doesn't make much sense. This changes that so you can hear further away, but falloff is much higher, so in reality you will only hear things relatively quietly when they're out of sight.

This PR increases the hearing distance of most sound by 9, excluding sounds such as antag items that are meant to be used stealthily

This PR also replaces Byond's inbuilt falloff system with something I made, (And thanks to potato for helping me throw together a formula for it). This fall-off system makes sound fall off more naturally, with sounds being full volume within a certain range, and then softly falling off until they are completely quiet. This makes for a smoother transition between "This sound is full volume" and "I dont hear this sound".

Co-authored-by: ff <ff>
2020-10-20 17:14:16 -07:00
ZeWaka
9629feed35 Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
2020-10-13 16:43:53 -03:00
Rohesie
3cc7733f34 Moblity refactor: hands blocked and restrained edition. (#53981)
Splits the restrained() proc into component traits: TRAIT_HANDS_BLOCKED for the general inability to use hands and TRAIT_RESTRAINED for the more specific condition that permits arrests.
    Code moved away from the update_mobility() proc so it doesn't have to wait for an update, instead changing based on events. The idea is to eventually kill that proc.
    Wrapper proc added for setting the handcuffed value so we can react to the event of it changing.
    Kills the RestrainedClickOn() proc. That is now just an UnarmedAttack(), in where the ability to use hands can be checked. Monkeys keep their bite attack and humans their self-examine.
2020-09-29 11:23:43 +01:00
Timberpoes
1f23cc281d Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
2020-09-26 11:52:39 -03:00
Tad Hardesty
f80836d00d Fix broken dmdoc crosslinks (#53896)
- Backtick-escape code samples which contain `[]` syntax.
- Fix all crosslinks to nonexistent symbols.
- Somewhat improve docs for qdel defines, research defines, dynamic mode, and others.
- Remove unused bloodcrawling defines.

Some crosslinks to defined but undocumented symbols remain. For BYOND builtins, a future dmdoc version may link those symbols to their entries in the DM reference. Other symbols could be documented by a future PR.

New "file" crosslinks as used in `research.dm` are slated for release in a future dmdoc version.
2020-09-23 03:47:44 -03:00
Timberpoes
cced2d5cdc Nanite Increased Diagnostics Program (#53157)
Makes nanite reduced diagnostic function baseline and adds new increased diagnostics program

* A better way

* Increased Harmonic Nanite research costs by +1000/+1000

* Harmonic nanite passive boost.
2020-09-06 14:40:56 +03:00
NightRed
52a0183e80 Cleans up extinguish_mob and prevents perpetual fire (#53252) 2020-09-02 19:48:50 -03:00
Rohesie
988319b3e3 mobility refactor (#52929) 2020-08-24 13:56:07 -07:00
Rohesie
3a1020e47d Crit status refactor (#53117) 2020-08-24 07:41:00 -07:00
silicons
452d2ad6e7 [s] sanitizes nanite extra settings (#53065)
/datum/nanite_extra_setting/text/get_value()
return html_encode(value)

HTML injection bad. Brainwashing and potentially happiness programs are all subject to this, unless code has changed for how objective text is rendered. I don't think there's any case where nanites even need to be able to accept raw html.
2020-08-20 07:57:42 +12:00
CRITAWAKETS
2d9506cf43 General nanite nerfs. (#52937)
Nanites have recieved a general nerf, mostly in the healing department. This is probably not enough nerfs, actually.
2020-08-18 22:32:50 -03:00
Qustinnus
f54de4a2b8 refactors resist act to be on atom level (#53016) 2020-08-18 20:30:44 -03:00
Jared-Fogle
5f693dc11d Fix XSS in skull echo (#52993)
About The Pull Request

Closes #52992
Changelog

cl
fix: Skull Echo now correctly encodes its speech.
/cl
2020-08-17 13:51:20 +12:00
Jared-Fogle
7df16c595e Confusion will no longer continue to confuse after being cured (#52286)
* Confusion will no longer continue to confuse after being cured

* Grammar comment fix

* Move to status effect

* Remove test per request

* Make confusion a status effect, confusion curing now completely neuters the confusion

* set_confusion changes, get_confusion

* Fix confusion going down twice per tick

* Change strength = to proc

* Move procs to status_procs
2020-08-05 16:36:00 -03:00
AnturK
e5cf3c05b8 Simple skill/skillchip framework (#52314)
* Simple skills framework.

* Map changes.

* Adds skillchips to vendor

* Adds skill stations to the map.

* Circuitboards

* Fix typo

* Some minimal instability

* Fixes,tweaks etc

* Suggest better names or we'll end up with these.

* sharpness thing

* tgui build

* Makes wine from booze synthetizer show to wine tasters.

* Makes wine from dispenser have taste for wine tasters.

* Apply suggestions from code review

Co-authored-by: Rohesie <rohesie@gmail.com>

* Swaps to carbon var.

* wordy helper proc

* While i'm at it, other relaymoves

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-07-29 05:13:36 -03:00
LemonInTheDark
d3f9b70c0f Adds a message modification packet to saycode to allow for unordered parsing of operator chars, like ;, #, :, or % (#51790) 2020-07-18 18:18:23 +02:00
Aleksej Komarov
0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
BarrelOfNapkins
8fbcf89875 Nanites only heal traumas up to their ability (#51743)
Co-authored-by: Clayton Vass <clayvass@gmail.com>
2020-07-02 19:30:38 -04:00
Jack Edge
fd51a8a409 🦴 Add Wound option to nanite Host Scan program
🆑 coiax
add: The Nanite Host Scan program can now scan the host for wounds.
/🆑

You can scan for two out of the three things a medical scanner can scan
for, why not also determine how broken your leg is?
2020-06-23 13:37:39 +01:00
Jared-Fogle
ca18f4e9c4 Fix defib nanite and husk text 2020-06-06 15:02:04 -07:00
Jared-Fogle
f2d295c623 Replace TRUE with DEFIB_POSSIBLE 2020-06-06 02:24:02 -07:00
Jared-Fogle
cc409ed6c5 Fix defib hud being inconsistent, refactor can_defib 2020-06-06 01:37:15 -07:00
Rohesie
b73e2c4b0e Adds a knockedout trait, begins refactoring mobility 2.0 (#51348)
* ko

* change request
2020-06-02 00:14:49 +02:00
KathyRyals
ca5b7f0a83 Fix Nanite Programmer and Nanite Program Hub deconstruction (#51245)
* Fix Nanite Programmer and Nanite Program Hub deconstruction

Bug fix for the deconstruction process of the Nanite Programmer and Nanite Program Hub

* Use _act overrides, implement new icons

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-05-30 05:06:21 -03:00
MacBlaze1
666e1e2653 Fixing crew monitor suit sensors (#51268)
* first steps

* Update _under.dm

* time for bug testing

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* more fixes and implementation

* Update crew.dm

* Update clothing.dm

* more bug fixing

* Update crew.dm

* debugging

* Update clothing.dm

* Update clothing.dm

* Update clothing.dm

* added stuff to nanites

* goddamn nanites

* nanite cleanup

* Update crew.dm

* Update crew.dm
2020-05-27 15:54:37 +08:00
DeltaFire15
716012fb58 One line fixes best fixes (#50801)
Haha what if exo-locomotion nanites stopped working because of one check being the wrong way around... nah, kidding.. unless??
2020-05-02 22:39:38 +02:00
actioninja
b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
Archanial
3c31dcac61 leg (#50226) 2020-03-29 16:38:13 +08:00
XDTM
2e16236694 Fixes nanite voice sensors (#49927)
* gps

* Fixes nanite voice sensors

* Revert "gps"

This reverts commit 7e1fff907acb0c9b2fc7db9f3c27d5958dfea340.

Co-authored-by: spookydonut <github@spooksoftware.com>
2020-03-15 20:51:53 +01:00
XDTM
6eea85372f Fixes nanite comm remotes (#49798) 2020-03-09 14:54:22 -04:00
Emmett Gaines
33458640dc Add lints for "new" override prevention feature (#49672)
* Add lints for "new" override prevention feature

* bEsPoKe

* i'm an idiot

* arg index
2020-03-05 10:22:19 -05:00
nightred
70a3925567 fever and shivers change body temp normal 2020-02-27 20:22:05 -06:00
ShizCalev
7209ac3c93 Removes unnessacary math defines 2020-02-17 23:09:09 -05:00
Emmett Gaines
9e34b3d6a1 Supports named arguments in AddComponent and AddElement (#49098)
AddComponent/AddElement now support named arguments. This requires passing around an argument list instead of using actual proc args which a bit gross but we can blame byond for forcing this.

InheritComponent uses mirrored init arguments instead of an argument list which means no more accessing it via index to get to the same arguments as in init.

As a small bonus I restructured dcs defines to be a bit more manageable. Mainly just splits them into separate files and gives them their own folder.
2020-02-17 17:57:52 +13:00