Commit Graph

276 Commits

Author SHA1 Message Date
SkyratBot
cccceb314a [MIRROR] Fixes exosuit console EMP logging and a mech runtime on EMPing. (#2767)
* Fixes exosuit console EMP logging and a mech runtime on EMPing. (#56196)

Occupants is a list. Mech EMP logging now correctly outputs the occupants instead of just outputting "/list"

Also when EMPing a mech in testing this PR, I noticed a runtime happening that I've fixed. Untyped for loop where the casting var was never assigned to and thus was always null.

* Fixes exosuit console EMP logging and a mech runtime on EMPing.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-01-18 07:45:48 +01:00
SkyratBot
94f9a384b0 [MIRROR] [READY] Bespoke Datum Mats (#2737)
* [READY] Bespoke Datum Mats

* Update sheetifier.dm

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-17 13:25:04 +01:00
SkyratBot
21bf801a37 [MIRROR] Fixes vehicles like skateboards and wheelys moving multiple times. (#2641)
* Fixes vehicles like skateboards and wheelys moving multiple times. (#56070)

 So wheelys would have 3 instances of the riding component attached on initialize with a different argument, causing them to move 3 tiles at once instead of 1. Skateboards will have 2 attached and move 2, etc.

* Fixes vehicles like skateboards and wheelys moving multiple times.

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-01-12 01:46:29 +01:00
SkyratBot
2584b98be2 [MIRROR] Fixes removing AIs from mechs (#2635)
* Fixes removing AIs from mechs (#55986)

Basically the old code attempted to use locate(AI), but the AI in this case is a ref that is supposed to be provided by the card. Since the card is initially empty when removing AIs from the mech, it couldn't find the null in the occupants list and thus failed with a report that there was no AI in the mech.

Now it checks all occupants and makes a list of any AIs it finds, then gives the user the option to pick an AI (though since we don't have any multi-pilot mechs yet the most you can get is one AI, and input with one option just auto-chooses).

* Fixes removing AIs from mechs

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2021-01-11 10:47:18 +01:00
SkyratBot
f79e91462c [MIRROR] LINDA Reforged (#2573)
* LINDA Reforged

* Update airlock.dm

* Update biohazard_blob_controller.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-08 18:52:35 +01:00
SkyratBot
282f1a98c8 [MIRROR] NOTELEPORT checks that were atomized out of the medieval shuttle (#2549)
* NOTELEPORT errywhere (#55973)

These prevent some cheats or really low effort ways to get to where you really shouldn't be.

Mappers seriously fucking hate jaunting and phasing mechs, as they let you bypass their custom crafted ruins and the like. But it'll also stop more general "you shouldn't be here" stuff.

* NOTELEPORT checks that were atomized out of the medieval shuttle

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2021-01-07 23:49:01 +01:00
SkyratBot
4656e7b085 [MIRROR] Fixes simple animal mecha pilots (#2489)
* Adds proper lazylist support to vehicles. (#55899)

Adds proper lazylist support to a bunch of vehicle code since some of the code either didn't consider that the occupants list could be null or didn't consider that the occupants list could be an empty list.
As a result the simple animal mecha pilots can board mechs again! (The mobs were checking whether the mech had any occupants. The mechs were checking whether the occupants list was falsey.)
Also fixed mechs putting themselves in their own occupants lists when boarded by a simple animal mecha pilot.

* Fixes simple animal mecha pilots

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-01-04 16:02:01 +01:00
SkyratBot
0018b12bc3 [MIRROR] Fixes non-clowns being able to steer/drive clown cars (#2456)
* beep beep honk honk (#55875)

In my riding refactor and the handful of PR's that have come out since, I made some incorrect guesses about how clown cars worked, and as a result caused issues with them. This PR addresses the last issue with them, which was caused by erroneously removing a check to see if someone was actually qualified to drive the clown car (AKA they're a clown in full clown regalia), meaning that anyone in the car could drive it, including the unwilling passengers. That check has been restored, so only clowns can drive again, as intended.

* Fixes non-clowns being able to steer/drive clown cars

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-01-03 00:00:55 +01:00
SkyratBot
0854e9d5d9 [MIRROR] Merry Christmas! Mechs receive damage from Xenos using their actual damage, instead of a hardcoded value (15). (#2450)
* Merry Christmas! Mechs receive damage from Xenos using their actual damage, instead of a hardcoded value (15). (#55736)

* Merry Christmas! Mechs receive damage from Xenos using their actual damage, instead of a hardcoded value (15).

Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
2021-01-02 16:55:11 +01:00
SkyratBot
6ba8971cc4 [MIRROR] Fix lava boats not accepting oars and remove unimplemented vehicle subtype. (#2390)
* Merge pull request #55787 from Timberpoes/ridable-tweex

Fix lava boats not accepting oars and remove unimplemented vehicle subtype.

* Fix lava boats not accepting oars and remove unimplemented vehicle subtype.

Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>
2020-12-31 01:39:21 +00:00
SkyratBot
21255c83b1 [MIRROR] Fixes clown cars + Fixes mechs not being able to open doors (#2354)
* Fixes clown cars + Fixes mechs not being able to open doors (#55748)

* honk honk

* realized the speedbike and wagon are not sealed

* Fixes clown cars + Fixes mechs not being able to open doors

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-12-29 02:38:32 +00:00
SkyratBot
5b373aaf92 [MIRROR] Fixes mech equipment being unusable for AIs (#2345)
* Fixes mech equipment being unusable for AIs (#55248)

Adds a signal listener on mechs that listens for middle clicks, and calls a proc that will, in turn, call the normal click proc if the user is an AI.

Middle clicks now pass through params just like left clicks.

* Fixes mech equipment being unusable for AIs

* Add CI-conform #2347 to this.

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Alex 'Avunia' Takiya <git@takiya.cloud>
2020-12-28 15:23:22 +01:00
SkyratBot
87930f4ea0 [MIRROR] [READY] Refactors riding (#2307)
* [READY] Refactors riding (#54778)

* [READY] Refactors riding

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-12-24 12:38:15 +01:00
SkyratBot
3ccb75e743 [MIRROR] Makes reagent updates more event based, also makes plasma boil properly. (#2280)
* Makes reagent updates more event based, also makes plasma boil properly.

* Update drinkingglass.dm

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-23 06:25:03 +01:00
SkyratBot
a83c0289fb [MIRROR] fixes clarke internals access and gives cargo techs working mech internals access (#2265)
* fixes clarke internals access and gives cargo techs working mech internals access (#55463)

fixes clarke only being able to be accessed by scientists instead of cargo, science and engi like ripley
adds cargo mech internal access to cargo techs

* fixes clarke internals access and gives cargo techs working mech internals access

Co-authored-by: Fikou <piotrbryla@onet.pl>
2020-12-21 19:56:51 +00:00
SkyratBot
24743f2696 [MIRROR] Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals (#2237)
* Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals (#55193)

Huge removal of dead vars, bad timers, and other sloppy jitteriness from beams. They go from checking movement to waiting for a signal.
VARIABLE KILL LIST:

sleep_time: signals baby
finished: signals BAYBEEE
target_oldloc: not only not typecasted as a turf or named as a turf, it was unused. when are we going to use this? the beam starts from the origin!
origin_oldloc: bad name, not typecasted. renamed to originturf
static_beam: how are you an unused variable and still get replaced by signals like really
timing_id: signallllss bbbaaaabbyy
recalculating: you get the drill by now signals baby
base_icon: unused, seemingly replaced by visuals I think

* Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2020-12-19 04:42:09 +01:00
SkyratBot
64cb64aae3 [MIRROR] Replace direct poi_list manipulation with element (#2117)
* Replace direct poi_list manipulation with element (#55416)

Replaces GLOB.poi_list |= src and GLOB.poi_list -= src with an element that handles it directly.

More consistent code, especially when a lot of code couldn't decide how to add/remove (some |=, some -=, some .Remove, etc).

* Replace direct poi_list manipulation with element

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-11 00:26:00 +00:00
SkyratBot
afce3e2a94 [MIRROR] pass_flags handling refactor + rewrites a part of projectiles for the n-th time (#2097)
* pass_flags handling refactor + rewrites a part of projectiles for the n-th time (#54924)

Yeah uhh this'll probably need testmerging even after it's done because yeah it's a bit big.
If y'all want me to atomize this into two PRs (pass flags vs projectiles) tell me please. Pass flags would have to go in first though, in that case, as new projectile hit handling will rely on pass_flags_self.
Pass flags:

Pass flags handling now uses an atom variable named pass_flags_self.
If any of these match a pass_flag on a thing trying to pass through, it's allowed through by default.
This makes overriding CanAllowThrough unnecessary for the majority of things. I've however not removed overrides for very.. weird cases, like plastic flaps which uses a prob(60) for letting PASSGLASS things through for god knows why.
LETPASSTHROW is now on pass_flags_self
Projectiles:

Not finalized yet, need to do something to make the system I have in mind have less unneeded overhead + snowflake

Basically, for piercing/phasing/otherwise projectiles that go through things instead of hitting the first dense object, I have them use pass_flags flags for two new variables, projectile_phasing and projectile_piercing. Anything with pass_flags_self in the former gets phased through entirely. Anything in the latter gets hit, and the projectile then goes through. on_hit will also register a piercing hit vs a normal hit (so things like missiles can only explode on a normal hit or otherwise, instead of exploding multiple times. Not needed as missiles qdel(src) right now but it's nice to have for the future).

I still need to decide what to do for hit handling proper, as Bump() is still preferred due to it not being as high-overhead as something like scanning on Moved(). I'm thinking I'll make Moved() only scan for cases where it needs to hit a non-dense object - a prone human the user clicked on, anything special like that. Don't know the exact specifics yet, which is why this is still WIP.

Projectiles now use check_pierce() to determine if it goes through something and hits it, doesn't hit it, or doesn't go through something at all (should delete self after hitting). Will likely make an on_pierce proc to be called post-piercing something so you can have !fun! things like projectiles that go down in damage after piercing something. This will likely deprecate the process_hit proc, or at least make it less awful.

scan_for_hit() is now used to attempt to hit something and will return whether the projectile got deleted or not. It will delete the projectile if the projectile does hit something and fails to pierce through it.

scan_moved_turf() (WIP) will be used for handling moving onto a turf.

permutated has been renamed to impacted. Ricocheting projectiles get it reset, allowing projectiles to pierce and potentially hit something again if it goes back around.

A new unit test has been added checking for projectiles with movement type of PHASING. This is because PHASING completely causes projectiles to break down as projectiles mainly sense collisions through Bump. The small boost in performance from using PHASING instead of having all pass flags active/overriding check_pierce is in my opinion not worth the extra snowflake in scan_moved_turf() I'd have to do to deal with having to check for hits manually rather than Bump()ing things.
Movement types

UNSTOPPABLE renamed to PHASING to better describe what it is, going through and crossing everything but not actually bumping.
Why It's Good For The Game

Better pass flags handling allows for less proc overrides, bitflag checks are far less expensive in general.

Fixes penetrating projectiles like sniper penetrators

This system also allows for better handling of piercing projectiles (see above) without too much snowflake code, as you'd only need to modify on_pierce() if you needed to do special handling like dampening damage per target pierced, and otherwise you could just use the standardized system and just set pass flags to what's needed. If you really need a projectile that pierces almost everything, override check_pierce(), which is still going to be easier than what was done before (even with snowflake handling of UNSTOPPABLE flag process_hit() was extremely ugly, now we don't rely on movement types at all.)

* pass_flags handling refactor + rewrites a part of projectiles for the n-th time

Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
2020-12-09 23:44:54 +01:00
SkyratBot
3a0491d3b4 [MIRROR] Small do-after refactor (#2074)
* Small do-after refactor (#55172)

This is an alternative to the PR Ryll made, it does some things similar e.g. the default limit of 1 interaction per target for a person, however, it refactors do_afters to support overrides for max interaction counts and unique sources.

For example, stripping uses the item being stripped as the source, allowing you to strip multiple items, but not the same item multiple times.

I've also fixed most other edge-cases this could cause where balance would be affected, but feel free to point out any I might've missed, this'll probably require some longer-term testmerging.

* Small do-after refactor

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-12-07 22:46:59 +01:00
SkyratBot
c487c73f39 [MIRROR] Grep for space indentation (#1969)
* Grep for space indentation

* aa

* Update species.dm

* Update species.dm

* Update maps.dm

* Update examine.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-01 12:26:41 +01:00
ShadeAware
bc4a575432 Thats better. (#1934) 2020-11-29 21:29:30 +00:00
ShadeAware
02aa2a94fb Good. (#1909) 2020-11-28 21:43:48 +00:00
SkyratBot
0f5e079807 [MIRROR] Mech Ammo now properly respects ammo for custom materials. (#1901)
* Mech Ammo now properly respects ammo for custom materials. (#55095)

Mech code now does a basic check for the amount of remaining ammo to adjust the amount of custom materials of an ammo container based on the remaining ammo against the original amount of ammo.
When the ammo runs out, it's hard-set to 2000 iron as that's the value of the sheet of iron that it gets set to by the end.

* Mech Ammo now properly respects ammo for custom materials.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-11-28 12:57:35 +01:00
SkyratBot
64c0ecb13f [MIRROR] Changes grenade proc names to be more clear (#1897)
* Changes grenade proc names to be more clear (#55181)

Grenades have, for the longest time, used the proc name preprime() to refer to arming a timed grenade so that it will boom in a few seconds, and prime() to refer to the grenade actually going boom (or releasing foam or anything else grenades do when they go off). This was very confusing, so now these two procs are called arm_grenade() and detonate().

* Changes grenade proc names to be more clear

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-11-28 12:55:30 +01:00
SkyratBot
38b8791e27 [MIRROR] Fixes issue with mecha drills failing to gib most simplemobs. (#1837)
* Feex (#55144)

For whatever reason we hardcoded the health value for drills at 200 brute damage before they can gib. 200 brute damage was picked as it was double the max health of /mob/living/carbon/whatever and double the max health was like, the cap on brute damage when someone is really, really, really, really dead.

Enter simplemobs. Their max health is regularly under 100, which means a hardcoded value of 200 brute damage to trigger gibbing effects is bad. Not that it matters anyway, because simplemobs also brute damage cap at maxHealth instead of maxHealth * 2 so the only simplemobs that could be gibbed by mech drills are those with 200 or more health.

This has been changed. Simplemobs now cap out at maxHealth * 2 damage, in line with all other /mob/living while drill code has been changed to check for maxHealth * 2 when gibbing instead of a hardcoded 200.

* Fixes issue with mecha drills failing to gib most simplemobs.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-11-26 00:18:57 +00:00
SkyratBot
e6879819ea [MIRROR] CanUseTopic() refactor. (#1829)
* CanUseTopic() refactor. (#54747)

* CanUseTopic() refactor.

* Forgot about default_can_use_topic. Tested and working.

* Update bin.dm

* no-nonsense.

* CanUseTopic() refactor.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-25 13:56:56 +01:00
SkyratBot
a25041431b [MIRROR] Humans have more complicated body temperatures (#1825)
* Humans have more complicated body temperatures (#54550)

This changes how carbon/humans stabilize body temperature, and changes how damage and wounds are applied based on temperature.

Humans now have a core body temperature along with body temperature. The core temperature is used for natural stabilization and what viruses like fever and shivers target by raising or lowing the core temperature of the mob.
The standard body temperature still exists and acts exactly the same for most items at this time but is now treated as surface temperature in humans.

Damage from body temperature for humans is now based on the core temperature instead of body temperature now.
Humans will now receive burn wounds when the body (surface) temperature is to high for to long.

This causes you to see alerts for the area temperature before you take damage in most cases improving visibility of dangerous situations.

* Humans have more complicated body temperatures

Co-authored-by: NightRed <nightred@gmail.com>
2020-11-25 13:56:04 +01:00
SkyratBot
fde1463b4b [MIRROR] Prevents mecha drills from stacking do_afters on the same target. (#1817)
* Prevents mecha drills from stacking do_afters on the same target. (#55145)

* Feex

* Feex 2.0 Feexlectric Feexaloo

* Whitespace purge

* Prevents mecha drills from stacking do_afters on the same target.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-11-24 17:26:06 +00:00
SkyratBot
7d653f1f6b [MIRROR] Moves grown food to newfood (#1794)
* Moves grown food to newfood (#55040)

Moves grown food to newfood
Gives trash element support for callbacks for item creation override

* Moves grown food to newfood

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-11-23 22:35:35 +00:00
SkyratBot
8158c64115 [MIRROR] minor material_container args/vars refactor and Mk-honk shoes peeve. (#1755)
* minor material_container args/vars refactor and Mk-honk shoes peeve. (#54863)

My original intention was just fixing an issue with the Mk-honk banana shoes but, considering I didn't want to add two new variables to a component with already lot of args and lengthy AddComponent() calls in term of text, I had to merge some TRUE/FALSE variable/args into the breakdown_flags bitfield (now named mat_container_flags) in the process.

* minor material_container args/vars refactor and Mk-honk shoes peeve.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-21 16:20:29 +00:00
SkyratBot
e768cef297 [MIRROR] /obj/screen --> /atom/movable/screen (#1646)
* /obj/screen --> /atom/movable/screen

* Update storage.dm

* Update radial.dm

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-11-11 04:12:50 +01:00
SkyratBot
2ff5f9b259 [MIRROR] Move death(), gib(), and dust() from /mob to /mob/living (#1634)
* Move death(), gib(), and dust() from /mob to /mob/living

* a

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-11-10 22:01:47 +01:00
SkyratBot
bfcda225eb [MIRROR] Fixing multi-z defying mechas (AGAIN) (#1598)
* Fixing multi-z defying mechas (AGAIN) (#54753)

I already fixed this issue almost a year ago, but the mecha refactor guy managed to revert the fix at the distance of 8 months.

* Fixing multi-z defying mechas (AGAIN)

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-07 05:08:18 +00:00
SkyratBot
9906d893e3 [MIRROR] Fixes mecha rotate & spacemove sounds and makes stomping silence flag instead of null based (#1558)
* Fixes mecha rotate & spacemove sounds and makes stomping silence flag instead of null based (#54529)

* comit

* bump

* Update code/modules/vehicles/mecha/_mecha.dm

Co-authored-by: Couls <coul422@ gmail.com>

* Update code/modules/vehicles/mecha/_mecha.dm

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

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

* Fixes mecha rotate & spacemove sounds and makes stomping silence flag instead of null based

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@ gmail.com>
Co-authored-by: Rohesie <rohesie@ gmail.com>
2020-11-03 05:16:13 +00:00
SkyratBot
d4ab507510 [MIRROR] Fixes an accidental (???) reversion in mech code (#1541)
* Merge pull request #54396 from necromanceranne/revert_reversion_mechs

Fixes an accidental (???) reversion in mech code

* Fixes an accidental (???) reversion in mech code

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2020-11-02 18:43:11 +01:00
SkyratBot
cc645914e6 [MIRROR] [Ready]New walking and turning sounds for the Ripley Mk. I and II, interaction sounds for the hydraulic clamp (#1538)
* [Ready]New walking and turning sounds for the Ripley Mk. I and II, interaction sounds for the hydraulic clamp (#54523)

* [Ready]New walking and turning sounds for the Ripley Mk. I and II, interaction sounds for the hydraulic clamp

Co-authored-by: InvalidArgument3 <51190031+InvalidArgument3@users.noreply.github.com>
2020-11-02 02:59:03 +00:00
SkyratBot
119dd2ea3d [MIRROR] Basepixels (#1512)
* Basepixels (#54652)

* Basepixels

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-10-30 17:30:11 +00:00
SkyratBot
5165d42c1c [MIRROR] Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off (#1521)
* Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off (#54376)

Ridden vehicles now pass any objects that normally pass tables. This includes bullets, thrown objects, and probably dwarves?

Ridden vehicles check for the various incapacitation traits instead of just usable hands for whether you fall off. Doesn't fix corpses buckled to these objects but that'll require more work to fix because it's all tied into relay_move.

This doesn't affect any ridden object that doesn't checks for hand availability. Like skateboards and wheelchairs (although how exactly your wheelchair is moving without hands or mechanical parts is beyond me).

* Ridden vehicles pass bullets, checks for new incapacitation traits for whether or not you fall off

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2020-10-30 17:28:08 +00:00
SkyratBot
e102d9742a [MIRROR] Various mech fixes (#1479)
* Various fixes to mechs (#54595)

    Vehicle objects now call bumpopen() rather than Bumped() when moving into an airlock, and thus will once again open any door the pilot has access to. Closes #54480

    Fixes Ripley MK-I to MK-II conversions destroying equipment.

    MK-I to MK-II conversions now sets the MK-II's integrity to be same percentage as the MK-I's integrity. Thus, upgrading a full-health MK-I will no longer result in a damaged MK-II.

    Both Ripley types no longer start with an orebox, that function has been moved to the Clarke.

* Various mech fixes

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2020-10-27 09:05:24 +00:00
SkyratBot
e516c91911 [MIRROR] Fixes motorised wheelchairs not moving (#1422)
* Fixes motorised wheelchairs not moving (#54507)

* Fixes motorised wheelchairs not moving

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-10-22 04:41:45 +02:00
SkyratBot
a566a0ae94 [MIRROR] Mecha follow up 2 edition 2 (#1404)
* Mecha follow up 2 edition 2 (#54454)

fixes mech power not using deltatime
fixes a few mech bugs
moved mecha gun logging to attacklog instead of mechalog

* Mecha follow up 2 edition 2

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-10-21 07:38:24 +02:00
SkyratBot
f02e30a50e [MIRROR] Implements timed_action_flags for do_after-like procs (#1385)
* Implements timed_action_flags for do_after-like procs (#54409)

Originally I wanted to fix an issue where the `get_up()` `do_after()` would ignore the callback checks, because it was `uninterruptible`, so that made me refactor these procs to allow for higher granularity on checks and standardize behavior a bit more.
There's more work to be done for them, but one thing at a time.

* Removes the `uninterruptible` check in favor of the more granular `timed_action_flags`
* Cleans code on the `do_atom`, `do_after_mob`, `do_mob` and `do_after` procs to standardize them a little better.

* Implements timed_action_flags for do_after-like procs

* Update horror_form.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-21 07:06:03 +02:00
SkyratBot
25eaba7684 [MIRROR] Vehicle housekeeping (#1373)
* Vehicle housekeeping (#54455)

Removed redundacies, autodoc, early returns, moved attackby into welder act, made some CamelCase into a snake_case

* Vehicle housekeeping

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-10-19 17:21:41 +01:00
SkyratBot
8b10c19ae0 [MIRROR] [READY] Fixes being able to use items while inside a mech (#1369)
* [READY] Fixes being able to use items while inside a mech (#54302)

* [READY] Fixes being able to use items while inside a mech

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-10-19 08:58:21 +02:00
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
970a2b03d6 [MIRROR] Mobility refactor: no more update_mobility() (#1233)
* Mobility refactor: no more update_mobility()

* Update robot.dm

Fixes robots.

* megadumb

* Update robot.dm

* weh

* Update gunpoint_datum.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-10 02:31:35 +02:00
SkyratBot
cae0e4cb5c [MIRROR] Adds Alloy Materials (#1228)
* Adds Alloy Materials (#53623)

Adds and implements alloy materials

Takes several materials that were mostly fluff and converts them into actual usable materials.
Messes with material code a bit to make alloys recycle back into their component materials.
Adds the alloy materials to their in-game stacks.

Materials added:
    Plasteel
    Plastitanium
    Plasmaglass
    Titaniumglass
    Plastitanium Glass
    Alien Alloy

Makes plasteel/plastitanium/plasmaglass and the rest able to have separate properties from their component materials. It doesn't make much sense that the materials used to seal off the supermatter chamber from the rest of the station would be prone to exploding when heated.

Allows for further expansion of materials, possibly including actual functional metallurgy and smelting at some point in the very distant future.

(Lemons note: Adds a regeneration component, used for alien alloy)

* Adds Alloy Materials

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-10-10 00:29:56 +01:00
SkyratBot
6541dc96ce [MIRROR] Minor tweaks and cleanup to mecha drill equipment's action code (#1226)
* Merge pull request #54098 from Timberpoes/dirty-do-after-fix

Minor tweaks and cleanup to mecha drill equipment's action code

* Minor tweaks and cleanup to mecha drill equipment's action code

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
2020-10-09 18:48:26 +02:00
SkyratBot
7eeaefe645 [MIRROR] Fixes some potential sleeps as detected by SpacemanDMM improvements (#1216)
* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)

overrides weren't detected by should not sleep, i think i've mostly
fixed that with SpaceManiac/SpacemanDMM#214

Some of these are wacky but overall this pr is harmless

signals shouldnt sleep even in weird 1 in a million situations or due
to other people adding bad code

overrides of changeling can_sting() use alert() and input() and that's
just too fucked for me to fix in this pr

* Fixes some potential sleeps as detected by SpacemanDMM improvements

Co-authored-by: spookydonut <github@spooksoftware.com>
2020-10-09 18:28:59 +02:00
SkyratBot
aeffa9165e [MIRROR] Yellow slime core nerfs and adjustments. (#1193)
* Yellow slime core nerfs and adjustments. (#54198)

Yellow slime extract can no longer turn into a self-charging yellow slime core. This functionality has been completely removed.

Hypercharged yellow slime cores no longer self-charge.
They now have a capacity of 50,000 (up from their previous 20,000). This is 10,000 more than a bluespace power cell.
Their recharge rate is 2500. This is relatively slow for the power capacity, as hyper and bluespace cells charge at 10% of their capacity respectively and this is 5%.

Motorised wheelchairs have had their power usage reduced to 5% of their previous value since they were basically only usable with rechargable cells before

* Yellow slime core nerfs and adjustments.

* Update special.dm

* Update special.dm

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-08 04:46:52 +02:00