Commit Graph

13 Commits

Author SHA1 Message Date
Bloop
908a68f3cb Fixes forensics hard del (#81880)
## About The Pull Request

Should fix this CI error.


![firefox_JiarBI7EY5](https://github.com/tgstation/tgstation/assets/13398309/b456900c-e97c-4184-8615-98752ee6349a)

`parent` used to be a weakref but since it's not any longer (as of
#81751) we need to manage the ref more carefully.

The forensic datum should be getting `QDEL_NULL`'d in `atom/Destroy()`
but I think what was likely happening was somehow, something was adding
a forensics datum again after the atom was qdeleted. This should
hopefully prevent that from happening.

## Why It's Good For The Game

Less CI errors

## Changelog

Nothing player facing
2024-03-08 20:06:30 +01:00
MrMelbert
96cfd92a4a Removes weakref in forensics datum (#81751)
## About The Pull Request

This doesn't need to use weakrefs, it's a fairly easy to manage
relationship, when the atom goes the forensics goes
2024-03-01 13:54:16 -07:00
Bloop
bf56a7a1ba Fixes CI runtime/race condition with forensics (#81610)
## About The Pull Request

Just a quick fix for the following CI runtime, and additionally passes
through the rest of this file's weakref instances for any other
potential bugs.


![image](https://github.com/tgstation/tgstation/assets/13398309/a58be18a-21e4-40b2-92e0-1a961108c939)

## Why It's Good For The Game

Bugfix

## Changelog

Nothing player facing

---------

Co-authored-by: san7890 <the@san7890.com>
2024-02-22 13:32:08 +01:00
MrMelbert
115fda380d Half fixes organ blood dna not updating (#81584)
## About The Pull Request

Organs have this mechanic where they store the first mob who owned it's
DNA

Anyways it was broken from the organ nullspace refactor because they
intended a block of code that shouldn't have been indented

But this only *half* fixes the issue, you see a problem here?


![image](https://github.com/tgstation/tgstation/assets/51863163/886dd926-3242-4305-825b-a715d6848281)

Yeah there's an order of operation thing going on here because you get
your organs before you get your species bloodtype
This only affects species with weird blood types (like lizards)
I'm not fixing it in this PR because it was certainly broken before and
needs a bit more unwinding somewhere

## Changelog

🆑 Melbert
fix: Organs have the blood DNA of their owns on them again
/🆑
2024-02-20 20:21:54 -07:00
Bloop
f34174414d Cleans up some extra args in Destroy() (#80642)
## About The Pull Request

After https://github.com/tgstation/tgstation/pull/80628, these shouldn't
be needed anymore right?

## Why It's Good For The Game

Cleans up some vestigial code

## Changelog
EDIT: Not player-facing.
2023-12-30 03:54:07 +01:00
Tim
d4d5e8251c Fix organs having no DNA and become bloody when violently removed (#78519)
## About The Pull Request
Fixes #75585

Organs now spawn with DNA that can be scanned by a forensic scanner.
Robotic organs have no DNA and organic organs with no prior owner spawn
with synthetic DNA. If the syntenic DNA organ is inserted into someone,
the organ inherits the owners DNA. This override can only happen once
and only if the organ has never been used.

Any organ removed is covered in blood, unless it's surgically removed. I
had to give the `NO_BLOOD_ON_ITEM` to hearts since the icon was
glitching out with blood decals on it. It also appears that moth wings
(and maybe normal ones?) do not inherit blood decals naturally despite
being covered in blood. No idea why, but that's out of scope for this
PR.

## Why It's Good For The Game
Forensics scanning is now more robust. 

## Changelog
🆑
fix: Fix organs having no DNA and become bloody when violently removed. 
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-02 17:29:56 +01:00
John Willard
b5975bd915 Unit tests now catch decals in walls/space (#75189)
## About The Pull Request

Unit tests will now fail if there's a decal in a wall or open space
turf. Open space turf could be limiting to mappers but I don't think it
makes sense for decals (like dirt, glass shards, etc) to be floating
around in space in the exact same spot.

If there's a decal you want to put in space, decals have a
``turf_loc_check`` var that will bypass this.

**Important note: This is not changing existing behavior. Decals already
delete themselves when they spawn in these incorrect locations, we're
just avoiding them from spawning in the first place.**

### Changes I made

- Ash flora are now lava immune, rivers spawn after flora does, so I
decided that it would be easiest (and more flavorful) to have them be
lava-immune rather than to not have them spawn at all.
- Decals can now be spawned in non-turf locations. This is currently
done by mail, which can give you bones as part of the mail. Currently it
will just delete itself instead.
- Trading Card button is now on the same tile as their display, which
now uses an offset. Before it would spawn it on the tile next to it,
which could be a wall in some instances.
- Mirrors now have floating movement type. They ARE floating since
they're attached to the wall, and it prevents them from burning up due
to lava in the Pride ruin.
- I also added a broken mirror subtype because I thought the icon_state
check was terrible.
- Bubblegum called ``DestroySurroundings`` several times on the same
thing, I hopefully fixed some of that. Their charge ability also
registered ``COMSIG_MOB_STATCHANGE`` despite ``/datum/action`` doing it
by default, so I fixed that too.

## Why It's Good For The Game

Decals in walls is already a bad idea, but currently all it does is
delete it on Initialize. It would be better if we ensured they wouldn't
spawn in the first place.

## Changelog

🆑
fix: Lava will no longer burn 6 of the mirrors in pride ruin
fix: Lava will no longer burn plants that spawn in them.
/🆑
2023-06-15 16:39:22 -07:00
Tim
8d67f614b5 Fix blood overlays on energy daggers (#72624)
## About The Pull Request
Fixes #72338 (again)

Energy blades had blood splatters on them and it looked very funky.  


![dreamseeker_wtugxswIzj](https://user-images.githubusercontent.com/5195984/211640855-f7c3e3fa-8a41-4bca-acc9-75a4c6397b4b.png)

Items now have a `NO_BLOOD_ON_ITEM` flag for to ignore the blood
overlay.

## Why It's Good For The Game


![dreamseeker_dOgOlhLEoU](https://user-images.githubusercontent.com/5195984/211640899-ab577045-9324-456a-ac6a-2cce8119e749.png)

## Changelog
🆑
fix: Fix blood overlays on energy daggers
code: Add `NO_BLOOD_ON_ITEM` bitfield for items
/🆑

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-01-13 04:31:53 +00:00
MrMelbert
ada883356a Fixes a bad istype src in forensics code (#72296)
## About The Pull Request

`src` is a forensics datum, it'll never be an item

## Why It's Good For The Game

Code works as expected

## Changelog

🆑 Melbert
fix: Did you know items have a 1.2x chance of getting fibers attached?
Well it's been broken, now it's fixed
/🆑

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-12-28 10:58:33 -07:00
tralezab
a592e157be Legitimizes BOMBGERs. Add grenades to burgers and assistants will still eat it. (#71552)
## About The Pull Request

Here's the changes to custom food:
- Can now accept grenades
- If you add something larger than the custom food, the custom food
becomes that size
- Biting down on food with grenades in them triggers the grenades

## Why It's Good For The Game

We're trying so hard to remove getting around this whole bombger thing
but wait it's actually based as hell. Why don't we just cut the fat of
what doesn't work (getting around sanity checks with deep frying) and
legitimize what does?

## Changelog
🆑
add: You can add grenades to food
add: Grenades explode when accidentally bitten into
balance: Adding something large to custom food will make it, too, also
large
/🆑
2022-12-01 20:03:39 +00:00
AnturK
4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
Kapu1178
2eccf3cea0 Cleans up update_icons, makes the update_icon_updates_onmob element bespoke, updates CODEOWNERS (#69179)
* I just realised this is all one commit.

* hail marry

* fix.

* FIXES IT FOR REAL

* Update code/datums/elements/update_icon_updates_onmob.dm
2022-08-16 13:50:21 -04:00
Seth Scherer
a3add37618 Refactors the forensics component into a datum (#66809)
About The Pull Request

This was doing things component really shouldn't be doing, and now all
of its behaviour is contained onto a datum, as it should've been the
whole time
Why It's Good For The CODEBASE

some things just really shouldn't be components, this was made back when DCS was first implemented and just thrown in because it was the new hot thing i guess, but datumized forensics makes far more sense, AND doesn't use GetComponent

TODO:

    More thorough testing to make sure nothing broke

Changelog

🆑
refactor: Turned the forensics component into a datum.
/🆑
2022-05-16 16:33:59 +12:00