Commit Graph

1358 Commits

Author SHA1 Message Date
MrMelbert
b3e8eebdc9 Kills /obj/item/melee/transforming, replaces it with a transforming weapon component (#60761)
This PR kills off the transforming subtype of /obj/item/melee and replaces it with a component to handle the transforming behavior, /datum/component/transforming.

The transforming component handles updating the variables of an item when it's transformed. Things like force, sharpness, whetstone force bonus, and attack verbs. Similar to the two-handed component, but instead of transforming into a two-hander it remains a one handed weapon.

The "nemesis" behavior (dealing addition damage to certain factions) of the transforming subtype was moved to the cleaving saw only, since it was the only transforming item that used it. In the future, this can be made into a bespoke element/component as well.

The following weapons and items have been updated to use this component:

    Energy Swords / Sabers / Bananium Energy Sword
    Energy Circular Saw
    Energy Dagger
    Energy Axe
    Toy Energy Sword
    Holographic Energy Sword
    Switchblade
    Advanced Medical Tools (Laser scalpel, Mechanical Pinches, Searing Tool)
    Advanced Engineering Tools (Hand Drill, Jaws of Life / Syndicate Jaws of Life)
    Combat Wrench
    Cleaving Saw
    Telescopic Batons / Contractor Batons
    Roasting Stick
    Telescopic Riot Shield
    Energy Shield / Bananium Energy Shield

This PR also touches up the code around the various above items.
2021-08-23 11:45:54 -07:00
LemonInTheDark
cd576ab519 Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
2021-08-15 21:09:26 -07:00
Ghom
68aa7ebe4d wormhole projectors now fire blue wormholes with lmb and orange ones with rmb. (#60563) 2021-08-15 20:30:19 -07:00
Fikou
270acce4f5 [Ready] Mining Loot Rework (#60516)
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
2021-08-08 02:22:34 -07:00
Tim
9479c5ec5b Fix polymorph behavior for pAIs and mimics (#60502)
This fixes #58258. Basically anytime a pAI holoform gets shot with a staff of changing or polymorph item it would change their mob type. This allowed ghost roles infinite respawns since the pAI card is not destroyed when it gets polymorphed. An unlimited army can be created with no downsides since you can keep bringing people back to life with the pAI requests.

I also went and fixed another strange behavior with polymorph, where if you used a staff of animate on an object, you could turn around and then polymorph the object into a mob. The animate magic is supposed to wear off the object after a certain while so I made the mimic immune to polymorph effects.
2021-08-05 13:29:32 -03:00
Kokonut
c2b5ea9311 ballistic.dm text cleanup (#60536) 2021-07-31 21:18:05 -07:00
InvalidArgument3
b10397cf67 Exosuit Proto-kinetic Accelerator (#60384)
Adds new equipment for mechas: the Exosuit Proto-kinetic Accelerator, unlocked with the mining tech research. Compared to the standard one, it is able to hit 5 tiles away with a low cooldown.

However, unlike the handheld version, it draws a considerable amount of power from the battery, pretty much requiring you to bring generator equipment or upgraded parts.

The projectile is identical to the standard handheld version otherwise and will do little damage in pressurized environments.
2021-07-29 11:27:13 -03:00
itseasytosee
bebac1ee3f Makes it so you actually SPIN YOUR GUN while gun-spinning (#60457) 2021-07-28 14:24:55 -07:00
Thunder12345
391a71ba30 removes all misc files/folders from the projectiles module (#60478)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
2021-07-28 01:46:25 -07:00
Thunder12345
39da0b0407 Capture The Flag: Class Warfare (#59629)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
2021-07-23 15:49:22 -07:00
Rohesie
4c21166e4f Job refactor: strings to references and typepaths (#59841)
* Job refactor: strings to references and typepaths
2021-07-18 20:48:47 +02:00
MrMelbert
eb932b5468 Balloon alert for energy gun swap mode (#60279) 2021-07-18 01:45:30 -07:00
Arkatos1
ac5a414e78 Improves item's action button updating code (#60149)
This PR improves item action button updating code by introducing a proc to update all item's associated action buttons, which simplifies the process and reduces code duplication.

I also fixed a relevant bug where a PDA's action button icon did not properly update upon light toggle because it did not force the button update. Forcing the button update is needed in this case due to how light overlay operates, where the button icon state stays the same, so the code thought updating the action button icon was unnecessary.
2021-07-16 19:58:05 -03:00
Beatrice
c36abfdb99 Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2 (#59778)
Fixes a runtime issue cause by the possibility of loaded_projectile being null by changing how projectile stats are obtained on energy weapons, and adds a separate line for energy ammo types that deal stamina damage and regular damage to incorporate both damage types
2021-07-11 10:23:19 -03:00
LemonInTheDark
0654cde093 Fixes a good few improper overlay icon_states, fuck gun code edition (#59580)
* Fixes a good few improper overlay icon_states, fuck gun code edition

* Rewrites comment to be less word salad, changes display_mag to the already existing and unused mag_display
2021-07-06 21:05:37 -07:00
Rohesie
82dc71c3ae CanPass refactor (#59804) 2021-06-25 13:36:00 -07:00
Rohesie
e03cd1aada Refactors move procs to support multitle objects (#59658)
Enter(), Entered(), Exit() and Exited() all passed the old loc forward, but everything except a single a case cared about the direction of the movement more than about the specific source.
Since moving multi-tile objects will have multiple sources of movement but a single direction, this change makes it easier to track their movement.

Cleaned up a lot of code around and made proc inputs compatible.

I'll add opacity support for multi-tile objects in a different PR after this is merged, as this has grown large enough and I don't want to compromise the reviewability.

Tested this locally and as expected it didn't impair movement nor produced any runtimes.
2021-06-20 14:55:37 -07:00
Fikou
f9767a23ab overheating of the laser minigun doesnt care about burst size anymore (#59733)
with autofire, burst size is always 1
2021-06-20 14:39:30 -07:00
Emmett Gaines
5adb8df64a During unit tests, does extra verification on text based overlays (#59553)
This makes it so during unit tests, adding a text based overlay to something will runtime if the icon does not have an icon state matching that text. I would do this during normal compiles as well but getting the icon states from an icon is surprisingly expensive.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-06-20 14:02:01 -07:00
John Willard
c939b73541 Makes revolvers not drop bullets if you're just flipping it (#59625) 2021-06-15 09:39:51 -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
LemonInTheDark
f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious

Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
2021-06-10 21:44:23 -03:00
Kylerace
e13fe75590 use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
2021-05-24 15:28:02 -04:00
Beatrice
0568e85ca7 Nanotransen Legal Liability Initiative - Weapon Stats but more RP (#58865)
* Weapon Descriptions (And Also Reversion)

Adds support for weapon statistics to be shown as part of examining an item, similar to the tags found on armor. Also, reverts the small changes I made on master because I'm a fucking idiot and made those changes on master.

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-23 01:17:05 -07:00
necromanceranne
67fb690ed8 Caps misfire probability (#58902)
Not the proper fix for this but it at least prevents the exploitative behaviour.
This'll do for now, prevents infinite recursive loops
2021-05-06 16:47:21 -07:00
Jonathan Rubenstein
d79db03bfc Lowers chem gun capacity to 90 units (#58807)
Reduces the capacity of the Reagent Dartgun from 100 to 90.

From Minor Suggestion: https://tgstation13.org/phpBB/viewtopic.php?p=598719#p598719
2021-05-03 21:55:29 +01:00
TemporalOroboros
9f598a9662 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.
2021-04-26 17:31:25 -07:00
LemonInTheDark
39016d2895 Fixes a bunch of invalid icon states. There's more, but my brain isn't fried enough for that. (#58608)
gibup1 and gibdown1 don't exist
items_and_weapons.dmi doesn't have an icon state called his_grace_ascended, in fact nothing does
items_cyborg.dmi doesn't have an icon state called laser, it  does however have an icon state called
laser_cyborg
no porta_turret has an icon state with the _unpowered suffix, in fact I'm convinced none of them ever have
2021-04-23 02:47:24 -07:00
Fikou
b17b55aae8 Full Auto Update: no crit firing, no spamclicking, more autofire, more balance (#58595) 2021-04-22 15:59:23 -07:00
tralezab
09ab61ae05 Four New Sects, small rethemes to first 3 (#57820)
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 22:57:43 +03:00
Fikou
592bcaa9c3 makes the hook shotgun work on right click, adds new icons for it (#58270) 2021-04-10 15:07:24 -07:00
TheVekter
4753179fbd Allows you to ignite cigars with cauteries and recently-fired revolvers. (#58109)
About The Pull Request

#58055 added this for Mansus Grasp and I thought why the hell not, this is also badass. Fifteen seconds sounds like long enough to do this after firing the gun.

Also EOB noticed you can't ignite cigars with the cautery and that seems odd, so I added that too. Not sure who'd want to do that, but here you go.
Why It's Good For The Game

Gun hot after firing also badassery
Changelog

🆑
add: Recently-fired revolvers can now be used to ignite cigars like a fucking badass.
add: Cauteries can now be used to ignite cigars like a very irresponsible doctor.
/🆑
2021-04-03 10:53:20 +13:00
NamelessFairy
a8a6625714 Additional CTF maps (#57230)
This pull request adds a map loader as well as new maps to CTF. When a game starts a CTF map will be selected at random and will be playable by ghosts.

As well as this new functionality CTF now fully supports 4 teams. A green and yellow team have been added complete with both standard and instagib gear.

At current five maps are planned:
Classic - the original map we all know and love
Four Side - A four team CTF map where all teams compete over one flag
Downtown - Terrestrial city themed map
Limbo - Wizard themed map featuring portals and uses KOTH rather than CTF
Cruiser - Space themed map utilizing the powerup system

Random maps are selected on game load
Support for four teams added

Why It's Good For The Game

CTF has been more or less the same on the surface since its creation. This PR allows for some much needed map variety which will increase replay value. CTF is far more regularly played then mafia due to its fast rounds and common use during round end delays and I believe that it deserves a boost in content.
Changelog

cl
add: CTF can now selects a random map at game start
add: CTF now supports four teams
add: Gear for yellow and green CTF teams has been added
add: CTF ID cards for all 4 teams have been added - courtesy of maxymax13
add: a new CTF map, Four Side has been added
add: a new CTF map, Downtown has been added
add: a new KOTH map, Limbo has been added
add: a new CTF map, Cruiser has been added
fix: KOTH capture points retain their sprites after being claimed
/cl
2021-03-26 10:01:43 +13:00
Fikou
ed85d3f5aa Full-Automatic Guns (#57084)
* fullauto component

* eh

* h

* brap

* it works!

* FUCK SHITUP

* dumbass

* l6

* oops

* GOD

* THE LAST 10% OF A PROJECT IS 90% OF THE WORK

* slopwer projecitles, replaces the tesla gun

* heavy

* minigun

* minigun stuff

* runtime fixes, pointer icon

* nuh uh

* makes modifeirs things

* nerf this

* yes

* aghh

* agh

* real high intensity changes here

Co-authored-by: Ryll-Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2021-03-20 21:39:52 -07:00
TemporalOroboros
687f91d8bd Desnowflakes tank integrity (#56443)
Makes tanks use obj_integrity instead of their own snowflaked version.
Makes tanks check for exploding when they are destroyed, rather than once every process.
Makes tanks always leak their gases when they are deconstructed.
Removes the ability for tanks to seal themselves back up over time.
Makes the bomb spawner actually produce functional bombs.
Removes the extraneous syndicate bomb spawner subtype.
Miscellaneous code improvements to tanks, bomb spawners, and the blastcannon.
Fixes the explosives compressor doubling the power of any bomb you put in it.

The changes to tank rupturing behavior shouldn't effect most tritium fueled TTVs including the 50K recipe. Toxins players don't need to worry about suddenly being incapable of getting points or refining anomaly cores. They should only really effect singlecaps, but I don't know enough about singlecaps to know what recipes I should test. I have confirmation that at least one mix is not effected by this.

The self-sealing properties of tanks have been removed. I'm not sure what the purpose of it was, I have heard that it was used to enable hand-portable plasmaflooding, but I'm not familiar with the practice.

As it turns out, the basic bomb spawners were broken on master! I have made the bombs they produce maxcap instead of just spring a leak. Since they maxcap by default now I have removed the syndicate subtype used to spawn the TTV produced by the cuban pete arcade game and replaced it with the normal timer subtype. Since none of the bomb spawner subtypes were used for anything else this shouldn't have any effect on the game.

On a similar note, I have discovered that the maxcap recipe on the wiki stopped working at some point since it was written. I will replace it with a functioning set of instructions.

Less snowflake code.
Bomb spawners are actually functional now.
Slightly better code.
The explosives compressor accurately reflects the power of the bomb you put into it.
2021-03-20 18:15:24 -07:00
TemporalOroboros
fb488fdfff Some explosions code cleanup (#57493)
Clears out two deprecated explosions systems (explosion ids and explosion levels)
Refactors a bunch of contents_explosions procs to be maybe slightly faster.
Cleans up a bunch of ex_act code.
Slightly cleaner code
A few less unused vars on /atom and /turf
2021-03-20 16:03:59 -07:00
TheVekter
54d9e117b3 Remove the foam finger rocket launcher (#57763)
It's baaaaad. Very bad. There are way better ways to do this but I
don't honestly have the capacity to do them. The sprite states are all
fucked up, it's an odd case of something not being snowflake enough in
the right places, the goddamn thing breaks if you drop it... For fuck's
sake, Ryll tried to fix it and even they couldn't. No, fuck it, get rid
of it, we'll rewrite it later.
2021-03-17 14:42:24 +00:00
necromanceranne
bacf80e858 Replaces 9x19mm with 9mm, makes the PP-95 use a damage multiplier (#57687)
* Replaces 9x19mm with 9mm, makes the PP-95 use a damage multiplier instead.

* forgot the define

* actually if this is .35 it's 10 shots again so let's do that instead wow a .1 difference DOES matter fuck our health system
2021-03-16 22:14:52 -04:00
TiviPlus
f0cf7ea5ac Replace some turf in range() with RANGETURFS and fix(?) bspace trauma (#57566) 2021-03-11 02:26:21 -08:00
Ryll Ryll
ba42d027dd don't get it (#57416)
#57013 added a foam finger that shoots rockets, and made the classic laser gatling mistake of being a ballistic gun and thus spawning 5000 rockets in its internal magazine when spawned. I don't know what this is a reference (It's a deadspace thing) to or why a foam finger was chosen for its appearance, but I do know spawning 5000 rockets is a bad idea. This avoids that issue by making it a subtype of wand (just about as good as magic anyway)
2021-03-05 16:52:11 -08:00
Ryll Ryll
3feb8c959b Fixes runtimes from firing projectiles, adds unit test for firing guns (#57345) 2021-03-03 16:27:36 -08:00
Fikou
eea0599511 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
2021-02-21 13:58:33 -05:00
c420-o
08b9927aa4 Add a new admin weapon: foam finger that shoots missiles (#57013)
An admin only rocket firing foam finger has been added. There is also
a toy version available from arcades that is just a giant foam finger.
2021-02-20 15:08:53 +00:00
necromanceranne
a7a53d423d Regal pipeguns, being flawless, no longer jam (#57017)
Atomized out of the pipegun PR, this fixes specifically regal pipeguns jamming when they're meant to not carry any of the detriments of their parent gun.
2021-02-19 21:17:28 -03: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
Kylerace
45ccba3809 replaces all instances of ammo_casing/BB to loaded_projectile again without crashing this time (#56989) 2021-02-18 02:50:56 -03:00
LemonInTheDark
5c22a0cfc1 Converts many proc overrides to properly use list/modifiers, lots of other smaller things (#56847)
Converts many proc overrides to properly use list/modifiers, fixes some spots where modifiers should have been passed, calls modifiers what it is, a lazy list, and cleans up some improper arg names like L, M, C, and N. Oh and I think there was a spot where someone was trying to pass M.name in as a string, but forgot to wrap it in []. I fixed that too.
2021-02-16 09:18:46 -05:00
necromanceranne
efa1f8088f Sprite fixes: Suppressed Sniper Rifles and Donksoft Pistols (#56754)
* Gives the sniper rifle a suppressor overlay so that it no longer shows up as missing a sprite, also fixes donksoft pistols by repathing them from pistols over repathing them from toy saber smgs. Creates a flag for checking if a gun needs a toy overlay, so it is handled in the parent.
2021-02-14 21:33:48 -08:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
necromanceranne
3159949009 Fixes the harpoon gun jamming because of inheritance (#56823) 2021-02-11 15:34:45 -03:00