Skip to content

Commit

Permalink
Glimmer Mite - pest that causes glimmer (#564)
Browse files Browse the repository at this point in the history
* little glimmer guy

* oops I forgot to add a mob description

HA HA HA

* attempting to fix code issues

* more code fixes

* more code fixes

* cod efix

* coed fics

* every day i scream at least twice

* fixed attribution

* Update attributions.yml

tehe

* made the sound effect public domain

* dies

* bug fix (HA HA)

* wow fuck someone already added ectoplasm wow i thought i added it first wow

wow
  • Loading branch information
leonardo-dabepis authored Feb 1, 2024
1 parent fdfb59a commit 4e7e17a
Show file tree
Hide file tree
Showing 10 changed files with 157 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
using Content.Server.StationEvents.Events;
using Robust.Shared.Prototypes;

namespace Content.Server.StationEvents.Components;

[RegisterComponent, Access(typeof(GlimmerMobRule))]
public sealed partial class GlimmerMobRuleComponent : Component
{
[DataField(required: true)]
public EntProtoId MobPrototype = string.Empty;
}
56 changes: 56 additions & 0 deletions Content.Server/DeltaV/StationEvents/Events/GlimmerMobSpawnRule.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
using System.Linq;
using Robust.Shared.Random;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.NPC.Components;
using Content.Server.Psionics.Glimmer;
using Content.Server.StationEvents.Components;
using Content.Shared.Psionics.Glimmer;
using Content.Shared.Abilities.Psionics;

namespace Content.Server.StationEvents.Events;

public sealed class GlimmerMobRule : StationEventSystem<GlimmerMobRuleComponent>
{
[Dependency] private readonly IRobustRandom _robustRandom = default!;
[Dependency] private readonly GlimmerSystem _glimmerSystem = default!;


protected override void Started(EntityUid uid, GlimmerMobRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
{
base.Started(uid, component, gameRule, args);

var glimmerSources = EntityQuery<GlimmerSourceComponent, TransformComponent>().ToList();
var normalSpawnLocations = EntityQuery<VentCritterSpawnLocationComponent, TransformComponent>().ToList();
var hiddenSpawnLocations = EntityQuery<MidRoundAntagSpawnLocationComponent, TransformComponent>().ToList();

var baseCount = Math.Max(1, EntityQuery<PsionicComponent, NpcFactionMemberComponent>().Count() / 10);
int multiplier = Math.Max(1, (int) _glimmerSystem.GetGlimmerTier() - 2);

var total = baseCount * multiplier;

int i = 0;
while (i < total)
{
if (glimmerSources.Count != 0 && _robustRandom.Prob(0.4f))
{
Spawn(component.MobPrototype, _robustRandom.Pick(glimmerSources).Item2.Coordinates);
i++;
continue;
}

if (normalSpawnLocations.Count != 0)
{
Spawn(component.MobPrototype, _robustRandom.Pick(normalSpawnLocations).Item2.Coordinates);
i++;
continue;
}

if (hiddenSpawnLocations.Count != 0)
{
Spawn(component.MobPrototype, _robustRandom.Pick(hiddenSpawnLocations).Item2.Coordinates);
i++;
continue;
}
}
}
}
4 changes: 4 additions & 0 deletions Resources/Audio/DeltaV/Glimmer_Creatures/attributions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- files: [mite.ogg]
copyright: '"mite.ogg" by leonardo-dabepis'
license: CC0-1.0
source: https://github.com/DeltaV-Station/Delta-v/pull/564
Binary file added Resources/Audio/DeltaV/Glimmer_Creatures/mite.ogg
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
- type: entity
name: glimmer mite
parent: MobCockroach
id: MobGlimmerMite
description: A strange pest from a world beyond the noosphere.
components:
- type: Sprite
sprite: DeltaV/Mobs/Ghosts/glimmermite.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: mite
- type: DamageStateVisuals
states:
Alive:
Base: mite
Dead:
Base: mite_dead
baseDecayRate: 0.25
- type: SolutionContainerManager
solutions:
food:
reagents:
- ReagentId: Ectoplasm
Quantity: 5
- type: Bloodstream
bloodReagent: Ectoplasm
bloodMaxVolume: 20
- type: PotentialPsionic
- type: Psionic
- type: GlimmerSource
- type: AmbientSound
range: 6
volume: -3
sound: /Audio/DeltaV/Glimmer_Creatures/mite.ogg
- type: AmbientOnPowered
12 changes: 12 additions & 0 deletions Resources/Prototypes/Nyanotrasen/GameRules/events.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,15 @@
maximumGlimmer: 900
report: glimmer-event-report-signatures
- type: GlimmerRevenantRule

- type: entity
id: GlimmerMiteSpawn
parent: BaseGlimmerEvent
noSpawn: true
components:
- type: GlimmerEvent
minimumGlimmer: 50
maximumGlimmer: 900
report: glimmer-event-report-signatures
- type: GlimmerMobRule
mobPrototype: MobGlimmerMite
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions Resources/Textures/DeltaV/Mobs/Ghosts/glimmermite.rsi/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "leonardo_dabepis (232229415176634368) on Discord",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "mite",
"directions": 4,
"delays": [
[
0.2,
0.3
],
[
0.2,
0.3
],
[
0.2,
0.3
],
[
0.2,
0.3
]
]
},
{
"name": "icon"
},
{
"name": "mite_dead"
}
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4e7e17a

Please sign in to comment.