Commit Graph

46 Commits

Author SHA1 Message Date
Ghom 25b8f488f4 [NO GBP] Cyborg inducer fix... fix (#93119)
## About The Pull Request
#93096 made it possible for cyborgs to recharge themselves (or each
other) with inducers once again, when they shouldn't. It was my fault
for merging it seconds before that realization

## Why It's Good For The Game
The parent call should be by the end of the override, not at the start.

## Changelog
N/A
2025-09-26 09:20:34 -04:00
Aliceee2ch c86c856b6d Borg inducer can charge again (#93096)
## About The Pull Request

pr #91123 kinda broke borg inducers with overriding interaction proc

## Why It's Good For The Game

because before borg inducer was literally bricked

## Changelog

🆑
fix: Borg inducer can charge again
/🆑
2025-09-24 22:41:59 +02:00
Zergspower 545632b053 Fixes borg inducers, lets them install cells in APCs (#91123)
## About The Pull Request

the last few changes to the borg inducer didnt really address the issue
of:

borg cells have 100KJ by default
APC cells have 1MJ by default

This led to a borg Inducer being basically useless as it'd take your
entire cell in 1 pulse and barely even put a dent in the apc power.
Leading into the borg needing someones help to stuff them into a cyborg
charger so they could function again.

Talking in code chat it was kinda agreed that to split it back into the
inducer having a cell, i also added a blocker in if a borg tries to
power themselves or another borg with the inducer as i knew that'd be
something that was brought up.

Then 1 extra qol is just having the circuit upgrade let them pick cells
up, anyone who's ever tried making an apc as a borg (and still does)
have the cell plop to the ground after you screwdriver it twice.

## Why It's Good For The Game

Borgs can get the inducer upgrade without it being a suicide click and
QOL letting them install cells in an APC without having to slam their
face into the table after double clicking it for the 3rd time causing a
stack of megacells to accumulate underneath them.

## Changelog
🆑
qol: cyborg circuit upgrade can now handle cells as well, reduction in
borg related rage from building APC's down by 400%
fix: fixes borg inducers instantly depleting their cells, moves the
inducer cell act to be to an internal cell to compensate for power
differences
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2025-05-24 22:33:41 +00:00
SyncIt21 57eeb5290c Minor maintenance for borg Inducer (#88250)
## About The Pull Request
- Moves borg inducer to the same file as other inducers for easy
maintainence
- Compressed code for its `get_cell()` proc
- Fixes examines & screentips for borg inducer

## Changelog
🆑
code: slightly improved code for borg inducer
spellcheck: fixes examines & screentips for borg inducer
/🆑

---------

Co-authored-by: AMyriad <143908044+AMyriad@users.noreply.github.com>
2024-12-05 22:34:26 -08:00
SyncIt21 56a9de5a69 [NO GBP] Inducers can be inserted into storage objects again (#88071)
## About The Pull Request
- Fixes #88063

## Changelog
🆑
fix: inducers can be inserted into storage objects again
/🆑
2024-11-22 12:34:04 +01:00
thegrb93 704052391f Fix cyborg inducer (#87953)
## About The Pull Request
Fixes: #87951
## Why It's Good For The Game
Bugfix
## Changelog
🆑
fix: Fix broken cyborg inducer
/🆑
2024-11-17 04:59:21 +01:00
SyncIt21 35d008dfab General maintenance for inducer (#86929)
## About The Pull Request
**1. Qol** 
- Adds examines & screentips for screwdriver act, inserting & removing
cell

**2. Code Improvements**
 - Autodocs & removes some unused/redundant vars
 - Corrects return values of `screwdriver_act()`
 
**3. Fixes**
- Fixes #85408. Charging is consistent with cell rating & scales for
higher tier cells
- Syndicate inducers now uses super batteries not cells so they have
higher charge
 
**4. Refactor**
- Moved attack chain to `item_interaction()` & `interact_with_atom()` &
removes a lot of procs to merge with this new attack chain
 

## Changelog
🆑
qol: adds extra examines & screentips for inducer
fix: inducer charging rate scales with cell rating
fix: syndicate inducers now have correct charge & batteries installed
refactor: inducer attack chain has been improved & redundant vars/procs
have been removed, report bugs on github
/🆑

---------

Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-10-06 18:27:40 +00:00
SmArtKar d1cce22cca Doubles PACMAN power output, triples their sheet efficiency. Inducers can now be recharged with plasma. (#85950)
## About The Pull Request

PACMANs now can produce 10-40kW of power and take 180 ticks to go
through a sheet instead of 60. This does not allow them to power the
station on their own like in the good ole days, but they're still
capable of powering a section of a department(maybe even all of it if it
doesn't eat too much power)

Inducers can be recharged with plasma, 15kJ per sheet. Cargo-ordered
inducers now also start with an upgraded megacell (x2.5 of a normal one)
instead of a regular upgraded battery (x5 of a normal one and half of a
megacell) (it barely can charge anything)

## Why It's Good For The Game

PACMANs are currently in a very sad state as they are borderline useless
after power changes, and don't see much use beyond kickstarting the SM
if emitters don't have enough juice. This should bring them a bit into
action while not allowing them to power the entire station like before.
As for emitter changes, introduction of megacells rendered them almost
entirely useless as you cannot charge megacells you print and using
normal batteries for charging APCs is a joke. This should allow people
to recharge their APCs and machinery in a pinch. Inducer change has been
approved by Watermelon a while ago, while PACMAN buffs have been
mentioned but these are significantly smaller than discussed with him.

## Changelog
🆑
balance: PACMANs now have significantly increased power output and take
longer to consume a single sheet
balance: Inducers can now be recharged with plasma
balance: Inducers ordered from cargo now start with upgraded megacells
instead of upgraded batteries
/🆑
2024-08-19 13:15:57 +02:00
hyperjll 9a4e14eb7e Inducers accept megacells now. (#84395)
They still allow regular cells. Tested in-game, works fine.

Fixes: https://github.com/tgstation/tgstation/issues/84388

## About The Pull Request

Due to an oversight in the code, megacells were installed in inducers
but inducers wouldn't accept them to be installed in the first place.

## Why It's Good For The Game

Fixes an oversight. (bug)

## Changelog

🆑
fix: Inducers now accept megacells AND regular cells.
/🆑
2024-06-28 16:09:22 -06:00
Watermelon914 0db2a23faf Adds a new power storage type: The Megacell. Drastically reduces power cell consumption/storage. [MDB Ignore] (#84079)
## About The Pull Request
As the title says. A standard power cell now only stores 10 KJ and
drains power similar to how it did before the refactor to all power
appliances.

The new standard megacell stock part stores 1 MJ (what cells store right
now). APCs and SMESs have had their power cells replaced with these
megacell stock parts instead. Megacells can only be used in APCs and
SMESs. It shouldn't be possible to use megacells in any typical
appliance.

This shouldn't change anything about how much 'use' you can get out of a
power cell in regular practice. Most should operate the same and you
should still get the same amount of shots out of a laser gun, and we can
look at expanding what can be switched over to megacells, e.g. if we
want mechs to require significantly more power than a typical appliance.

Thanks to Meyhazah for the megacell icon sprites.

## Why It's Good For The Game
Power cell consumption is way too high ever since the power appliance
refactor that converted most things to be in joules. It's a bit
ridiculous for most of our machinery to drain the station's power supply
this early on.

The reason it's like this is because regular appliances (laser guns,
borgs, lights) all have a cell type that is identical to the APC/SMES
cell type. And it means that if we want to provide an easy way to charge
these appliances without making it easy to charge APCs/SMESs through a
power bug exploit, we need to introduce a new cell type to differentiate
between what supplies power and regular appliances that use power. This
is primarily what the megacell stock part does.

This moves us back to what it was originally like before the power
refactor, where recharging power cells wouldn't drain an exorbitant
amount of energy. However, it maintains the goal of the original
refactor which was to prevent people from cheesing power generation to
produce an infinite amount of power, as the power that APCs and SMESs
operate at is drastically different from the power that a regular
appliance uses.

## Changelog
🆑 Watermelon, Mayhazah
balance: Drastically reduces the power consumption and max charge of
power cells
balance: Added a new stock part called the battery, used primarily in
the construction of APCs and SMESs.
add: Suiciding with a cell/battery will shock you and potentially dust
you/shock the people around you if the charge is great enough.
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2024-06-25 00:32:19 +00:00
Zergspower 25d7675581 Inducer fixes for Syndie and Borg (#82430)
Borg and Syndies
## About The Pull Request

The borg and syndie inducers were basically inoperable, so this just
fixes that


![image](https://github.com/tgstation/tgstation/assets/22140677/b0bc411a-ad38-456f-944b-5272e121a01f)

![image](https://github.com/tgstation/tgstation/assets/22140677/ebaab84f-36e7-4871-958b-eb47af335a3a)

Also i just noticed TG borgs have no Messenger or ability to see the
manifest???

## Why It's Good For The Game
## Changelog
:cl:Zergspower
fix: fixes Borg and Syndicate inducers not working
/🆑
2024-04-04 19:03:36 -06:00
Jeremiah 1443ef79d3 Replaces a number of deciseconds into SECONDS (#82436)
## About The Pull Request
Using these search regexes:

Number ending in 0:
`do_after\((\w+), (\d+)0,`
Replace:
`do_after($1, $2 SECONDS,`

Single digit number:
`do_after\((\w+), [1-9],`
replace:
`do_after($1, 0.$2 SECONDS,`

Double:
`do_after\((\w+), (\d)([1-9]),`
Replace:
`do_after($1, $2.$3 SECONDS,`

## Why It's Good For The Game
Code readability
2024-04-04 18:56:08 -06:00
Pickle-Coding c1f11f26ce Converts arbitrary energy units to the joule. Fixes conservation of energy issues relating to charging cells. (#81579)
## About The Pull Request
Removes all arbitrary energy and power units in the codebase. Everything
is replaced with the joule and watt, with 1 = 1 joule, or 1 watt if you
are going to multiply by time. This is a visible change, where all
arbitrary energy units you see in the game will get proper prefixed
units of energy.

With power cells being converted to the joule, charging one joule of a
power cell will require one joule of energy.

The grid will now store energy, instead of power. When an energy usage
is described as using the watt, a power to energy conversion based on
the relevant subsystem's timing (usually multiplying by seconds_per_tick
or applying power_to_energy()) is needed before adding or removing from
the grid. Power usages that are described as the watt is really anything
you would scale by time before applying the load. If it's described as a
joule, no time conversion is needed. Players will still read the grid as
power, having no visible change.

Machines that dynamically use power with the use_power() proc will
directly drain from the grid (and apc cell if there isn't enough)
instead of just tallying it up on the dynamic power usages for the area.
This should be more robust at conserving energy as the surplus is
updated on the go, preventing charging cells from nothing.

APCs no longer consume power for the dynamic power usage channels. APCs
will consume power for static power usages. Because static power usages
are added up without checking surplus, static power consumption will be
applied before any machine processes. This will give a more truthful
surplus for dynamic power consumers.

APCs will display how much power it is using for charging the cell. APC
cell charging applies power in its own channel, which gets added up to
the total. This will prevent invisible power usage you see when looking
at the power monitoring console.

After testing in MetaStation, I found roundstart power consumption to be
around 406kW after all APCs get fully charged. During the roundstart APC
charge rush, the power consumption can get as high as over 2MW (up to
25kW per roundstart APC charging) as long as there's that much
available.

Because of the absurd potential power consumption of charging APCs near
roundstart, I have changed how APCs decide to charge. APCs will now
charge only after all other machines have processed in the machines
processing subsystem. This will make sure APC charging won't disrupt
machines taking from the grid, and should stop APCs getting their power
drained due to others demanding too much power while charging. I have
removed the delays for APC charging too, so they start charging
immediately whenever there's excess power. It also stops them turning
red when a small amount of cell gets drained (airlocks opening and shit
during APC charge rush), as they immediately become fully charged
(unless too much energy got drained somehow) before changing icon.

Engineering SMES now start at 100% charge instead of 75%. I noticed
cells were draining earlier than usual after these changes, so I am
making them start maxed to try and combat that.

These changes will fix all conservation of energy issues relating to
charging powercells.
## Why It's Good For The Game
Closes #73438
Closes #75789
Closes #80634
Closes #82031

Makes it much easier to interface with the power system in the codebase.
It's more intuitive. Removes a bunch of conservation of energy issues,
making energy and power much more meaningful. It will help the
simulation remain immersive as players won't encounter energy
duplication so easily. Arbitrary energy units getting replaced with the
joule will also tell people more meaningful information when reading it.
APC charging will feel more snappy.
## Changelog
🆑
fix: Fixes conservation of energy issues relating to charging
powercells.
qol: APCs will display how much power they are using to charge their
cell. This is accounted for in the power monitoring console.
qol: All arbitrary power cell energy units you see are replaced with
prefixed joules.
balance: As a consequence of the conservation of energy issues getting
fixed, the power consumption for charging cells is now very significant.
balance: APCs only use surplus power from the grid after every machine
processes when charging, preventing APCs from causing others to
discharge while charging.
balance: Engineering SMES start at max charge to combat the increased
energy loss due to conservation of energy fixes.
/🆑

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-23 16:58:56 +01:00
jimmyl 2324edfbb1 cyborg inducer respects cell changes (#81002)
## About The Pull Request

cyborg inducers use the cell of the cyborg instead of the one in the
borg when it was inserted

also minor code cleanup

## Why It's Good For The Game

fixes #80956

## Changelog
🆑
fix: cyborg inducer respects cell changes
/🆑
2024-01-20 15:07:56 +01:00
KingkumaArt 110d8a05e3 Engineering autolathe now prints engi inducers instead of science ones + boosts recharge rate of sci-printed inducers (#80126)
## About The Pull Request

Allows engineering to print/order engi inducers instead of science ones.
They have their own type of inducer, so its weird that the amount of
them is finite.

## Why It's Good For The Game

I thought this was the case when I made my crossbow PR, and it only is
craftable with an engineering one. Turns out engineering quickly ran out
of inducers to make them with since they only get three. Oops.

As for the science inducer charge buff, around half of my 400ish hours
in ss13 is engi, and not once have I been asked by a scientist if they
could have a better inducer. 500 charge vs 1000 charge is only a change
of clicking an apc again and waiting an extra second. Plus, the reason I
picked inducers as the item that the crossbow required in the first
place is that 95% of rounds they never once moved from the closet (and
people most certainly open said closet, since the insuls are almost
always gone.)

## Changelog
🆑
qol: Engineering now can print/order engi inducers instead of science's
purple ones.
bal: Sci inducers now recharge 1000 charge per go, just like engi ones
do.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
2023-12-23 11:07:58 +01:00
SuperSlayer ffff29b5f8 Improves the error message of inducer (#73183)
## About The Pull Request

Now instead of saying "Error unable to interface with device" it says
"Error: unable to interface with device".

## Why It's Good For The Game

The message now sounds better

## Changelog
🆑
spellcheck: Added a ":" to inducer error message
/🆑
2023-02-04 10:05:56 -08:00
Seth Scherer f1a363c825 Converts a shitload of istypes to their more concise macros (#69260)
* Converts a lot of istypes() to use their istype macro helpers.
2022-08-18 22:08:44 -04:00
GuillaumePrata d1ca6e58a1 Balloonify welders and extinguishers (and more later) (#67818) 2022-06-18 17:08:04 -07:00
Luc 4fd16bcbdb Make more use of <tool>_act (#64375)
Replaces a bunch of tool behavior checks in attackby to instead use the respective procs.
For instance, the behavior under a if(I.tool_behaviour == TOOL_SCREWDRIVER) check in attackby() will instead be found under that same object's screwdriver_act() proc. This is the first of a few PRs that I'd like to make to address this, since there's going to be a lot of code shuffled around.

This shouldn't have any impact on players, though some super observant folks might notice that they don't bash some items with tools when they meant to interact with them. I've tested all of these in game and they seem to still have the same behavior as before.
2022-01-25 15:17:30 +00:00
Ghilker b95c0366a4 _HELPERS/unsorted.dm has been sorted (#61882)
bring code up to latest standards, move many procs to named files inside _HELPERS
no idea where to put some of these procs, help is appreciated
made more files to contain some unique code, deleted unsorted.dm, we can rest now
2021-10-05 20:22:57 +01:00
tralezab 6c01cc2c01 every case of initialize that should have mapload, does (#61623)
## About The Pull Request

stop forgetting to include mapload, if you don't include it then every single subtype past it by default doesn't include it

for example, `obj/item` didn't include mapload so every single item by default didn't fill in mapload

![](https://media.discordapp.net/attachments/823293417186000909/875122648605147146/image0.gif)

## Regex used:

procs without args, not even regex

`/Initialize()`

procs with args
`\/Initialize\((?!mapload)((.)*\w)?`

cleanup of things i didn't want to mapload:
`\/datum\/(.)*\/Initialize\(mapload`
2021-09-24 17:56:50 -04:00
Kylerace d9ee5e7297 moves obj_integrity and associated procs to the atom level (#61183) 2021-09-06 04:07:26 -07:00
Watermelon914 375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
Ryll Ryll 66daec9eb8 *smacks table* Hot Damn! (#57269) 2021-02-28 22:22:33 -08:00
TemporalOroboros e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
Qustinnus 707fc287b4 Replaces intents with combat mode (#56601)
About The Pull Request

This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:

    Disarm and Grab intents have been removed.
    Harm/Help is now combat mode, toggled by F or 4 by default
    The context/verb/popup menu now only works when you do shift+right-click
    Right click is now disarm, both in and out of combat mode.
    Grabbing is now on ctrl-click.
    If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)

Minor interaction changes:

Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game

Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.

As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.

As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.

In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.

The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog

cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
2021-02-04 16:37:32 +13:00
Ghom 91bfedcd16 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).
2020-11-10 15:15:31 -03: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
nightred 395bebcdcc [READY] Space Suits use cells and warm the wearer (#49028)
About The Pull Request

This makes space suits use a cell and warm the wearer, This was handled by the handle_environment proc in the past with an override to make the suits work. This corrects this issue, and removes the override.

All space suits will have a cell installed at round start, this cell will last 15 min on average usage.

The cell cover can be toggled by alt+clicking (press the button), or using a crowbar (just pry it open) on the suit.
With the cover open you can remove the cell by using the suit in hand, or ctrl+clicking the suit.
As well with the cover open you can use a screwdriver to set the thermal regulator's temperature. The normal range is 20 c to 45 c, do not use an emag on the suit to increase the temperature range.

Examining the suit will report the temperature setting and the cells charge, if the cover is open you will also be able to see the type of cell that is in the suit.

Suit storage units will now charge the cells in suits, they will also require power to operate properly now.

Why It's Good For The Game

    Space suits should be managing the wearers temp in space not using some override.
    Lizards now have a portable heater in the form of any space suit.
    Now that suits need a cell it is not as easy to spend all session in a space suit.
    New interactions with hardsuits and emp's give nice combat buff to an underused item.
    Nuke ops can raid xeno for some nice yellow cells, or science for a big old bluespace cell.
2020-02-15 11:32:54 +13:00
necromanceranne 77608a9f46 Adjusts Dark Gygax Equipment and stats, gives nukies a mech support bag. (#49131)
* Buffs the gygax, give some more support items for mechs in general since there isn't a need for a dedicated ammo bag for the gygax

* Wrong cell

* Fixed some stuff.

* I fucked up the wrench inhand good and proper yikes I am a dumb cat

* gave some inhands for the inducers

* Hopefully this adds the overlays for the wrench.

* Someone helped me make a much better wrench sprite after several failed attempts on my part due two tones being hard to make definable shapes with!
2020-02-13 09:58:35 +01:00
MrPerson e22560a346 update_icon() improvements (#48669)
* update_icon() improvements

Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().

The rest of obj/item fuck it

* Suggested fixes, also passes the linter

* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON

* Actually this is better

* Signilzes datum/action to update its icon when its connected item does.
2020-01-11 23:46:43 -05:00
kingofkosmos 280d416d4f Adds missing spans, missing periods and missing span endings. Also changes spans to suit the situation better. 2019-10-12 19:34:11 +03:00
kingofkosmos df1fecc58c Adds notice-span to visible_messages with no spans (#46044)
About The Pull Request

Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game

This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
2019-08-26 20:50:00 +12:00
vuonojenmustaturska 8ddc9677c7 examine-code refactor (#44636)
* 1/4 done? maybe?

* more

* stuff

* incremental stuff

* stuff

* stuff & things

* mostly done but not yet

* stuffing

* stuffing 2: electric boogaloo

* Git Commit and the Kingdom of the Crystal Skull

* make it actually compile

* found more stuff

* fixes

* fix AI laws appearing out of order

* fix windows

* should be the remaining stuff

* this time for real

* i guess it should compile too

* fix sechuds
2019-06-19 22:07:57 +02:00
ShizCalev 2fa1ac1349 Replaces istypes with the proper tool_behaviour checks. (#40414) 2018-10-01 03:10:31 +03:00
vuonojenmustaturska 1eccbcca18 Adds an EMP protection component, allowing ANYTHING to be protected from EMP (#37671)
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like

This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away.
2018-05-22 11:38:02 +12:00
blah 0042b12379 What I get for commiting without doing a build check first 2018-04-22 14:09:09 +01:00
blah 97b52ed3d7 Fixes a power creep that occurred with two objects that weren't realised by the project lead/owner and needs reverting. 2018-04-22 14:02:27 +01:00
ACCount c6e607dc17 Refactors use_sound and changes the way tools play sounds (#35521)
* Adds list support to usesound, ports drills to usesound

* Adds more tool sounds, changes usesound usage to play_tool_sound

* fix
2018-02-12 17:16:47 +02:00
Tad Hardesty c6da68ab62 Measure energy values in joules 2017-12-02 16:05:31 -08:00
ACCount b161b18599 Integrated circuit fixes and code improvements (#32773)
* Fucking conflicts

* Small code changes

* Makes the IC printer start upgraded to offset balance concerns caused by a fixed bug
2017-11-21 10:04:09 +01:00
kevinz000 caa1e1f400 Massive research refactor; changes research system to techwebs; Decentralized research 2017-11-18 19:55:40 -08:00
kevinz000 84451478eb fixes inducers working from inside things (#32290) 2017-11-02 03:15:00 -06:00
Tad Hardesty 13f32a938b Improve extended examination text for many objects (#31381)
Plurality, capitalization, punctuation, and item icons have been
improved. Status displays now show the same text on examination that
they do visually. Inducers only show a success message when they
actually succeed.
2017-10-10 21:06:46 +13:00
shizcalev 2427f217f7 Standardized power displays 2017-08-28 14:22:05 -04:00
Jordan Brown af4d9a85c9 Repaths /obj/item/weapon to /obj/item (#29929) 2017-08-16 10:38:51 -03:00