Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tram v6 #2

Draft
wants to merge 1,332 commits into
base: master
Choose a base branch
from
Draft

Tram v6 #2

wants to merge 1,332 commits into from

Conversation

lessthnthree
Copy link
Owner

No description provided.

_maps/_basemap.dm Show resolved Hide resolved
code/game/machinery/doors/airlock.dm Show resolved Hide resolved
Comment on lines +285 to +286
new/datum/stack_recipe("Titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20, check_density = FALSE, category = CAT_TILES), \
new/datum/stack_recipe("Shuttle seat", /obj/structure/chair/comfy/shuttle, 2, one_per_turf = TRUE, on_solid_ground = TRUE, category = CAT_FURNITURE), \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't this going against the consistency everywhere else?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll double check, for titanium recipes the majority started with capitals. If that's the case then I'll just rename them all to be lowercase

code/modules/antagonists/ninja/ninjaDrainAct.dm Outdated Show resolved Hide resolved
code/modules/transport/tram/tram_controls.dm Outdated Show resolved Hide resolved
code/modules/transport/tram/tram_floors.dm Outdated Show resolved Hide resolved
code/modules/transport/tram/tram_floors.dm Outdated Show resolved Hide resolved
code/modules/transport/tram/tram_machinery.dm Outdated Show resolved Hide resolved
code/modules/transport/tram/tram_remote.dm Outdated Show resolved Hide resolved
config/maps.txt Outdated Show resolved Hide resolved
san7890 and others added 29 commits October 6, 2023 13:09
## About The Pull Request

Refactors goats into basic mobs, pretty clean refactor. They're a bit
smarter when it comes to retaliating mobs, and they're still just as
good as ever when it comes to munching on good ol' plantlife. I also
(finally) turned Pete into a goat subtype just in case people want to
inject more behavior into him in the future.
## Why It's Good For The Game

Cleaner implementation of code when it comes to doing stuff like eating
kudzu or just lusting after flora.
## Changelog
:cl:
refactor: Refactored goats into basic mobs! Not much should have changed
beyond their endless desire to retaliate should you attack them, they're
still just as good as chomping away plant life as ever.
/:cl:
…8754)

## About The Pull Request
This takes all the gib related procs:
- `gib()`
- `spawn_gibs()` 
- `spill_organs()`
- `spread_bodyparts()`

And adds heavy documentation that communicates what the procs are used
for and how the different bitflags affect them. The difference is
noticeable:

`gib(TRUE, FALSE, FALSE, null)` vs `gib(DROP_ORGANS|DROP_BODYPARTS)`

The code is now much more legible which is important considering it's
used in a lot of places!

Another robust change, is that we had several places in the code where
there were double negatives like so:

```
/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts)
	if(!no_bodyparts) // DOUBLE NEGATIVES ARE BAD M'KAY?!?
		// do stuff here
```

This is a mindfuck to untangle. I inverted a lot of these parts so we
don't lose our sanity.

Last thing that was changed was a big `if()` loop in the `spill_organ()`
proc. This was refactored to just be a simple `for` loop with `continue`
statements where we needed to skip enabled bitflags. It's now shorter
and cleaner than before.

The only slight gameplay change this affects is that gibbing a mob now
guarantees to drop all items unless the `DROP_ITEMS` bitflag is
deliberately omitted. Some places like admin gib self, we don't want
this to happen.

## Why It's Good For The Game
Gib code is very old. (~15 years) People kept adding more arguments to
the procs when it should have been a bitflag initially. By doing it this
way, there is more flexibility and readability when it comes to adding
new code in the future.

## Changelog
:cl:
refactor: Refactor gib code to be more robust.
qol: Gibbing a mob will result in all items being dropped instead of
getting deleted. There are a few exceptions (like admin gib self) where
this will not take place.
/:cl:
## About The Pull Request

This is something that I meant to do because it was a minor annoyance as
I was creating the tests but I never got around to it.

Because many of the failures occurred in procs it could be difficult to
pinpoint the exact line of the test where they were failing. It would
just be the line within the proc, and not the line where the proc was
called. So you'd have to sort of infer which one it was from the values
of `x` and `y` in `Expected x to be equal to y`.

Now each test failure will have a brief description and a line number
where `apply_damage()` / `verify_damage()` actually got called to make
it clearer. Like shown below.


![Code_r6N3XSAb3m](https://github.com/tgstation/tgstation/assets/13398309/92ac5a91-3c3f-4b3b-90de-09fe0d9891f1)

## Why It's Good For The Game

Just a small QoL update for coders. Some typos fixed, too. 

## Changelog

Nothing player facing though.
still on break so i didn't think too hard about this one

## About The Pull Request

Prevents food interactions from clearing the resulting food's reagents
if the result is a bad recipe.

Blackbox logging is also iffy here, some of them log it even if the
resulting food is a burned mess, some don't. It's weird!

## Why It's Good For The Game

Fixes tgstation#78400
<details><summary>Makes one car moth happy</summary>

![no habla
espanol](https://github.com/tgstation/tgstation/assets/75863639/a3f26acb-3a7c-44a6-a4de-2b67e4d56230)

</details> 
Did you know the appendix has bad_food reagent in it?


https://github.com/tgstation/tgstation/blob/699d09ca33e807f9100689c3ab5fbec3916186ee/code/modules/surgery/organs/internal/appendix/_appendix.dm#L5-L15

## Changelog

:cl:
fix: fixed bad food not having bad food reagents
/:cl:
…tgstation#78745)

## About The Pull Request
I recently read of someone being confused that they couldn't use them to
perform fish-related experiments, so I thought it would be a good idea
to add that. Also, I've converted the related misc supply pack to a
goodie one, like other fishing supplies.

## Why It's Good For The Game
It makes sense, and a fair amount of players doesn't even know
experiments exists until they play the scientist role a couple times.

## Changelog

:cl:
add: Fish analyzers can now be used to perform fish scanning
experiments.
balance: They can now be singularly bought as a goodie pack for 125 cr
each, instead of a crate of three for 500 cr.
/:cl:
…e, chasms) (tgstation#78742)

## About The Pull Request
Exactly what it reads on the tin.

## Why It's Good For The Game
Fixes tgstation#78646.

## Changelog

:cl:
fix: Fixed silent catwalks.
/:cl:
## About The Pull Request
Replaces every single/double letter variable I could find in
`code\game\machinery\harvester.dm` with a more descriptive variable
name. I hope, anyway.

Also replaces a typecheck section with just writing a better loop.
## Why It's Good For The Game
Uuuuuuh. Code.... readability.... and maintainability? I think?
## Changelog
Not player-facing.
…high caliber hand cannon by making it HITSCAN (tgstation#78674)

## About The Pull Request

The Regal Condor come with a magazine and ammo already inside.

The recipe for the magazine now no longer needs TC, but does need donk
pockets (sponsored murder gear, you see) and a hell of a lot more
materials per magazine (you're looking at like 40 sheets of various
materials all up). It also needs you to make the Condor first. But it
comes preloaded with ammo.

The Condor is 1 whole TC more expensive. Also needs some metal. The old
recipe is there in spirit.

The Regal Condor and the magazines come with 10mm Reaper bullets.
They're high damage. They're high AP. They are also hitscan.

## Why It's Good For The Game

Apparently people don't like the Condor. Too much effort for not enough
reward. After all, revolvers exist. 'It must be a joke' they say! 'It's
joke content! I went to all that effort to make it for nothing! That
slut Anne tricked us!'

**Wrong, bitch.**

If you want the Condor to make you shit yourself the moment someone with
it appears on the screen, then fine!

### **You get what you fucking deserve.**

## Changelog
:cl:
balance: Despite earlier reports suggesting that the famous lethality of
the Regal Condor was largely a myth, there has been rumors that the gun
has once again started to display its true killing potential on any
station that it 'manifests'.
/:cl:
## About The Pull Request
Firstly; Patches some remaining chasm baseturfs on the Geode Pirate
Shuttle by implementing a new subtype of jungle rocks and dark dirt
that's safe for use in space.

Secondly; makes the (unused here, but I'm making use of it elsewhere and
I've been told someone else is, too) jungle generator have a lot less
(possibly no) recursive atmosdiffs. Jungle mineral turfs now produce an
open turf with the correct atmos composition, and jungle chasms are
brought in-line as well.

Thirdly; the redundant layer of grilles have been removed from the
Geode, as they were being spawned already by the window spawner.
Additionally rotates the geode's blast doors because they rotate now and
it'd look weirder half the time otherwise.

~~On a related note: I really don't like the direction of the docking
port being off of standard for everything that isn't an arrivals
shuttle, but uhh. Catch me when I'm willing to deal with shuttlecode
again, lmao.~~
## Why It's Good For The Game
Significantly lessens recursive atmospheric overhead if either the geode
spawns *or* the jungle generator ever gets used here.
## Changelog
:cl:
fix: It is no longer possible to chasm yourself on the geode. Again.
/:cl:
…tation#78685)

## About The Pull Request

This PR adds the laser carbine, a new fully-automatic laser weapon that
can be ordered from cargo. A crate of 3 can be ordered from cargo for
1800 credits, locked behind armory access. Here is a video
demonstration:


https://github.com/tgstation/tgstation/assets/21979502/6f7fecec-ccb6-4a65-8027-21ab887fb91d

Now, I'm sure people are very concerned about the balance implications
of this new weapon. Let me give you some hard numbers:

The gun deals 10 damage per shot, and has a capacity of 40 shots with a
fully charged cell. This means that it has, at most, 400 damage per
charge, which is exactly the same as a normal laser gun.

In terms of DPS, it can put an unarmored human in crit roughly as fast a
laser gun. It is meant to be a sidegrade, not an upgrade to the normal
laser gun.

It also has considerably lower wound bonus. During testing, when all 40
shots were fired into an unarmored human, it dealt tier 1 burn wounds
with the occasional tier 2. I never observed a single tier 3 burn wound
during any of my tests.

Here's a picture of the different sprites (The last one is animated just
like the normal laser gun):


![laser_carbines](https://github.com/tgstation/tgstation/assets/21979502/75c88c8a-aa8a-481d-994d-86850fcdbb9b)

## Why It's Good For The Game

For a long time, there has been a strong push to make crew-available
weapons almost entirely energy based. This trend has been contentious,
to say the least. Many people prefer ballistic weapons over energy
weapons. After spending some time on a different codebase, one where
autorifles are still completely available to order from cargo, no emag
needed, I think I might know why (or at least part of the reason). Part
of what I find satisfying about some ballistics is the fact that they
fire quickly and automatically. Energy weapons might be more enjoyable
to use if automatic energy weapons are also an option.

## Changelog

:cl:
add: The laser carbine, a weak but fully automatic sidegrade to the
normal laser gun, can now be ordered from cargo.
/:cl:

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
Fixes "offical" to "official" in several locations - admin fax panel,
admin newscaster, art patron text, a photocopier template, and a corgi
tail pin item description. Adds this common misspelling to the
check_grep.sh ci tool.
## Why It's Good For The Game
I have corrected the typo manually every single time I have sent a fax
from Central Command.
## Changelog
:cl:
spellcheck: "offical" has been officially corrected to "official" in
several official locations.
/:cl:
…LTH_UPDATE` (tgstation#78772)

## About The Pull Request

Quick refactor, replaces `spec_updatehealth` with use of
`COMSIG_LIVING_HEALTH_UPDATE`.

`spec_updatehealth` was only used by one species, ethereals, and it was
used in a (in my opinion) janky way by calling `spec_updatehealth`
constantly.

This has one downside - `COMSIG_LIVING_HEALTH_UPDATE` is NOT sent if the
mob is in godmode, while `spec_updatehealth` was, which means godmoded
ethereals may not update 100% accurately according to their health
before entering godmode, but I doubt this will come into play often at
all.

- [x] I tested this PR

## Why It's Good For The Game

`updatehealth` is kinda hot, not turbo hot but a little hot, so this
helps performance a bit.

## Changelog

:cl: Melbert
refactor: Refactors how ethereals update their color when damaged. 
/:cl:
## About The Pull Request

Saw that Frosty the Snowman's factions were strings instead of defines,
so I have made them use defines.

## Why It's Good For The Game

Defines are much safer and cleaner than using strings.

## Changelog

Nothing player facing
## About The Pull Request

Raw Prophet and Armsy had fun stuff going on and merited their own PRs,
but the rest of these guys are basically just statblocks with abilities
so I converted them all at once.

Rust Walkers are present in a ruin and so have new AI which will
actually use their abilities. They rust the area around where they spawn
and throw their rust blast at people.

I also gave Flesh Stalkers AI even though nobody has put them in a map
because I thought it would be cool. This adds an AI behaviour where if
they're not doing anything else they will turn into an animal and chill
until someone's been around them for a bit, before attacking. They will
also use EMP almost immediately upon performing their ambush, which
kills the lights in that room. Spooky!
To support this I needed to make some changes to let AI continue
processing and targetting correctly while shapeshifted.

I didn't give Maids or Ash Spirits AI because they'd be really boring.

Other changes:
I made the maid in the mirror flicker when it takes examine damage
because the `visible_message` says it does but despite having the power,
nobody made it actually flicker...

## Why It's Good For The Game

No more simple mob heretic summons.

## Changelog

:cl:
refactor: Rust Walkers, Ash Spirits, Flesh Stalkers, and The Maid in the
Mirror now use the basic mob framework. Please report any unusual
behaviour.
/:cl:

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
…gstation#78724)

## About The Pull Request
the janitor access key could not be stored on their belt, or their
wintercoat slot, which felt off to me. so i added it to both of them,
and added the janicart key to the coat slot as well. i figure if one can
fit, the other probably can too.
## Why It's Good For The Game
convenient, less cumbersome storage for items that you want to keep both
close to your person, and accessible for easy use.
## Changelog
:cl:
qol: allows janitor keys to be stored in janitor wintercoats and
janibets
/:cl:
…cabinets (tgstation#78722)

## About The Pull Request
title. it's mostly so they can be used conveniently in areas you don't
want to put fireaxes, but do want an empty cabinet for reasons.
## Why It's Good For The Game
more flexible options for mappers, more convenient than making
directional variants yourself. it's what the helper is for
## Changelog
:cl:
qol: gives empty fireaxe and mech removal crowbars cabinets directional
helpers
/:cl:
san7890 and others added 27 commits October 13, 2023 16:21
Fixes tgstation#78953

## About The Pull Request

Basically the gist is that Space Dragon's special attack code was on
`AttackingTarget()` rather than whatever the hell simple animals
controlled by clients use (I didn't bother enough to look into the chain
to remember this). This was the complete wrong proc to use, and it NEVER
got executed. Anyways, we just hook into the signal for whatever the
simple animal proc is as well as clean up all the code, make everything
pretty, and most importantly:

MAKE THE DAMN CODE WORK
## Why It's Good For The Game

Either someone did not test their code at all, or some weird esoteric
change in the attack chain changed this somehow? I'm not sure when or
why this happened but it is guaranteed to be fixed now.

The code cleanup and tinkering I did means that it's gonna be about 10%
easier to port this over to a basic mob eventually (not doing a full
refactor when this shit is this broken, the code added here is modular
enough to the point where it's plug-n-play).
## Changelog
:cl:
fix: Space Dragons can now, once again, tear down walls and eat corpses.
They also have regained their special damage modifier when attacking
mechs.
/:cl:
## About The Pull Request

Fixes tgstation#78953, plus some unreported code issues with lavaland elites,
player-controlled megafauna, and a couple other hostile simplemobs.

Basically, the sort of "attack wrapper" use of AttackingTarget seen in
some simplemobs, specifically when player-controlled, was accidentally
removed in the hands element refactor PR. This PR just re-adds that
usage for player simplemobs to preserve previous functionality for our
remaining simplemobs until their time to be refactored comes.

## Why It's Good For The Game

While we're more geared towards basic mobs and simplemob conversions
currently, we should still aim to preserve simplemob functionality until
we don't have them anymore.

## Changelog
:cl:
fix: Space Dragon can break walls, eat corpses and destroy mechs more
efficiently again
fix: Player-controlled lavaland elites can once again return to their
tumor after winning their fight
/:cl:
…CTF areas (tgstation#78957)

## About The Pull Request

You can return to your old body after playing CTF or being summoned as a
manifest rune cult ghost. This is done by slapping the temporary_body
component onto cult rune summons and CTF bodies. This also extends to
Medisim Shuttle knights.

This also blocks suicides from being performed in CTF areas. Ghosting
and "manually" suiciding is, of course, still an option.
## Why It's Good For The Game

There's no reason these two cases should lock you out of being revived.
They both also dust bodies on death or after their job is done, making
them a perfect fit for this component.

Blocking suicides ensures that all bodies are properly "cleaned up" by
the death dusting process. Gun suicides, for instance, would remove the
brain from the body and bypass cleanup. This not only prevents the user
from being returned to their old body, but likely has other unforeseen
problems that leaving a body behind might cause.
## Changelog
:cl: Rhials
qol: You can now return to your old body after being summoned by a
manifest rune.
qol: You can now return to your old body after dying in CTF.
qol: You can now return to your old body after dying in the Medisim
Shuttle battle area.
qol: You can no longer suicide in CTF areas, for integrity purposes.
/:cl:
## About The Pull Request

previously

![image](https://github.com/tgstation/tgstation/assets/70376633/d365430a-7775-417d-893a-1e559601de8f)

now

![image](https://github.com/tgstation/tgstation/assets/70376633/636eac5f-175e-4983-a096-bffa7181bd48)


## Why It's Good For The Game

bug or something bad

## Changelog
:cl:
fix: sqdl2 query readout displays location of turfs properly
/:cl:
## About The Pull Request

Adds modsuit control unit to deepfry blacklist.

Fixes tgstation#78928

## Why It's Good For The Game

You aren't supposed to be able to deepfry storage items like backpacks
since it causes issues. However modsuits start out with no storage, and
can have storage added later, allowing them to bypass this. Therefore
you shouldn't be able to deepfry modsuits since they can become a
storage item.

It's also inconsistent that you can fry modsuits without storage, but
modsuits with storage can't be fried. It's simpler that no modsuits can
be fried at all.

## Changelog

:cl:
fix: Modsuits can no longer be deepfried
/:cl:
## About The Pull Request

* Makes special byond lists display properly
* Makes images get a preview in the header
* Makes filters display properly
* Make variable value display a bit more robust to errors
* Kills single char vars

## Changelog

:cl:
admin: VV can now display the contents of special byond lists like
filters, or client.images
admin: VV on images now displays the image in the header
admin: VV can now display filters and includes their type
/:cl:
## About The Pull Request

Fixes tgstation#78942

Don't give every heretic mob mirror walk
Also restores their spaceproofing.

The causes of this were respectively:
- I didn't type out the full typepath.
- I forgot.

## Changelog

:cl:
fix: "Mirror Walk" is once more the domain of the Maid in the Mirror
rather than "every heretic summon"
fix: Heretic mobs can once again survive space
/:cl:
## About The Pull Request
Slapping people on the wrist now has a unique message.

## Why It's Good For The Game
New interactions between players, allows security to literally "give
people a slap on the wrist" instead of brigging someone.

## Changelog
:cl:
add: targetting someone's arm with *slap now has a unique message
/:cl:
![image](https://github.com/tgstation/tgstation/assets/3625094/a635a4d3-ca3a-442b-8f58-98c60461713f)

## About The Pull Request

Makes faxes display with vertical offset when on a table.

## Why It's Good For The Game

Looks nice

## Changelog

:cl:
fix: The crew is instructed to place fax machines properly in the center
of a table without hanging.
/:cl:
## About The Pull Request

Currently, the power cost for each shot is just written as a number, and
you have to know the size of the cell to know what this number means. If
you just see than a laser gun costs 83 energy, then it's not clear that
this translates to 12 shots unless you know that the cell holds 1000
units of energy. Now, all energy weapons (except those that cost 0
energy and one that costs 10000) use a macro define in the form of
`LASER_SHOTS(X)`. So the laser gun would example be `LASER_SHOTS(12)`,
to clearly convey that it gets 12 shots out of a full charge.

I also removed the `laser/hellfire/antique` subtype because it had no
mechanical difference from `laser/hellfire` whatsoever.
## Why It's Good For The Game
Readable code is good.

## Changelog
No player facing changes.
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
lessthnthree pushed a commit that referenced this pull request Jul 22, 2024
…yndicate base. Attempt #2 (tgstation#84934)

## About The Pull Request
This is my second PR after I goofed up in the first by merging from
master.
Adds a holofan and two thermomachine boards to the engineering crate in
the lavaland syndie base, and adds two emitter boards to its SM room.
## Why It's Good For The Game
The lavaland syndie base has no holofan and is limited to two thermo
machines (four thermomachines and only one emitter if the SM shard room
spawns). This limits atmospheric gameplay and restricts the freedom in
creating set-ups within the base even though it starts with a surplus of
T4 parts and four gas miners. These additions should improve the quality
of base as an atmospheric ghost role and make it less frustrating when
making burns, coolers, dealing with gas leaks Etc. as well as improve SM
shard gameplay when creating high power set ups or tesla.
## Changelog
:cl:
qol: Holofan and two thermomachine and emitter boards in lavaland
syndicate base.
/:cl:
lessthnthree pushed a commit that referenced this pull request Oct 27, 2024
…tation#87390)

## About The Pull Request
Recovery of tgstation#85771, minus directional window leaning (because it looks
goofy)

## Changelog
:cl:
add: You can now lean on windows the same way you can lean on walls
fix: You no longer stop leaning on walls after clicking on anything
/:cl:
lessthnthree pushed a commit that referenced this pull request Nov 12, 2024
…sus bolts in CI) (tgstation#87534)

## About The Pull Request

Closes tgstation#87349
This may seem concerning but projectiles always assume that their firer
and original can be null at any step, so this is completely safe.

## Changelog
:cl:
fix: Fixed harddels caused by certain projectiles
/:cl:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.