Commit Graph

66 Commits

Author SHA1 Message Date
SkyratBot
e90627be0e [MIRROR] Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed [MDB IGNORE] (#9176)
* Modernizing Radiation -- TL;DR: Radiation is now a status effect healed by tox healing, and contamination is removed

* Fixing conflicts

* Makes it compile, yeet all the RAD armor from everywhere (thanks RegEx!)

* Removing more lingering rad armor (woo)

* Damnit powerarmors

* Bye bye rad collectors!

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2021-11-02 10:36:46 -04:00
SkyratBot
ced8a70537 [MIRROR] Rename freon_gas_act to freeze_turf [MDB IGNORE] (#8690)
* Rename freon_gas_act to freeze_turf (#61958)

This was only used from two places, neither of which involved freon.

* Rename freon_gas_act to freeze_turf

Co-authored-by: esainane <esainane+github@gmail.com>
2021-10-08 15:32:52 +01:00
SkyratBot
087da53b8d [MIRROR] Meteor guns, the admin weapon, once again harms living mobs (#8392)
* Meteor guns, the admin weapon, once again harms living mobs (#61520)

When explosions got refactored, this stopped harming mobs because it lacked a check. Goof must have missed this, but it's also probably not as simple to put everything back as it was. This mostly restores old behaviour by putting the relevant code into on_hit() and out of Bump() when handling living mobs, since it's a projectile and all. I don't know if the values I added are appropriate but given that the old behaviour was a high damage localized explosion, it almost certainly isn't far off.

fixes #61244

* Meteor guns, the admin weapon, once again harms living mobs

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2021-09-25 14:40:26 +01:00
SkyratBot
c23bd1cb8c [MIRROR] every case of initialize that should have mapload, does (#8374)
* every case of initialize that should have mapload, does

* E

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-24 23:07:53 +01:00
SkyratBot
39ecb0a174 [MIRROR] Radically improves explosion logging. (#8255)
* Radically improves explosion logging.

* Update eldritch_effects.dm

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-19 22:25:20 +01:00
SkyratBot
b0c01e40af [MIRROR] Del The World: Unit testing for hard deletes (#7589)
* Del The World: Unit testing for hard deletes (#59612)

Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>

* Del The World: Unit testing for hard deletes

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
2021-08-17 18:58:57 +01:00
Y0SH1M4S73R
93d03dc6bb [Alternative to #6407] Makes mutant bodyparts and mutcolors into editable genetic traits (#6750)
* Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code)

* Mirror

* genetically-editable mutant bodyparts and colors - skyrat edition

Co-authored-by: Funce <funce.973@gmail.com>
2021-07-08 16:04:19 +01:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
SkyratBot
6f3b151bb8 [MIRROR] Fixes a bunch of harddels that are sourced from player action (#6252)
* Fixes a bunch of harddels that are sourced from player action

* Mirror!

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2021-06-11 03:13:33 +01:00
SkyratBot
b6d1153433 [MIRROR] Is that a fucking rocke- (#5720)
* Is that a fucking rocke- (#59056)

Being hit directly by a rocket launcher now has a 1% chance to make you briefly try processing what's about to happen before exploding you.

* Is that a fucking rocke-

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-05-15 19:53:38 +01:00
SkyratBot
5b8a38af3a [MIRROR] Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#5244)
* Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)

* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.

* Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2021-04-27 01:53:17 +01:00
SkyratBot
acd2690d2e [MIRROR] Implements Plant Biotype (#4401)
* Implements Plant Biotype (#57108)

Implements a plant biotype for plant based mobs. Changes the wood golem mob to be an organic, humanoid, and plant biotype---because wood is an organic substance, not a mineral.

This additionally adds the ability for plantbgone/weedkiller to deal damage to plant biotypes.
Why It's Good For The Game

There's a curious lack of a defined plant biotype, despite plants sharing a unique number of traits. Ideally, this behavior can be more consistently implemented with something like biotypes. A minor example of this is utilized in this PR: weedkiller and plantbgone impacting plant-like mobs, which is what you'd expect.
Changelog

cl
add: Plant-like mobs are now impacted and take damage from plant-b-gone and weedkiller reagents
add: Plant-like mobs can be health scanned with a plant analyzer
add: Plant-like mobs are impacted by the floral gun in the same manner pod people are
/cl

* Implements Plant Biotype

Co-authored-by: Fox McCloud <Fox-McCloud@users.noreply.github.com>
2021-03-25 21:31:29 +00:00
SkyratBot
e85f8a4486 [MIRROR] Replace some turf in range() with RANGETURFS and fix(?) bspace trauma (#4070)
* Replace some turf in range() with RANGETURFS and fix(?) bspace trauma (#57566)

* Replace some turf in range() with RANGETURFS and fix(?) bspace trauma

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2021-03-11 13:44:28 +01:00
SkyratBot
89a5f7e7e4 [MIRROR] Fixes the randomly failing unit test that sometimes happens. (#3746)
* Fixes the randomly failing unit test that sometimes happens. (#57266)

* Fixes the randomly failing unit test that sometimes happens.

Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
2021-03-01 22:29:21 +00:00
SkyratBot
3a1315edb7 [MIRROR] Move the curse hand's visual effects out of Destroy (and possibly fix the sporadic unit test failure) (#3714)
* Move the curse hand's visual effects out of Destroy (and possibly fix the sporadic unit test failure)

* Update curse.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
2021-02-28 14:36:38 +00:00
SkyratBot
b8c2f72733 [MIRROR] moves gun related icons to guns folder (#3568)
* moves gun related icons to guns folder (#57077)

moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd

* moves gun related icons to guns folder

Co-authored-by: Fikou <piotrbryla@onet.pl>
2021-02-22 02:07:33 +00:00
SkyratBot
18eca27569 [MIRROR] update_appearance (#3508)
* update_appearance

* a

* a

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-19 16:08:09 +00:00
SkyratBot
3f72c8b070 [MIRROR] breaching missiles breach windows and rwindows (#3329)
* breaching missiles breach windows and rwindows (#56858)

Co-authored-by: Fikou <piotrbryla@ onet.pl>

* breaching missiles breach windows and rwindows

Co-authored-by: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
Co-authored-by: Fikou <piotrbryla@ onet.pl>
2021-02-13 00:39:38 +00:00
SkyratBot
5eb385092c [MIRROR] Adds Rocket Backblast (#2617)
* Adds Rocket Backblast (#55681)

This PR adds the backblast element, which when attached to a gun, creates giant plumes of fire when said gun is fired. The PM9 rocket launcher that nuke ops can buy kinda sucks and even a direct hit with the standard rockets loaded isn't enough to guarantee a one-hit crit on a direct hit against an armored opponent, which sucks for how much you pay for it. In that vein, I've also buffed the standard rockets a bit, they now do 50 brute up from 30 on a direct hit, and they create flames on their explosion.

Also makes a tweak to /proc/get_turf_in_angle(), since tile coordinates start at 1,1 instead of 0,0 that proc is now clamped to min 1,1 rather than 0,0

* Adds Rocket Backblast

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-01-10 08:35:51 +01: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
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
Gandalf
e360369041 Plasma cutter refactor [NON-MODULAR] (#2022)
* Update plasma.dm

* Update plasma.dm

* Update code/modules/projectiles/projectile/special/plasma.dm

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

* Update plasma.dm

* Update code/modules/projectiles/projectile/special/plasma.dm

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

* Update code/modules/projectiles/projectile/special/plasma.dm

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

Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-03 18:26:30 +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
e52038974a [MIRROR] Foam darts and other unembeddable bullets will no longer leave ghost shrapnel (#1796)
* Foam darts and other unembeddable bullets will no longer leave ghost shrapnel (#54994)

Projectiles are assigned the ability to try embedding by the presence of a shrapnel_type variable being set on them, whether or not they actually have a set of embedding stats in their embedding var. By default, children of /obj/projectile/bullet have a shrapnel type set to a generic embedded bullet item, including things like foam darts and lollypop projectiles which shouldn't be able to embed (and certainly not embed as a bullet). While they had their embedding vars set to null, they still had their shrapnel_type set to the embedded bullet type, meaning shooting a person with a dart gun or whatever would leave a failed shrapnel item on the ground where they weren't supposed to.

This fixes that by requiring both a defined shrapnel_type AND a defined embedding var for the embedding stats. Any projectiles without both won't be able to try embedding. I also manually put 'shrapnel_type = null' on any bullet subtypes with embedding = null just to be safe and for consistency.

* Foam darts and other unembeddable bullets will no longer leave ghost shrapnel

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2020-11-24 08:34:46 +00:00
SkyratBot
cd0d700a85 [MIRROR] Mecha refactor 2020 (#579)
* Mecha refactor 2020

* Update effects.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-09-02 02:16:51 +02:00
SkyratBot
3bd294f26f [MIRROR] Defines damage flags. (Hopefully without 50+ commits) (#491)
* Defines damage flags. (#53158)

* Defines damage flags. (Hopefully without 50+ commits)

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
2020-08-24 22:52:31 +02:00
SkyratBot
d3f6e8d49f [MIRROR] Explosions SS runtime fix + code cleanup (#461)
* Explosions SS runtime fix + code cleanup (#52894)

* runtime fix

* turf references are immortal

* Explosions SS runtime fix + code cleanup

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-21 21:30:43 +01:00
SkyratBot
035aebc2a2 [MIRROR] Diagonal macro thingu (#407)
* Diagonal macro thingu (#52927)

* Diagonal macro thingu

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-08-19 04:53:44 +02:00
SkyratBot
d44362146e [MIRROR] repaths neurotoxin + embedding changes in bullets + adds effects when you shoot energy weapons (#132)
* repaths neurotoxin + embedding changes in bullets + adds effects when you shoot energy weapons (#52543)

* how

* Update alien_powers.dm

* adds impact effects, makes thinks that shouldnt embed not embed

* rogue pixel moment

* repaths neurotoxin + embedding changes in bullets + adds effects when you shoot energy weapons

Co-authored-by: Fikou <piotrbryla@onet.pl>
2020-07-31 00:24:09 +02:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
Iamgoofball
a3aa69701a [READY] Basically, Instant Explosions 2: The Search For More Money: Eternal: A Tail Of Two Kitties: 33 1/3 (#50594)
About The Pull Request

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

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

Credit to goon.

Here's some videos!

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

Changelog

cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl
2020-04-30 10:27:53 +12:00
ArcaneMusic
dc89ef0239 Turbotany version 1.2 (#50513)
* EVERYTHING. Check the changelog.

* Minor species change, spade fits on plant belt.

* Local man blind, news at 11.

* Longrange pollenation, and fixes pill composting.
2020-04-21 02:12:49 -07:00
Emmett Gaines
2cf7728494 Removes the bitflag helpers (#49106) 2020-02-03 16:26:00 -05:00
nightred
5be9559eef Temperature projectiles respect insulation (#48912)
About The Pull Request

Guns, Spells, and mobs that use temperature based projectiles got an update so that the projectile must deal with insulation when applying temperature changes.
The more insulation you have the less body temperature change you will take.

This does not change how much damage you take from a projectile.

The projectiles have been updated from the temperature to be set as, to the amount of change they can do.
The old security temp gun would always set the body temp to 100 kelvin, now each shot tries to reduce your body temp by -50 kelvin before insulation. The reverse is also true for temp projectiles that heat you up.

This does mean that naked you will take more body temp loss, and in a hard suit you have almost no temp change. (hardsuits do protect you from space cold so this follows)

edit: this does not touch cryo sting, that uses frost oil.
Why It's Good For The Game

Better handling of temperature shots.
Insulation matters in combat.
Cold blooded creatures are better off with good insulation.
Changelog

🆑
balance: Temperature based projectiles respect insulation
/🆑
2020-01-23 13:21:25 +13: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
spookydonut
4e8ff18b07 Fix Travis grep script to use PCRE to actually match things (#47065)
Several of the greps were missing the `-P` switch which caused them to 
fail to match things. The EOL grep also wasn't working right so I 
replaced it with the one I added to TGMC.
2019-10-19 10:21:05 -07:00
Qustinnus
b021210a2f [READY] Adds a basic skill framework to Physiology. (Only applied to mining) (#46913)
* levels

* mining

* ore exp

* fixes

* epic

* Update code/game/turfs/simulated/minerals.dm

Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* fixes message

* dumb

* shreet

* epic

* fix

* ass

* scrape

* fixes bugs

* fixes

* reset

* test

* ??

* ok bye

* fix

* Adds skills

* skill
2019-10-18 19:59:35 -04:00
nemvar
a148cae769 Kills obj/item/projectile in favour of obj/projectile (#46692)
* Kills obj/item/projectile in favour of obj/projectile

* Resolves conflicts properly

* fixes that one map

* it lives
2019-10-06 13:37:24 -04:00
Rob Bailey
2029163d33 playsound vary boolean define conversion (#46254)
About The Pull Request

Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls

This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE

I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game

Code usability
2019-08-30 18:45:20 +12:00
RandolfTheMeh
48fbc073e5 [TMC] Defib Rework, Organ Damage Effects (#45104)
* Brain damage works on organ damage procs, some defib reworks

* Heart and Lung damaging effects and failure, liver damage and failure moved to its organ again

* Cleans up reused global

* Organ damage procs on living and living/carbon

* Changes brain damage procs again

* SR heals all organs on revive, no decay for cybernetic implants, stomach damage and fail effects.

* Damage and failure effects for the appendix, ears, and some touchups on the stomach

* Committing changes so I don't lose them

* Organs now cease decaying in the proper containers

* Organ Fridges

* Reverts map changes

* Adds coronary bypass, lobectomy, trying to deal with organ_stat runtime

* Actually fixes merge conflict

* Smartfridge tweaks

* Think I figured out map merger

* Evidently not

* Still runtiming with glass shards even after I remove the map changes?

* Fixes runtime error with brain_item

* Runtime fix on living/carbon/life

* Cleaning up old PR code

* Brain damage fix, moves defines to actually be in _DEFINES, under DNA since that's where organ slots were

* Wrong math operation used

* Brains in MMIs no longer decay

* Removes redundant variable, and defibs no longer work on heart attacks caused by failing hearts

* Removes misleading comment

* init freezes organs in case organ crates are added, morgue corpses are frozen, removes adjustLiverLoss

* Removes random spaces, scanners check brain damage severity now

* Swaps numbers for defines, fixes brain surgery, rebalances coronary bypass bleed since that was insane last I tested it

* List change

* Runs off of an index instead of using cut

* Brains can be put into organ fridges

* Fixes minor type, hotfix for cloning problem

* Removes pointless check

* Demon hearts no longer decay

* Nightmare hearts no longer decay

* Removes istype() check on process, sets can_decompose instead

* Condenses organ damage report

* Removes organ failure messages

* Less organ damage spam, implements organ threshold messages instead

* Brain damage messages go to owner, not source

* Self-examine shows damaged organs

* Minor code cleanup, adds autodoc comments to the new procs

* Inverts standard organ vars to prevent random organs decaying, adds a few more autodoc comments.

* Merged the booleans into a set of flags

* Healthy living improves organ healing rates

* dunno why this didn't update

* my actions have consequences

* Sets ORGAN_SYNTHETIC for overlooked robotics organs

* Doubles heart decay time

* 3 minute heart decay

* Lobectomy/Coronary_Bypass heal more

* removes hivemind spells from the changes
2019-07-29 02:18:22 -07:00
zxaber
f01e2704e1 [READY] Ammunition management for ballistic mech weapons, and a nerf to mech missiles (#44529)
About The Pull Request

Adds an ammo system and printable ammunition to most mech weapons with a "rearm" function. Replaces the old system of generating ammo at a power cost. With the exception of the missile launcher and clusterbang launcher, all affected weapons have a storage capacity of ammunition equal to four-times the amount of ammo that the weapon can load (though the storage cache starts with only one full reload when printed from the mechfab). Ammo boxes are printed from the mechfab and also are available in the Sec protolathe, and each box will carry exactly one full reload. Ammo boxes are not terribly expensive, but reloading requires either an ally on foot to pop the ammo box in, or for you to hop out and do it yourself.

Missile tubes and the clusterbang launcher do not have an ammo storage cache, and so reloading them will reload the tubes directly. This is not the full extent of nerfs that the missiles need (I will do those in a separate PR since I suspect this one will be controversial) (read below), but removing the ability to reload missile pods without an ally or exiting the mech may help a bit.

The SRM-8 has been replaced with the new BRM-6 in tech webs. The BRM carries a smaller explosion and does not explode unless hitting a wall, door, shutter, or another mech, and only has six shots. The SRM-8 remains on the Mauler mech. If the BRM missile does not explode, it will deal 30 brute damage instead, and break.
Why It's Good For The Game

Currently, mech ballistic weapons function like reloadable lasers. You have an ammo counter, but it's one hundred percent based on your energy cell. This gives some flavor to ballistic weapons, making them actually feel different, and gives them a mini-niche in the form of good choices to use alongside an energy-draining mech ability (like the Gygax speed).

Use lasers when you won't need to worry about power and/or need burn damage.
Use ballistics when you want to save power and/or need brute damage.

The SRM-8 to BRM-6 change is being done here so that I don't have to wait until this PR is merged before starting it. The idea is to keep the reasons why you'd want to build a missile launcher (wall breaking and mech fighting) without also outclassing most other weapons burst damage potential. I'm not truly happy that the explosions deal zero damage to surrounding people even one tile away, but dealing no damage is better than the massive damage + stun that the current missile launcher does. Nuke Mauler has the old launcher, since I believe the consensus is that Nukie Mechs are already not generally worth the money.
Changelog

cl
balance: Mecha ballistics weapons now require ammo created from an Exosuit Fabricator or the Security Protolathe, though they will start with a full magazine and in most cases enough for one full reload. Reloading these weapons no longer chunks your power cell. Clown (and mime) mecha equipment have not changed.
balance: The SRM-8 Missile Launcher has been replaced with the BRM-6 Breaching Missile Launcher in techwebs (Nukie Mauler remains equipped with the SRM-8).
balance: Both Missile Launchers and the Clusterbang Launcher do not have an ammo cache, and cannot be reloaded by the pilot. Once the initial loaded ammo has been spent, you can use the appropriate ammo box to load the weapon directly.
add: Utility mechs that have a clamp equipped can load ammo from their own cargo hold into other mechs.
add: Nuke Ops can purchase spare ammo duffel bags for their mecha weapons, should they run low.
/cl

To-Do:

Add ammo to security protolathe
Get better ammo box sprites (hopefully)
Possibly adjust ammo counts for balance. Might make the flashbang launcher and/or cluster launcher behave like the missile pod.

    Add functionality for the utility mechs to use clamps to load ammo from their cargo hold into another mech.

Ammo counts, for anyone wondering:
Weapon 	Magazine Size 	Total ammo at start* 	Maximum total ammo*
Scattershot† 	40 (10) 	80 (20) 	200 (50)
Hades 	24 	48 	120
Ultra AC 2† 	300 (100) 	600 (200) 	1500 (500)
BRM-6 Missile Rack 	6 	6 	6
SRM-8 Missile Rack 	8 	8 	8
Flashbang Launcher 	6 	12 	30
Cluster Launcher 	3 	3 	3

*Total ammo is the amount in the weapon's magazine plus the stored ammo.
†The Scattershot lists its ammo as 40, but uses four per shot. So in reality, a single full reload gives you ten shots. Similarly, the UAC2 fires in three-round bursts, and so 300 rounds is 100 bursts.

Clown weapons (and the mime weapon) are all unaffected by this change.
2019-06-27 20:03:31 +12:00
4dplanner
69bd3810b2 HoS gun ion mode replaces taser mode (#44216)
* HoS gun ion mode

* Bumps up HoS egun ion cost

* Rearranges hos gun ammo types

* Fixes empulse

Adjusts hos ion to weak level
Fixes weak ion bolt
2019-06-11 10:36:17 -04:00
vuonojenmustaturska
fb45b7a017 Turns trait accessors into defines, fixes some bugs (#43820)
It's free performance.
2019-05-06 19:44:05 -04:00
ShizCalev
dd90023114 Fix alpha somatoray runtime when shooting podpeople (#43177)
randmut() had no params which was causing a runtime. Looking into it further,
this looks to have just been left-over code, since it's all duplicated in
species/on_hit for them anyway.
2019-03-19 23:14:04 -07:00
ShizCalev
a26ffb2040 Fixes wormhole projectors for pacifists (#43096)
* Fixes wormhole projectors and gravity manipulators for pacifists

* code cleanup

* didn't mean to push that!

* removes gravgun

* Update code/modules/projectiles/ammunition/energy/portal.dm

Co-Authored-By: ShizCalev <ShizCalev@users.noreply.github.com>
2019-03-14 15:28:03 -04:00
Menshin
8d11af1748 * Fix a runtime on mecha syringe gun hitting that prevented reagent transfer (#42642)
* Reverted some hastily (and wrongly) made changes to prehit() procs
2019-02-04 22:06:15 +13:00
Time-Green
9861efde71 Cryokinesis and Geladikinesis mutations (#42453)
* Adds cryokinesis and renames the cold resistence file to space adaptation

* adds cryokinesis

* fixes icon conflict

is there actually a proper way to fix them thats not copying master and reimplimenting your own sprites?

* fixes a typo and lowers instability of cryokines by 5

* Apply suggestions from code review

Co-Authored-By: Time-Green <timkoster1@hotmail.com>

* maybe reverts line ending?

* unfucks flags?

* probably unfucks line endings

i swear to fucking god why does it even do this. i never even touched the file and reverting it to master doesnt do anything. fuck you git
2019-01-23 15:20:56 -05:00
Menshin
9dabcbbb04 Fixes for projectiles bugs (#42463)
* Bandaid fixes for bugs with reflectors projectiles and plasma cutters

* * Fixed bouncing piercing projectiles on qdel
* Fixed projectiles reflection not working
* Fixed heavy beam pulses not penetrating
* Changed numerous projectiles procs to use the new BULLET_ACT_* format

* Final conversions to new BULLET_ACT_* format
2019-01-23 21:00:11 +13:00
kevinz000
15c9b20ff3 Fixes projectile infinite loops, adds new UNSTOPPABLE movement_type, forcedodge variable on projectiles scrapped (#41915)
cl coiax
fix: Dead monkeys now produce miasma.
/cl

Previously any time there was a dead monkey, it would constantly runtime with incompatible component warnings.
2018-12-16 13:00:44 +13:00
Barhandar
c49064bf62 Makes magboots effective in preventing gravitational movement effects, fixes magboots not working for singularity pull, eases the chainstun effect of overcharged supermatter (#41583)
* I'm through accepting limits 'cuz someone says they're so

* Some things I cannot change but till I try, I'll never know!

* Too long I've been afraid of losing love I guess I've lost

* Well, if that's love it comes at much too high a cost!

* I'd sooner buy

* DEFYING GRAVITY

* Kiss me goodbye, I'm defying gravity

* I think I'll try

* DEFYING GRAVITY

* And you won't bring me down

* Unlimited
2018-11-22 18:38:49 -05:00