Commit Graph

2220 Commits

Author SHA1 Message Date
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
7361de863c [MIRROR] Refactor caltrop component into element (#2651)
* Refactor caltrop component into element

* Delete caltrop.dm

* Update caltrop.dm

Co-authored-by: coiax <jack@billbuddy.co.uk>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-12 02:06:53 +01:00
SkyratBot
ce59be9350 [MIRROR] Move psychologist immunity from mind to skillchip (#2605)
* Move psychologist immunity from mind to skillchip (#55813)

Skillchips are neat, and this is the sort of "job-specific skill" that can remain job specific, but still gainable in the shift through in-universe means.

The logic behind the skillchip is that the supermatter is psychically sensitive, hence the hallucinations and headaches from looking at it and projecting the "correct mental aura" will help it calm down. But that is lore following mechanics.

Refactors skillchips to be able to automatically apply more than one trait.

* Move psychologist immunity from mind to skillchip

Co-authored-by: coiax <yellowbounder@gmail.com>
2021-01-10 08:17:04 +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
b6eb1bdf3a [MIRROR] suppermatter doesn't get angry with mindless wights (#2530)
* suppermatter doesn't get angry with mindless wights (#55960)

Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* suppermatter doesn't get angry with mindless wights

Co-authored-by: spessbro <51048066+spessbro@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
2021-01-07 00:14:36 +01:00
SkyratBot
2d95ea6b2d [MIRROR] Makes a few changes to tesla movment (#2499)
* Makes telsas move properly, they were ping ponging around due to how miniballs move, I've made the shocked targets list properly fill, and make the shocked targets list retain some entries to preserve momentum (#55712)

* Makes a few changes to tesla movment

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-01-05 04:54:24 +01:00
SkyratBot
3a1cb5c976 [MIRROR] You can now mount things from the side (#2433)
* You can now mount things from the side (#55741)

* You can now mount things from the side

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-01-01 22:18:07 +01:00
SkyratBot
635d2d5aa1 [MIRROR] Fixes borg tiles (#2431)
* Fixes borg tiles (#55858)

- Fixes greyscale material floor tiles created from cyborg stacks
- Makes cyborg stacks contain materials
- Prevents a potential bug involving metalgen and stacks

* Fixes borg tiles

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-01-01 19:57:00 +00:00
NotRanged
9e42c4332a [Non-Modular] Rebalances previous SM anom PR (#2338)
* Tested, actually decent now

* Number

Co-authored-by: Ranged <nickvanderkroon@gmail.com>
2020-12-30 22:31:30 +00:00
SkyratBot
94ed7ed0f1 [MIRROR] Refactors how movetypes are added and removed, No timers this time. (#2358)
* Refactors how movetypes are added and removed, No timers this time. (#55444)

* Refactors how movetypes are added and removed, No timers this time.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-12-29 02:39:03 +00:00
SkyratBot
1c42a5cec3 [MIRROR] Fixes BRPED/rigged cell exploit and allows it to booby trap BRPEDs instead (#2357)
* Fixes BRPED/rigged cell exploit and allows it to booby trap BRPEDs instead (#55447)

BRPEDs can teleport rigged power cells. Through cameras. These rigged power cells will then pretty much immediately explode. This is a tad imbalanced.

Behaviour modified. Attempting to use a BRPED on a machine and having it attempt to swap over a rigged cell will cause the rigged cell to immediately go to maximum charge and explode.

Adds some logging to accompany it.
Why It's Good For The Game

Blowing things up from across the cosmos is bad.

Rigging BRPEDs to be able to explode when some poor sucker uses it to change over a power cell is cool.

* Fixes BRPED/rigged cell exploit and allows it to booby trap BRPEDs instead

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-12-29 02:38:55 +00:00
SkyratBot
0efb064972 [MIRROR] Deadchat plays everything - A simple way for admins to let deadchat control things. (#2337)
* Deadchat plays everything - A simple way for admins to let deadchat control things. (#55314)

* Deadchat plays things

* Pocket lint

* View those variables

* Arr var

* Arrr save changes and don't code while drunk

* Loog dot exe

* Big ol' changes

* Deadchat plays everything - A simple way for admins to let deadchat control things.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-12-26 23:47:28 +01:00
SkyratBot
a1f48f9200 [MIRROR] Makes the supermatter crystal immune to radiation (#2324)
* Makes the supermatter crystal immune to radiation. Not sure how I missed this (#55710)

* Makes the supermatter crystal immune to radiation

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-12-25 21:41:12 +00:00
SkyratBot
49c9d50630 [MIRROR] WireArt: Fixed and improved (#2302)
* WireArt: Fixed and improved (#55622)

Cyborg's pipe cleaner is now using a radial menu for choosing it's colors instead of a clumsy input one.

RCL now properly updates it's pipe cleaner holder's color, so you can actually see the color when using RCL radial menu.

RCL is now able to put cables down on floors seamlessly, as there is no reason to restrict it to just a plating and catwalks anymore due to the fact that pipe cleaner coils no longer function as a power carriers, but are merely visual entities for players to play with.

And lastly, pipe cleaners now use color defines and are setting its color directly instead of having redundant variable do it for them, which was needlessly complicating it.

* WireArt: Fixed and improved

Co-authored-by: Arkatos1 <43862960+Arkatos1@users.noreply.github.com>
2020-12-24 12:33:32 +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
779a98c7cb [MIRROR] Refactor supermatter proximity effects (#2281)
* Refactor supermatter proximity effects (#55653)

- Psychologists are no longer mistakenly told they have headaches
when near the supermatter.
- Immunity to supermatter hallucinations is now provided by a new trait
  `TRAIT_SUPERMATTER_MADNESS_IMMUNE`, provided by mesons, and being the
  Psychologist.
- The ability for Psychologists to cause the supermatter to act slightly
  differently (by turning pink, and having a higher minimum healing
  temperature) is now a trait, `TRAIT_SUPERMATTER_SOOTHER`, which
  currently only Psychologists get.

* Refactor supermatter proximity effects

Co-authored-by: coiax <yellowbounder@gmail.com>
2020-12-23 06:18:53 +01:00
SkyratBot
b59803af46 [MIRROR] Fixes GC for light fixture overlay, makes the overlay non-unique with extra variants (#2279)
* aaaaa (#55561)

Light fixtures now use different variants of overlays in order to be non-unique and save up on instantiating a TON of overlay objects. Also, fixed the GC for them

* Fixes GC for light fixture overlay, makes the overlay non-unique with extra variants

Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-22 23:07:43 +01:00
SkyratBot
11f8658305 [MIRROR] Tweaks lighting, adds preset lights for better mood lighting (#2276)
* Tweaks lighting, adds preset lights for better mood lighting (#55513)

Tweaks existing lighting and adds some presets for mapping

Current list of presets is as follows:
Main Tube Lights: normal, cold and warm with a subtype each that disables night lighting
Red & blacklight (purple) for tube & small lightbulb
Why It's Good For The Game

Better support for more varied and interesting lighting. I made sure that the new presets are subtle and bright enough to not be distracting or made it harder to see

Changes to currently mapped lighting should be mostly unnoticeable, standard tube lights have a very faint greenish tint typical of fluorescent lights, while small lightbulbs have an orange tint reminiscent of tungsten lightbulbs

For mappers, I would suggest using types that disable nightlighting in work areas while keeping night lighting for hallways and other service/living areas.
Normal lights for hallways, cold lighting for medbay and science, warm lighting for bar, library and dorms, red lights for maintenance, maybe blacklight for server rooms etc.

* Tweaks lighting, adds preset lights for better mood lighting

Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
2020-12-22 06:43:54 +01:00
SkyratBot
4e685db14d [MIRROR] Make singularity dissipation use delta time (#2257)
* Make singularity dissipation use delta time (#55612)

About The Pull Request

Converts singularity's dissipation code to use delta time instead of assuming it'll always be the same.

Numbers were based on the previous code given a delta_time of 2.

* Make singularity dissipation use delta time

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-21 19:55:28 +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
efd51d4ebe [MIRROR] Nar'Sie is now a point of interest, and can be orbited directly again (#2206)
* Nar'Sie is now a point of interest (#55540)

Fixes a regression from the singularity rewrite that made Nar'Sie its own object.

* Nar'Sie is now a point of interest, and can be orbited directly again

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-17 10:56:43 +01:00
SkyratBot
55a1adc17b [MIRROR] Supermatter gasmix cleanup (#2186)
* eh (#55529)

Fixes the supermatter not collecting unused/untouched gas type generated for percentage checking

* Supermatter gasmix cleanup

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2020-12-16 07:15:44 +01:00
SkyratBot
6603e04fc0 [MIRROR] Crates and bountes are now defined by crate's value and paygrades. Civilian bounty payout is higher and uncheesable. (#2120)
* Crates and bountes are now defined by crate's value and paygrades. Civilian bounty payout is higher and uncheesable.

* Update shuttles.dm

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-12-11 00:50:53 +00:00
SkyratBot
9dfb7a1189 [MIRROR] Everything that uses maptext now uses the class that makes it actually readable (#2116)
* Everything that uses maptext now uses the class that makes it actually readable

* Update chatmessage.dm

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-12-11 00:40:04 +00: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
66c207e19c [MIRROR] Reverts (#54963) due to timer spam (#2109)
* Revert "Refactors how movetype flags are added and removed and the floating animation (#54963)" (#55432)

This reverts commit b8425c003a.

* Reverts (#54963) due to timer spam

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-12-10 05:58:05 +01:00
SkyratBot
2ee5d422ae [MIRROR] Refactors how movetype flags are added and removed and the floating animation (#2096)
* Refactors how movetype flags are added and removed and the floating animation (#54963)

I wanted to refactor how movetype flags are added and removed into traits to prevent multiple sources of specific movement types from conflicting one other. I ended up also having to refactor the floating animation loop (the one that bobs up and down) code in the process.
Why It's Good For The Game

A way to avoid conflict from multiple sources of movement types.
This also stops melee attacks, jitteriness and update_transform() from temporarily disabling the floating movetype bitflag altogether until the next life tick.

Tested, but i'm pretty sure improvements could be made.
Changelog

cl
fix: jitteriness, melee attack animations and resting/standing up should no longer momentarily remove the floating movement type.
/cl

* Refactors how movetype flags are added and removed and the floating animation

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-12-09 23:43:42 +01:00
SkyratBot
f105b47a55 [MIRROR] Singularity component (#2082)
* Singularity component (#55096)

Adds singularity component

* Singularity component

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-12-08 11:30:39 +00:00
Gandalf
7ee24f06bd Gamma Alert [SEMI-MODULAR] (#2029)
* aaah

* a
2020-12-03 21:39:49 +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
SkyratBot
19502f1428 [MIRROR] Adds N2 Canisters to the Delta Supermatter (#1918)
* Adds N2 Canisters to the Delta Supermatter (#55205)

* Does the Thing

* Removes delta rad collector subtype

Co-authored-by: Coffee <crashkray@ gmail.coom>

* Adds N2 Canisters to the Delta Supermatter

Co-authored-by: Coffee <CoffeeDragon16@gmail.com>
Co-authored-by: Coffee <crashkray@ gmail.coom>
2020-11-29 17:48:46 +00:00
NotRanged
39e888f854 [Not modular] 'Dangerous' SM setups can now be used to farm anom cores (#1861)
* Core generation

* Update code/modules/power/supermatter/supermatter.dm

Co-authored-by: Gandalf <jzo123@hotmail.com>

Co-authored-by: Ranged <nickvanderkroon@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-11-27 07:46:15 +00:00
SkyratBot
3bf844af89 [MIRROR] Fixes cyborgs in general replenishing stack modules from external sources (#1846)
* Fixes cyborgs in general replenishing stack modules from external sources (#54935)

* Cyborg stack fix

- Makes cyborgs capable of recycling floor tiles again

* Touches up module code

- Makes module code slightly more OOP-compliant
- Speeds up module creation by an imperceptable amount
- Reworks how borg modules handle stacks

* Fixes cyborgs in general replenishing stack modules from external sources

* Update robot_modules.dm

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2020-11-27 07:28:50 +00:00
SkyratBot
d6c12e331d [MIRROR] Fixes lightbulb injections (#1821)
* Fixes lightbulb injections (#55132)

Co-authored-by: itseasytosee <55666666+itseasytosee@ users.noreply.github.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>

* Fixes lightbulb injections

Co-authored-by: Coffee <CoffeeDragon16@gmail.com>
Co-authored-by: itseasytosee <55666666+itseasytosee@ users.noreply.github.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
2020-11-25 00:00:09 +00:00
SkyratBot
c226571f01 [MIRROR] Makes APCs not cause runtimes when placed in space (#1809)
* Makes APCs not cause runtimes when placed in space (#55045)

* Makes APCs not cause runtimes when placed in space

Co-authored-by: Bond <58570888+TheBonded@users.noreply.github.com>
2020-11-24 11:35:44 +01:00
SkyratBot
3d3dfdc80a [MIRROR] Cell chargers now pull from the grid's surplus rather than their room's APC cell (#1782)
* Cell chargers now pull from the grid's surplus rather than their room's APC cell (#54989)

About The Pull Request

As the title says.

    Creates a new proc, use_power_from_net() that attempts to pull power from the grid (by adding the amount needed to the APC's powernet load), and returns the amount gathered if there was enough surplus to do so. This bypasses the APC's internal cell for power drawn this way.

    Changes cell chargers to use this new proc for charging a cell. The charger machine still uses some power from the APC, set to 1% of it's max cell charging rate, for machine-related power costs. I'm not deadset on that number, I just needed to start with something. To be clear, this 1% is to simulate running the cell charger's circuitry; all of the power for the cell it's charging is 1-to-1 coming from the powernet.

    This does not subvert the original PR's purpose; cells are still drawing as much power from the grid as they charge with.

Why It's Good For The Game

Fixes cell chargers breaking rooms after the prior cell charger fix. The load is now on the grid, and it being surplus means that it (probably) won't actually powersink anything.

Fixes #54919 by taking a different approach that entirely avoids the issue.

* Cell chargers now pull from the grid's surplus rather than their room's APC cell

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2020-11-23 13:34:33 +01:00
SkyratBot
2ac44cb9d7 [MIRROR] [READY] Adds notification support to modular computer apps, updates CIMS to use it (#1715)
* [READY] Adds notification support to modular computer apps, updates CIMS to use it

* Update tgui.bundle.js

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-11-19 07:15:31 +01:00
SkyratBot
9e88359f04 [MIRROR] Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#1686)
* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#54715)

* The Re-pricening

* Rewritten and adjusted for paycheck defines.

* I made the map changes finally.

* And the refills too.

* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"

* And the premium ones too.

* Accidently spoiled a future pr due to dme bleedover

* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-11-14 21:49:11 +01: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
eedf2362cc [MIRROR] Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#1674)
* Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)

The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).

* Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-11-11 02:52:32 +00:00
SkyratBot
186f4bd4c2 [MIRROR] Fixes a few bugs with greyscale stacks. (#1670)
* Fixes a few bugs with greyscale stacks. (#54858)

    Fixes greyscale floor tiles merging regardless of their materials.
    Fixes greyscale floor tiles voiding materials when splitting the stack.
    Fixes greyscale floor tile stacks being created with no mats_per_unit and only enough custom materials for a single unit.
    Fixes greyscale tile flooring being created with the wrong amount of materials.
    Fixes greyscale tile flooring not producing floor tiles/producing floor tiles with 0 units.

* Fixes a few bugs with greyscale stacks.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-11-11 02:51:23 +00:00
SkyratBot
43e821c474 [MIRROR] Cell chargers now respect the law of conservation of energy. (#1668)
* Cell chargers now respect the law of conservation of energy. (#54886)

## About The Pull Request

Hopefully I can make this PR as knowledge filled as possible, so sit down and buckle up, because we're about to talk about POWER USE.

So, machines use power. The station uses power. Without power, key, critical aspects of the game don't function, and keeping the station's lifeblood pumped with electricity is the primary goal of the engineering department. Cool. So there's currently 2 methods of "power use" that machines can use, that is, through the passive use of power (Assigned by the `idle_power_usage` and `active_power_usage` variables), or through the `use_power()` proc. What's interesting, is that neither proc actually draws directly from the cell of the APC, which is sort of assumed by a proc called `use_power()`, after all. Where the passive power draw aspect of an APC is done automatically as machines are processed, and then applied to the APC seperately, taking power per cycle, use_power just applies a temporary blip of power usage to one of the APC's power tracks (Equipment, Lighting, or Enviroment). One would assume then that this temporary power drain would apply for long enough that it would apply the intended cost to the cell, and then turn off.

But I'm making this PR, right?

So the most egregious issue this brings is in terms of the cell recharger. If you place a power cell into a cell recharger, the recharger calls use_power every processing tick in order to reduce the APC cell by an equivalent amount to what the cell is intending to gain in charge. After all, you're just moving the charge from the APC to the power cell, plus the processing charge required by the cell_charger. However, lets look a bit closer at how use_power actually works. For this example we'll use a default, unupgraded cell recharger attempting to put it's default 250 watts into an empty bluespace cell.
Because power is heavily linked to the area that the machinery is placed in, we snag the area, determine the power channel, and call a use power proc on the area. The area use power proc simply adds that 250 watts, or rather joules into the equipment power channel of the APC, a part of power usage. All of this is parroted over to the APC's processing side, where the actual cost to the power cell is calcualted as follows:
`var/cellused = min(cell.charge, GLOB.CELLRATE * lastused_total)	// clamp deduction to a max, amount left in cell
		cell.use(cellused)`
So that number, the 250 joules of power we're calling to the cell, is actually being multiplied by a global cellrate, which is applied to every power drain on the station, actually charging the APC cell a total of 0.5 kj.
Based on some rumentary math and some experimentation, I filled a full bluespace power cell with 40Mj of power using 351 Kj of power from a standard, stock APC cell with no other drain except the 5 joules of power draw from the cell recharger.

So: What does this mean?

- Power draw is completely fucking busted (We knew this).
- Using two power cells, an APC, and an inducer, you can create infinite energy, anywhere, at zero cost to the station.
- We really need to make cell recharging a direct power draw.

Thankfully, that last one actually fits the portfolio of being a fix!
This adds a new proc to machines called `directly_use_power`. It does what it says on the tin, directly charges the APC for instances where power is going 1-1 from a power cell to another cell, in order to prevent infinite energy exploits.

## Why It's Good For The Game

Power is all kinds of unbalanced. Attempting to enforce the concept that a single unit of power is equal to itself is probably a good step in the right direction and in all likelyhood appears to have been the original intent with cell chargers in the first place.

I'm self-aware enough to see that this has ramifications beyond just fixing an issue within the cell charger alone, so if maintainers want to close this until december that's perfectly fine, but this is one of those things that could really easily snap basic station balance in twain.

* Cell chargers now respect the law of conservation of energy.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
2020-11-11 02:51:11 +00:00
Gandalf
f9ed68e484 Light tweaks [SEMI-MODULAR] (#1536)
* LIGHTS ARE FUTILE.

* Updoot

* Update lighting.dm

* Update modular_skyrat/modules/aesthetics/lights/code/lighting.dm

Co-authored-by: Azarak <azarak10@gmail.com>

* Update modular_skyrat/modules/aesthetics/lights/code/lighting.dm

Co-authored-by: Azarak <azarak10@gmail.com>

Co-authored-by: Azarak <azarak10@gmail.com>
2020-11-01 21:44:32 +01:00
Gandalf
f9e3b58ecd Aesthetic Overhaul V3.0[SEMI-MODULAR][READY] (#1245)
* Begin

* few fixes

* WINDOWS

* Update airlock.dm

* Update status_display.dm

* Fixes plus rusty walls.

* Update walls.dm

* air alarm, intercom, apc updates, plasma windows, tinted, firealarm(todo)

* Update airlock.dm

* FINALLY FIXES THE DOORS

* Update airlock.dm

* firealarm and fixes.

* fixes

* mining vendor and washing machine

* firedoor

* blastdoor

* firealarm sound, shutters sound, blast door sounds.

* Delete window.dm

* Revert "Delete window.dm"

This reverts commit 4737c539eb9b49a526c784f45161c3189505ac57.

* fixes

* Update 2.0

newscaster DONE
bookshelf DONE
disposals chute DONE
chairs DONE
stools DONE
beds - Will upgrade later.
requests console DONE
light switch DONE
roller bed DONE
nanomed DONE
extinguisher cabnets DONE
extinguishers DONE
buttons
shield generators DONE
space heater DONE
emitter DONE
field generator DONE
rad collector DONE
cameras DONE
morgue units DONE
watercooler
bench Will upgrade later
E-N (corgi) port? Will do later.
plastic flaps Done
Guns - later

* fiox

* l o g i c

* Update extinguisher.dm

* V2.5

* racks and fixws

* computer typing noise

* gun sprite updates

* Update guns.dmi

* air alarm light mask

* better light overlays

* floors!

* gaygun, bench

* lasergun sounds - remove gun balance.

* no decals.

* Update intercom.dmi

* better directionals

* lasercannon, nucgun,

* Update laser.dm

* aaa

* aaa

* some sprite updates

* aaa

* shotgun suppressor+sound

* Update airlock.dm

* Update shieldgen.dmi

* chair fix, tools too.

* Update chairs.dmi
2020-11-01 16:35:39 +01: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
23ca0b88db [MIRROR] Converting the EMP protection component into an element. (#1494)
* Converting the EMP protection component into an element. (#54617)

* Converting the EMP protection component into an element.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-10-27 17:38:50 +00:00
SkyratBot
d6c80791d7 [MIRROR] Increases the broken light spark cooldown 6 folds (#1464)
* Increases the broken light spark cooldown 6 folds (#54579)

Whenever you stop to do something, and there's a broken light around, you would notice it spark, and if you stay, it sparks over and over again, becoming less of a nice rare occurance to something more annoying. This was very apparent during a shift yesterday on Manuel, where the entire station had lights broken, but they kept sparking over and over again and it never quite felt like we're in darkness.

* Increases the broken light spark cooldown 6 folds

Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-25 16:46:13 +01:00
SkyratBot
ca05c38a67 [MIRROR] Crystal invasion more rare (#1416)
* Crystal invasion more rare (#54504)

This PR makes crystal invasion much rarer and confine it between 4500 and 5000 MeV

* Crystal invasion more rare

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2020-10-22 04:37:12 +02:00
SkyratBot
6ecaa9a994 [MIRROR] Standardizes attack chain signal returns and fixes a tk bug (#1409)
* Standardizes attack chain signal returns and fixes a tk bug (#54475)

The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.

In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.

Additionally, fixed a tk bug reported by @ Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack

Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.

Also cleaned some code here and there.

* Standardizes attack chain signal returns and fixes a tk bug

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-10-21 07:39:32 +02:00
SkyratBot
d1315d9474 [MIRROR] Audio falloff re-work, and increased audio range. (#1406)
* Audio falloff re-work, and increased audio range.

* a

* a

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-21 07:36:31 +02:00