Commit Graph

438 Commits

Author SHA1 Message Date
SkyratBot
b8d9874c27 [MIRROR] Converts all A && A.B into A?.B (#1292)
* 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.

* Converts all A && A.B into A?.B

Co-authored-by: ZeWaka <zewakagamer@gmail.com>
2020-10-13 23:19:25 +02:00
SkyratBot
fbed5fa6a6 [MIRROR] Cleans up rat related features and makes Regal Ratking a rare spawn from mouse migration event. (#1195)
* Cleans up rat related features and makes Regal Ratking a rare spawn from mouse migration event. (#54191)

* Cleans up rat related features and makes Regal Ratking a rare spawn from mouse migration event.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-10-07 23:25:50 +02:00
SkyratBot
98568e191a [MIRROR] Enforce preserving parent proc return values across ui_act call stacks (#999)
* 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.

* Enforce preserving parent proc return values across ui_act call stacks

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-26 17:17:59 +02:00
SkyratBot
16835e1e9e [MIRROR] Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat] (#986)
* Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat] (#53728)

add: Icebox now has an elevator! I just took the trousers of every shaft miner to batter town, word.

* Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat]

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-09-26 01:25:46 +01:00
SkyratBot
512d21d7af [MIRROR] Fixes oversight with "tactical combat spinning" and flashes (#897)
* Fixes oversight with "tactical combat spinning" and flashes (#53823)

Using the spin emote can no longer let you RNG your way out of new flash mechanics.

Mobs have a new flag that is set to when they start spinning and unset when they stop.

Flashes now use this new flag when calcing deviation.

Tactical combat spinning using the spin emote now results in a full deviation flash when it may previously have resulted in a failure or half-deviation flash.

Emotes should either not influence combat at all (spin on floor when both players share the same loc, this was already handled by same-loc code), or negatively influence combat for the emote user (spin in all other circumtances, which is what this PR addresses).

* Fixes oversight with "tactical combat spinning" and flashes

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-20 17:32:35 +02:00
SkyratBot
0aabaff39c [MIRROR] Fix flash runtime, improve flash logic (#864)
* Fix flash runtime, improve flash logic (#53784)

image

Flash + Emp = Flash with no user = Runtime.

Additional logic has been put in place to handle this.

I've also robustified the calculate_deviation proc to have explicit returns in every code path and simplified it to only care about the direction the victim is facing compared to the attacker's position.
* Magic numbers are bad because wizards are bad

* Rohesie feex

* Fix flash runtime, improve flash logic

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-18 10:52:25 +02:00
SkyratBot
87fec6cc0e [MIRROR] Nerfs Flashes [Edge Awards 2020] (#810)
* Nerfs Flashes [Edge Awards 2020] (#53604)

Flashes now deal stamina damage and micro-stun, they deal higher damage than batons BUT they have a severe disadavntage in form of directionality. Stamina damage and the duration of the micro stun is determined by direction your enemy is facing.

* Nerfs Flashes [Edge Awards 2020]

Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
2020-09-15 22:44:23 +01:00
SkyratBot
1e705faa19 [MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)

* Process procs now properly use deltatime when implementing rates, timers and probabilities

* Review fixes

* Geiger counters cleanup

Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now

* Moved SS*_DT defines to subsystems.dm

* Rebase fix

* Redefined the SS*_DT defines to use the subsystem wait vars

* Implemented suggested changes by @AnturK

* Commented /datum/proc/process about the deltatime stuff

* Send delta_time as a process parameter instead of the defines

Also DTfied acid_processing

* Dtfied new acid component

* Process procs now properly utilize deltatime when implementing rates, timers and probabilities

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-09 08:19:23 +02:00
SkyratBot
540b6dcdc3 [MIRROR] Crystal Event: flavor texts, signaler, balancing and mob differentiation (#623)
* Crystal Event: flavor texts, signaler, balancing and mob differentiation

* Update crystal_event.dm

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 03:50:57 +02:00
SkyratBot
3b01fb6cd7 [MIRROR] removes licensed_sound folder (#496)
* removes licensed_sound folder (#53142)

* removes licensed_sound folder

Co-authored-by: Rob Bailey <actioninja@gmail.com>
2020-08-24 23:54:01 +02:00
SkyratBot
0b65cc596b [MIRROR] Overlay lighting component (#469)
* Overlay lighting component (#52413)

Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑

* Overlay lighting component

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-23 20:17:12 +02:00
SkyratBot
8350ff4499 [MIRROR] Voice analyzers will no longer accept any message when nothing is recorded (#435)
* Voice analyzers will no longer accept any message when not recorded (#53033)

* Voice analyzers will no longer accept any message when nothing is recorded

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-20 17:06:54 +01:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)

Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
c8aa071d2c [MIRROR] Tweaks voice analyzers, pulsing a grenade's bomb wire now uses the grenade's timer delay. (#303)
* Tweaks voice analyzers, pulsing a grenade's bomb wire now uses the grenade's timer delay. (#52710)

Makes suicide bombing with voice analyzers harder, while keeping the more fun behavior by adding some tells and delays.
Things attached to a grenade's pulse wire use the grenades timer, rather then just insta booming.

* Tweaks voice analyzers, pulsing a grenade's bomb wire now uses the grenade's timer delay.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-08-12 11:29:53 +01:00
SkyratBot
c5c00fc6ff [MIRROR] Confusion will no longer continue to confuse after being cured (#213)
* 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

* Confusion will no longer continue to confuse after being cured

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-06 01:02:19 +01:00
SkyratBot
5fd8cb072e [MIRROR] Color standardization, vars moved, and signals (#194)
* Color standardization, vars moved, and signals (#52574)

    Defined all the existing light_color values.
    Moved their definitions to colors.dm
    Made white the default color. It was so already, but that was very obscured.
    Moved the atom light-related variables to the atom definition.
    Wrapped changes to variables such as light_color into procs that report the event through signals.
    Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
    Cleaned up a little bit of code in where new variables were defined before redefinitions.

This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.

There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.

* Color standardization, vars moved, and signals

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-04 12:20:31 +02:00
Daniel Hultgren
1352b6bd8f Fixes #51574 - Added a whitespace sanitizing proc (#52350)
* Fixed #51574 - Added htmlrendertext and implemented it for the voice analyzer

* Made a htmlrendertext regex static

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>

* Made a htmlrendertext regex static again

Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
2020-07-24 16:32:49 -04: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
silicons
5413ed0f7d Anomaly Core Production (but I actually finish it this time) (#51432)
Remake of #50528
About The Pull Request

https://hackmd.io/@tgstation/r1tzxpwPL

Basically that.
Raw anomaly cores
Cargo crates for them (currently 5k credits each, please tell me if this is good I balanced it relative to other crates I have no clue what the current cargo "meta"/power levels are)

Finish the explosive/implosion compressor attackby and implosion procs

Map in the implosion compressor

    Map in the roundstart 2 cores each type for science

Current values are set to maxcap at the 8th core, and 4 light radius (1/2/4 explosion required) at the first core. I think this is a bit low but I'm just going off the document.

The implosion compressor consumes the TTV + tanks on an attempted detonation, regardless of success. However, the "bare minimum" of checks are included (it won't let you insert incomplete TTVs. It will however, let you insert TTVs that have no explosive potential (test your bombs like you test your code ;) ), and will not waste the raw core if you fail to make a high enough radius.

Props to @ArcaneMusic for the machine sprite!

Why It's Good For The Game

image

Start of the anomaly core system I guess, gives toxins a use other than doing the quirky 50k maxcap tritium speedrun rush (or was that removed already?).

Yadda yadda allows locking items behind it and another method of getting these other than supermatter overloads (I don't know if that is already gone either by the by).
Changelog

🆑
add: An explosion compressor has been added to science. It makes raw anomaly cores into proper anomaly cores using prepared TTVs of a specific required blast radius.
/🆑
2020-06-28 23:56:40 +12:00
nemvar
6ef421be42 Renames a few variables. Also reorders icon fallback order again. (#51060)
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.

* Fixes some comments

* Fixes map issue

* Restart lints

* Properly resolves conflicts
2020-05-25 06:47:19 +02:00
ArcaneMusic
138e332dc3 Adds the condenser, a new assembly component. (#50675)
* Adds a freezy igniter

* adds to component vendor.

* don't nightcode.

* Back to condenser names.

* Adds to autolathe as well.

* Applies heat to flamethrower_process.

* Refresh

* Review changes

* Undefines properly I think.
2020-05-22 03:28:05 -03:00
Iamgoofball
a3aa69701a [READY] Basically, Instant Explosions 2: The Search For More Money: Eternal: A Tail Of Two Kitties: 33 1/3 (#50594)
About The Pull Request

Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though.

Explosions have been refactored to do the actual exploding in a subsystem.

Credit to goon.

Here's some videos!

Why It's Good For The Game
Basically instant max-caps now.
We can now give more of a tick over to the sending of map updates

Changelog

cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl
2020-04-30 10:27:53 +12:00
actioninja
b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
Arkatos1
de4b485dd4 Assemblies, TTV and Electropack now require you to hold them i… (#49987)
* Electropack status fix

* Hands check

* Cleanup

* TTV and assemblies hands state
2020-03-20 00:25:41 -07:00
Emmett Gaines
d0870a95ac Makes Crossed and Moved should call parent (#49671) 2020-03-05 10:25:24 -05:00
ShizCalev
df81c5be4a Fixes blindfolds not properly counting as being blind 2020-02-24 01:10:34 -05:00
TheVekter
bc44988ba2 [READY] R&D Rework: Splits anomaly cores into separate versions, modifies build paths (#49448)
* Splits anomaly cores into separate versions

* Converts the wormhole projector to require a bluespace core.

* Cleaned up a few lines

* Fixed small bug issues

* The gravity gun now requires a grav core. Increased weight of some anomalies.

* Enables high-intensity grav anomaly

* Fixing minor issues
2020-02-22 20:40:40 +01:00
XDTM
ef5ef2d463 Adds a hypnotic flashbang to the uplink (#49137)
Adds a hypnotic flashbang, disguised as a regular flashbang, to the traitor/nuke op uplink. Pretty much an AoE one-use hypnotic flash, but it doesn't require weakening the targets as long as they can be affected by the sound of the grenade, since it causes minor hallucinations.
Why It's Good For The Game

Effectively this is a non-lethal, non-destructive chaos-making tool. Even without the hypnosis it's a better flashbang; if everything goes right you've got a roomful of followers obeying your orders, but on the other hand something might go wrong, and then Poly is the one with the roomful of followers.
Changelog

🆑
add: Added a hypnotic flashbang to the uplink for 12 TC. It can hypnotize people much like a hypnoflash, and the sound will automatically make victims vulnerable to the trance.
/🆑
2020-02-22 22:13:27 +13:00
Arkatos
0b11eeb09a Conflict resolution 2020-02-20 13:50:13 +01:00
Bobbahbrown
476399a346 the span of these changes is immense (#49432) 2020-02-20 13:48:13 +01:00
Arkatos
1bd1ecb22e Review fixes and conflict resolution 2020-02-20 13:45:31 +01:00
spookydonut
6401ba5708 Merge pull request #49421 from ShizCalev/define-cleanup
Cleans up redundant math defines
2020-02-20 19:32:36 +08:00
ShizCalev
eb1ebaaad3 Merge pull request #49350 from Iamgoofball/you_son_of_a_bitch_im_in
Adds more flavor to conversion.
2020-02-18 23:32:58 -05:00
Arkatos
d37ea7cf19 Final cleanup 2020-02-18 15:32:48 +01:00
ShizCalev
7209ac3c93 Removes unnessacary math defines 2020-02-17 23:09:09 -05:00
Iamgoofball
573f408407 Update flash.dm 2020-02-17 16:00:33 -08:00
Arkatos
14fd4d745b Basic assembly cleanup, ui_status and ui_host fixes 2020-02-17 19:58:40 +01: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
iamgoofball
a799487fb5 fixes 2020-02-14 04:47:02 -08:00
iamgoofball
b8cb713aad You son of a bitch! I'm in. 2020-02-14 03:04:42 -08:00
Arkatos1
5de97518b8 tgui-next: Infrared emitter & Proximity Sensor (#49076)
* InfraredEmitter UI

* Proximity Sensor UI

* Scanning code improvement

* Clamp
2020-02-13 09:39:46 +01:00
blessedmulligan
54dc879f19 Cyborg spin throwing now depends on intent (#48891)
Trying this again. When *spin-ing as a cyborg, the way mobs are thrown off you depends on your intent. On help intent, they will be thrown a shorter distance from you and will never be damaged or stunned (they will still be knocked down). On harm intent, they will be thrown the current distance and will be damaged and stunned if they hit a wall or another person.

WHAT THIS ACTUALLY CHANGES:
Currently, whether or not *spin-ing will actually hurt/stun someone depends on whether or not the *spin-ing borg is emagged. This PR also reduces the range of the help intent throw, but since the knockdown happens whether or not the thrown mob hits something this is in most circumstances a cosmetic change. So, in summary, if you are a non-emagged borg in help intent the only thing this changes is you will chuck people a slightly shorter distance.
Why It's Good For The Game

This isn't exactly the most important change, but a borg should be able to control their behavior. Having damage/stun from throwing determined solely by emag-ness seems more like a hacky kludge than a legitimate design choice. Also, having the behavior of borg-throwing determined in the code for carbons is messy.
Changelog

🆑
add: The behavior of cyborg's *spin emote now changes with intent; on harm intent, it will throw its passenger farther and damage and stun them if they hit a wall or another person.
/🆑
2020-02-01 20:30:57 +13:00
Arkatos1
c59daa3b9e tgui-next: Timer (#48981)
* Timer UI tgui-next

* Finishing touches
2020-01-26 21:36:01 +01:00
MrPerson
26093e5ac2 Further update_icon splitup (#48784)
* Further update_icon splitup

After this there'll be just under 100 old update_icon() calls that need fixing.

* Thanks Travis
2020-01-22 10:18:05 -05:00
SteelSlayer
22ccb3b336 Coverted UI over to use <Table> for aesthetic reasons 2020-01-07 11:51:09 -06:00
SteelSlayer
3c6c182086 decrease width of window 2020-01-05 09:28:57 -06:00
SteelSlayer
9cde143dd4 tgui-next: Remote signalers 2020-01-05 05:40:35 -06:00
timmyred456
aba80b9b45 Added Basic sounds to all componets. (igniter,infrared, ect)
Added pickup_sound and drop_sound to all componets using the provided sounds, they are not all unique sounds, and share the same sound files, but i think its a nice little addition,

also added these sounds to the mousetrap as it fit nicely.
2019-11-14 20:39:59 -05:00