10 Commits

Author SHA1 Message Date
Ghom 0b0c5ea91e Unit test material checks are now performed on all crafting recipes by default. All stack recipes now transfer mats to the results (#92620)
## About The Pull Request
Extends the part of the crafting unit test that ensures consistency
between the total mats of the components of a recipe (or rather, the
result of said recipe) and a generic instance of the same type as its
result, previously only implemented on food recipes.

## Why It's Good For The Game
This ensures a degree of consistency with the material composition of
various objects in the game. I couldn't do it in the original PR as that
one was too big already and it took months to get it merged, and have
the relative bugs fixed.

Currently a WIP as I slowly deal with the unit test reports.

## Changelog

🆑
refactor: Follow-up to the crafting/material refactor from months ago.
All objects crafted with stacks now inherit their mat composition (not
necessarily the effects and color) by default, while previously only a
few things like chair, sinks and toilets did. Report any object looking
or behaving weirdly as a result.
fix: The material composition of ammo boxes is no longer a 1/10 of what
it's supposed to be. It was a shitty hack to make it harder to recycle
empty ammo boxes. Instead, they lose materials as they're emptied now.
/🆑
2025-12-02 18:29:01 -05:00
Thunder12345 006605caf9 Adds time defines to a couple of shooting related delay vars (#93966)
## About The Pull Request

Converted `fire_delay` and `shot_delay` vars to use time defines

## Why It's Good For The Game

Code readability

## Changelog
🆑
code: Converted some gun related variables to use time defines, make an
issue report if anything shoots abnormally fast/slow.
/🆑
2025-11-17 23:22:34 -07:00
grungussuss 5fca831746 fixes examine message for canister shot (#91890) 2025-07-01 11:02:48 +02:00
MrMelbert 5261efb67f Re-refactors batons / Refactors attack chain force modifiers (#90809)
## About The Pull Request

Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack

This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.

This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).

## Changelog

🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
2025-05-19 13:32:12 +10:00
Ghom 339616ae78 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...

...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!

I also tried to replace some of those single letter vars/args but there
are just way too many of them.

## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.

## Changelog

🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
2025-04-23 20:18:26 +00:00
Penelope Haze d0a7f955f8 Fix various issues with names in string interpolation (#89246)
## About The Pull Request
Commit messages should be descriptive of all changes.
The "incorrect `\The` macro capitalization" was intentional when it was
added, but as far as I know TG says "the supermatter" rather than "The
Supermatter," so it's incorrect now.
This is completely untested. I don't even know how you'd go about
testing this, it's just a fuckton of strings.
Someday I want to extract them and run NLP on it to catch grammar
problems...

## Why It's Good For The Game
Basic grammar pass for name strings. Should make `\the` work better and
avoid cases like `the John Smith`.
2025-01-29 17:46:03 +01:00
Penelope Haze 4c2a76ede3 Fix a large number of typos (#89254)
Fixes a very large number of typos. A few of these fixes also extend to
variable names, but only the really egregious ones like "concious".
2025-01-28 22:16:16 +01:00
Penelope Haze b67a0901f2 Fix issues discovered via TypeMaker (#87596)
## About The Pull Request
Fixes issues with var typing and proc arguments, discovered using
OpenDream's WIP TypeMaker feature (using improvements I haven't PR'd
upstream yet).

## Why It's Good For The Game
Codebase maintenance.
2024-11-19 15:24:52 -05:00
grungussuss 58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00
KingkumaArt c4974b63ab Bigger Booms: Adds Pipe-Organ Gun and Canister Gatling, two emplaced weapons, along with Mounted Gun code. (#86390)
## About The Pull Request



![image](https://github.com/user-attachments/assets/f62c9c17-6886-4170-9e4c-144f9aa1792e)

So, as you may know, I really like the bootleg weaponry this game has,
but after dealing with gun code for the crossbow, I wasnt inclined to
make more of it. However, when I'm playing ss13 I often have background
noise on, and one day I was listening to an age of empires game, which,
if you aren't aware, is basically a medival rts, featuring a weapon
called an "organ gun". Said organ gun is basically 8 or so muskets stuck
together firing at once. And well, given SS13 has pipeguns, also called
muskets, I couldnt pass up the pun of "pipe organ gun." And thats why
this pr exists. However, as I am noticing I have a habit of doing, I
tend to end up coding more than I ever initially planned.

So what does it add? Well, lets start with the pipe organ gun.

<img width="428" alt="image"
src="https://github.com/user-attachments/assets/0cb93fb9-6ed3-4cb1-a340-0b54832ac577">

The pipe organ gun is made from wood, pipes, iron, typical maints weapon
stuff. Where it differs is it isn't a handheld object - it's a machine
you push and pull around akin to say, the pirate cannons. It can hold up
to 8 pipegun shells, and launches them all at once when lit with
anything that ignites stuff, like a welder, match, torch, etc. It does a
lot of damage, but requires time to reload, and a smart enemy can just
lie down and ignore it. Or maybe it'll just roll 8 of the really bad
ammo types and do nothing, who knows.


https://github.com/user-attachments/assets/5ee1353b-c965-4f47-aa22-4f5cfeb04c51

Initially I planned to use the cannon code as a base, but that presented
a lot of issues, as they need to use cannonballs (which arent ammo in
the traditonal sense), along with only being single shot among other
things. So I made an entire new type of structure called Mounted guns,
which are like cannons that can use conventional ballistic ammo, and
dont have any of the restrictions, and made to be customizable. You want
a gun that takes plasma bars as ammo and launches fireballs? it can do
that. You want to have a rebar ballista, that can shoot up to 3 rods at
once, but only needs to be loaded once? It can do that too. Hell, you
could probably just make full-on gun emplacements with some code
changes. If it's a projectile, it can shoot it, and if its an object, it
can use it as ammo. A list of the current stuff you can change is below.

<img width="510" alt="image"
src="https://github.com/user-attachments/assets/107abbc1-a004-4724-9627-a3388f92cd63">

Which leads me to the second gun I added, which is more of an example of
what can be done with the mounted_gun class.
The canister gatling spawns on the flying dutchman pirate ship, with
enough ammo for five shots.
<img width="453" alt="image"
src="https://github.com/user-attachments/assets/46fdc16e-813a-4e14-b25a-9cf49d245ca6">

Five shots may not sound like much at first - but thats because each
shot is a burst of 50 individual shrapnel bullets. It's unable to break
any walls or doors except for windows, but against anything that isnt a
structure... well, as shown below, they'll have a very bad day.


https://github.com/user-attachments/assets/3519c49d-97e6-4095-99cf-ee8039adbaba

If people like these concepts, I genuinely might add that engineering
rebar ballista.


## Why It's Good For The Game

As said above, I'm a big fan of the whole improvised armory concept ss13
has, and the fact the only "big" gun featured is the trash cannon (which
is locked behind maint loot) is a shame. I felt the pipe-organ gun was a
good compromise - as stated, its just eight pipeguns stuck together,
with all the strengths (high damage output) and weaknesses (slow reload,
needs to be dragged around, cant hit people on the floor, cant damage
walls) that it lacks. As for the canister gatling, I dont forsee it
being a massive problem, as it cant breach walls or doors, so it isn't
just a better cannon.

## Changelog
🆑 WebcomicArtist
add: Added pipe-organ gun: a buildable object akin to trash cannon that
takes pipegun rounds, and shoots up to 8 off at once.
add: Added The Canister Gatling, a rapid fire but non-destructive cannon
for skeleton pirates. Also Canister shot ammo.
sound: Added sounds for the above guns.
image: Added sprites for the guns as well.
code: Added a whole "mounted_gun" class that is basically cannons but
you aren't forced to use cannonballs as ammo and load them with
gunpowder.
/🆑
2024-09-19 23:28:15 +02:00