Commit Graph

9 Commits

Author SHA1 Message Date
Rhials 4e1b14fd98 Hallucinatory Anomalies now produce hallucinatory decoys of itself, and hit a wider area (#86086)
## About The Pull Request

This "buffs" the hallucinatory anomaly by giving it a bit more impact
and flair. This affects both the detonate effect and what happens when
one initially spawns.

When a hallucinatory anomaly spawns, it will spawn surrounded by "decoy"
hallucination anomalies -- Illusions meant to distract you from the real
one. The idea is that these are not actually there, and that they are
the result of reality getting muddy in proximity to the anomaly.
Scanning one of these will provide a message, either of nothing
happening or a minor hallucination as your character suffers from the
real anomaly's effects.

Using an anomaly neutralizer on a decoy will do nothing. There's nothing
to neutralize, because nothing is there. You're losing your grip on
reality.

Now, the detonate effect will affect people at a wider radius, through
walls. This is done with a second helper different from
`visible_hallucination_pulse()`, which does affect the blind and ignores
walls, `hallucination_pulse()`.
## Why It's Good For The Game

Hallucinatory anomalies are easily the most underwhelming and
understated anomaly in the group. They have the impact of a dry fart on
a round, rarely affecting anyone and vanishing without anyone noticing
or caring.

It makes little sense for the detonate effect to impact only those who
can see it. Anyone with a pulse can make the connection between the
"hallucination anomaly" vanishing and Bubblegum bodyslamming them less
than a second later. By affecting those out of sight, in a wider range,
there's a higher chance the detonation will not only catch people off
guard, but lead to more chaos on comms.

As for the illusory decoy anomalies, it was just a neat idea I had to
differentiate how people typically deal with them. It makes for a more
trippy experience for whoever has to deal with them, and adds confusion
(which is the whole shtick with hallucinations -- confusion).

So, overall, more snazziness and personality, and more of an impact when
left alone.
## Changelog
🆑 Rhials
balance: Hallucinatory anomalies now have a wider range, and will spawn
hallucinatory decoys of itself to mislead you.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-08 03:41:28 +00:00
Ben10Omintrix ab441bace7 fixes mansus grasp not removing runes (#84570)
## About The Pull Request
fixes mansus grasp not removing runes

## Why It's Good For The Game
closes #84289

## Changelog
🆑
fix: fixes mansus grasp not clearing runes
/🆑
2024-07-03 22:55:19 +00:00
Mothblocks c1d68698fb Micro-optimize qdel by only permitting one parameter (#80628)
Productionizes #80615.

The core optimization is this:

```patch
-	var/hint = to_delete.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
+	var/hint = to_delete.Destroy(force) // Let our friend know they're about to get fucked up.
```

We avoid a heap allocation in the form of copying the args over to a new
list. A/B testing shows this results in 33% better overtime, and in a
real round shaving off a full second of self time and 0.4 seconds of
overtime--both of these would be doubled in the event this is merged as
the new proc was only being run 50% of the time.
2023-12-28 13:52:44 -08:00
LemonInTheDark ed0999e4ea Adds error on qdeling callback, fixes errors this causes (#77850)
## About The Pull Request

You shouldn't ever qdel a callback. If you don't want to own it free
your ref (remove it from a list/set it to null). When all refs are
cleared it'll get cleaned up by byond itself
2023-08-22 21:32:30 -05:00
carlarctg 8dc89dcacf Heretic runes are easier to click through and have a windup for clearing them (#75868)
Heretic runes no longer have every single transparent pixel set to 1
alpha, to make it easier to click on objects.

Clearing heretic runes with mansus grasp takes 0.4 seconds of standing
still, to prevent you from accidentally clearing it in combat.

Added code for effect remover element to use a windup if set.
2023-06-15 03:56:30 +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
MrMelbert 8aa42a3833 Screentips for anomaly neutralizer / null rod (and other effect removers) (#65221) 2022-03-09 17:47:40 -08:00
MrMelbert aa520b582c Refactors anomanly neutralizer to use the effect remover component (#64864)
Anomalies are effects, effect remover is made to remove effects, might as well make use of it?

Also makes some cool sparks around it now so that's neat
2022-02-17 20:38:07 +00:00
MrMelbert c979a23b6c Refactor cult dagger rune drawing and null rod rune clearing into components + minor rune / blood magic tweaks (#62918)
The act of inscribing runes, anchoring / unanchoring cult structures, deconstructing cult girders, and purging cultists of holy water have all been moved off of the cult dagger itself and onto a component, cult_ritual_item.

The act of destroying a cult rune or heretic rune with the null rod have been moved off of their respective items and onto the nullrod itself.

Added a signal, COMSIG_ITEM_ATTACK_EFFECT, for the above purposes.
Various cult spells and dagger interactions have had their code improved slightly.
2021-11-23 17:26:30 +00:00