Cosmic Cult | Pre-launch Patch #2 (#3681)

* initial commit

* unindented by 1, and made everything else match that same indentation

* Whoopsies
This commit is contained in:
AftrLite 2025-05-08 21:55:36 +12:00 committed by GitHub
parent 8369cbee32
commit 8f696047b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 279 additions and 89 deletions

View File

@ -16,8 +16,8 @@ public sealed partial class CleanseOnUseComponent : Component
[DataField] public SoundSpecifier MalignSound = new SoundPathSpecifier("/Audio/_DV/CosmicCult/glyph_trigger.ogg");
[DataField] public EntProtoId CleanseVFX = "CleanseEffectVFX";
[DataField] public EntProtoId CleanseVFX = "NoosphericVFX2";
[DataField] public EntProtoId ReboundVFX = "NoosphericVFX1";
[DataField] public EntProtoId MalignVFX = "CosmicGenericVFX";
[DataField] public bool Enabled = true;

View File

@ -25,6 +25,7 @@ using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
using Content.Shared.Popups;
namespace Content.Server._DV.CosmicCult;
@ -159,7 +160,10 @@ public sealed partial class CosmicCultSystem : SharedCosmicCultSystem
private void OnGotHeld(Entity<CosmicEquipmentComponent> ent, ref GotEquippedHandEvent args)
{
if (!EntityIsCultist(args.User))
{
_statusEffects.TryAddStatusEffect<CosmicEntropyDebuffComponent>(args.User, EntropicDegen, TimeSpan.FromDays(1), true);
_popup.PopupEntity(Loc.GetString("cosmiccult-gear-pickup", ("ITEM", args.Equipped)), args.User, args.User, PopupType.MediumCaution);
}
}
private void OnGotUnheld(Entity<CosmicEquipmentComponent> ent, ref GotUnequippedHandEvent args)
@ -195,7 +199,7 @@ public sealed partial class CosmicCultSystem : SharedCosmicCultSystem
}
private void OnImpositionMoveSpeed(EntityUid uid, CosmicImposingComponent comp, RefreshMovementSpeedModifiersEvent args)
{
args.ModifySpeed(0.60f, 0.60f);
args.ModifySpeed(0.65f, 0.65f);
}
#endregion

View File

@ -86,11 +86,12 @@ public sealed class DeconversionSystem : EntitySystem
return;
var targetPosition = Transform(target.Value).Coordinates;
var userPosition = Transform(args.User).Coordinates;
//TODO: This could be made more agnostic, but there's only one cult for now, and frankly, i'm so tired. This is easy to read and easy to modify code. Expand it at thine leisure.
if (TryComp<CosmicCultComponent>(args.Target, out var comp) && comp.CosmicEmpowered)
{
Spawn(censer.MalignVFX, targetPosition);
Spawn(censer.MalignVFX, Transform(args.User).Coordinates);
Spawn(censer.MalignVFX, userPosition);
EnsureComp<CleanseCultComponent>(target.Value, out var cleanse);
cleanse.CleanseDuration = TimeSpan.FromSeconds(1);
_audio.PlayPvs(censer.MalignSound, targetPosition, AudioParams.Default.WithVolume(2f));
@ -113,9 +114,13 @@ public sealed class DeconversionSystem : EntitySystem
}
else
{
Spawn(censer.ReboundVFX, userPosition);
Spawn(censer.ReboundVFX, targetPosition);
_audio.PlayPvs(censer.SizzleSound, targetPosition);
_popup.PopupEntity(Loc.GetString("cleanse-deconvert-attempt-notcorrupted", ("target", Identity.Entity(target.Value, EntityManager))), args.User, args.User);
_popup.PopupCoordinates(Loc.GetString("cleanse-deconvert-attempt-rebound"), targetPosition, PopupType.MediumCaution);
_damageable.TryChangeDamage(args.User, censer.FailedDeconversionDamage, true);
_damageable.TryChangeDamage(args.Target, censer.FailedDeconversionDamage, true);
}
args.Handled = true;
}

View File

@ -19,7 +19,7 @@ public sealed partial class CosmicCenserComponent : Component
/// The length of time it takes to deconvert someone.
/// </summary>
[DataField]
public TimeSpan DeconversionTime = TimeSpan.FromSeconds(10);
public TimeSpan DeconversionTime = TimeSpan.FromSeconds(15);
/// <summary>
/// The damage to deal on a failed deconversion
@ -27,7 +27,7 @@ public sealed partial class CosmicCenserComponent : Component
[DataField]
public DamageSpecifier FailedDeconversionDamage = new() {
DamageDict = new() {
{ "Asphyxiation", 50 },
{ "Asphyxiation", 65 },
{ "Caustic", 15 }
}
};
@ -38,7 +38,9 @@ public sealed partial class CosmicCenserComponent : Component
[DataField] public SoundSpecifier MalignSound = new SoundPathSpecifier("/Audio/_DV/CosmicCult/glyph_trigger.ogg");
[DataField] public EntProtoId CleanseVFX = "CleanseEffectVFX";
[DataField] public EntProtoId CleanseVFX = "NoosphericVFX2";
[DataField] public EntProtoId ReboundVFX = "NoosphericVFX1";
[DataField] public EntProtoId MalignVFX = "CosmicGenericVFX";
}

View File

@ -3,5 +3,6 @@ cleanse-deconvert-attempt-begin-user = You attempt to cleanse {CAPITALIZE(THE($t
cleanse-deconvert-attempt-success = You cleanse {CAPITALIZE(THE($target))} in a cascade of holy light!
cleanse-deconvert-attempt-success-empowered = You cleanse {CAPITALIZE(THE($target))}, but a pulse of malign energy bursts forth!
cleanse-deconvert-attempt-notcorrupted = {CAPITALIZE(THE($target))} wasn't under the influence of anything.
cleanse-deconvert-attempt-rebound = Noospheric energies lash out!
cleanse-item-sizzle = {CAPITALIZE(THE($target))} sizzles in your hands!

View File

@ -184,4 +184,4 @@ cosmiccult-spire-entropy = A mote of entropy condenses from the surface of the s
cosmiccult-entropy-inserted = You infuse {$count} entropy into The Monument.
cosmiccult-entropy-unavailable = You can't do that right now.
cosmiccult-astral-ascendant = {$name}, Ascendant
cosmiccult-gear-pickup-rejection = The {$ITEM} resists {CAPITALIZE(THE($TARGET))}'s touch!
cosmiccult-gear-pickup = You can feel yourself unravelling while you hold the {$ITEM}!

View File

@ -59,3 +59,12 @@ figurines-neuroticist-1 = Borgs shall control the station.
figurines-neuroticist-2 = MUAHAHAHAHAHAHA.
figurines-neuroticist-3 = I have come to make an announcement.
figurines-neuroticist-4 = You work for me now.
figurines-cosmiccultist-1 = This is the end.
figurines-cosmiccultist-2 = It's lambda, not delta.
figurines-cosmiccultist-3 = Nothing to see here.
figurines-cosmiccultist-4 = I know, I'm simply breathtaking.
figurines-cosmiccultist-5 = My cult so cosmic!
figurines-cosmiccultist-6 = Wanna go stargazing?
figurines-cosmiccultist-7 = No, I don't know where the rift went.
figurines-cosmiccultist-8 = Join us. We've got lollipops.

View File

@ -93,6 +93,7 @@
rarePrototypes:
- ToyFigurineNukieElite
- ToyFigurineNukieCommander
- ToyFigurineCosmicCultist # DeltaV Figurine, see Resources/Prototypes/_DV/Entities/Objects/Fun/toys.yml
rareChance: 0.05
prototypes:
- ToyFigurinePassenger

View File

@ -166,4 +166,7 @@
- id: ToyFigurineNeuroticist
orGroup: SpacemenFig
prob: 0.10
- id: ToyFigurineCosmicCultist
prob: 0.50
orGroup: SpacemenFig
# End DeltaV Additions

View File

@ -56,3 +56,5 @@
- type: Tag
tags:
- HideContextMenu
- type: CosmicCorruptible # DeltaV - Cosmic Cult
convertTo: FloorCosmicDecay

View File

@ -54,3 +54,5 @@
- type: Tag
tags:
- HideContextMenu
- type: CosmicCorruptible # DeltaV - Cosmic Cult
convertTo: FloorCosmicDecay

View File

@ -20,7 +20,7 @@
- type: SolutionContainerManager
solutions:
pool:
maxVol: 9999999 #.inf seems to break the whole yaml file, but would definitely be preferable.
maxVol: 9999999 #.inf seems to break the whole yaml file, but would definitely be preferable.
reagents:
- ReagentId: Water
Quantity: 9999999
@ -63,3 +63,5 @@
- type: TileEntityEffect
effects:
- !type:ExtinguishReaction
- type: CosmicCorruptible # DeltaV - Cosmic Cult
convertTo: FloorCosmicDecay

View File

@ -50,3 +50,4 @@
storage:
back:
- Flash
- CosmicCenser # DeltaV - Cosmic Cult

View File

@ -138,7 +138,7 @@
categories: [ HideSpawnMenu ]
components:
- type: EntityTargetAction
useDelay: 40
useDelay: 25
whitelist:
components:
- Door
@ -169,7 +169,7 @@
categories: [ HideSpawnMenu ]
components:
- type: WorldTargetAction
useDelay: 30
useDelay: 45
raiseOnUser: true
range: 60
itemIconStyle: NoItem

View File

@ -19,16 +19,16 @@
highPressureMultiplier: 0.05
lowPressureMultiplier: 1000
- type: ExplosionResistance
damageCoefficient: 0.5
damageCoefficient: 0.4
- type: Armor
modifiers:
coefficients:
Blunt: 0.5
Slash: 0.5
Piercing: 0.5
Heat: 0.5
Radiation: 0.5
Caustic: 0.5
Blunt: 0.4
Slash: 0.4
Piercing: 0.4
Heat: 0.4
Radiation: 0.4
Caustic: 0.4
- type: ClothingSpeedModifier
walkModifier: 0.9
sprintModifier: 0.9

View File

@ -19,15 +19,15 @@
castShadows: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 0.64
maxDuration: 0.65
startValue: 0.1
endValue: 6
property: Energy
enabled: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 0.64
maxDuration: 0.65
startValue: 0.1
endValue: 6
property: Energy
enabled: true
reverseWhenFinished: true
- type: Tag
tags:
- HideContextMenu
@ -98,16 +98,16 @@
castShadows: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.75
maxDuration: 1.75
startValue: 0.1
endValue: 4
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.75
maxDuration: 1.75
startValue: 0.1
endValue: 4
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
@ -128,16 +128,76 @@
castShadows: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 2.025
maxDuration: 2.025
startValue: 0.1
endValue: 2
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 2.025
maxDuration: 2.025
startValue: 0.1
endValue: 2
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
parent: BaseCosmicVFX
id: NoosphericVFX2
components:
- type: TimedDespawn
lifetime: 2.025
- type: Sprite
layers:
- sprite: _DV/CosmicCult/Effects/effect_ns_flarevfx.rsi
state: vfx
shader: unshaded
- type: PointLight
color: "#a35d7b"
radius: 1.5
energy: 2.5
castShadows: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.575
maxDuration: 1.575
startValue: 0.1
endValue: 2
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
parent: BaseCosmicVFX
id: NoosphericVFX1
components:
- type: TimedDespawn
lifetime: 2.025
- type: Sprite
layers:
- sprite: _DV/CosmicCult/Effects/effect_ns_reboundvfx.rsi
state: vfx
shader: unshaded
- type: PointLight
color: "#a35d7b"
radius: 1.5
energy: 2.5
castShadows: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.125
maxDuration: 1.125
startValue: 0.1
endValue: 2
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
@ -158,16 +218,16 @@
castShadows: false
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 2.025
maxDuration: 2.025
startValue: 0.1
endValue: 2
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 2.025
maxDuration: 2.025
startValue: 0.1
endValue: 2
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
@ -188,16 +248,16 @@
castShadows: true
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.1
maxDuration: 1.1
startValue: 0.1
endValue: 10
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.1
maxDuration: 1.1
startValue: 0.1
endValue: 10
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
@ -218,16 +278,16 @@
castShadows: true
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.92
maxDuration: 1.92
startValue: 0.1
endValue: 6
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.92
maxDuration: 1.92
startValue: 0.1
endValue: 6
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: entity
categories: [ HideSpawnMenu ]
@ -249,16 +309,16 @@
castShadows: true
- type: LightBehaviour
behaviours:
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.1
maxDuration: 1.1
startValue: 0.1
endValue: 6
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- !type:FadeBehaviour
interpolate: Linear
minDuration: 1.1
maxDuration: 1.1
startValue: 0.1
endValue: 6
property: Energy
enabled: true
isLooped: true
reverseWhenFinished: true
- type: Tag
tags:
- HideContextMenu

View File

@ -133,7 +133,7 @@
sprite: /Textures/_DV/CosmicCult/Tileset/cosmicdecay.rsi
state: full
- type: IconSmooth
key: floor
key: decay
base: decay
- type: Tag
tags:

View File

@ -87,3 +87,9 @@
values:
prefix: figurines-neuroticist-
count: 4
- type: localizedDataset
id: FigurinesCosmicCultist
values:
prefix: figurines-cosmiccultist-
count: 8

View File

@ -172,3 +172,17 @@
state: neuroticist
- type: SpeakOnTrigger
pack: FigurinesNeuroticist
- type: entity
parent: BaseFigurineDeltaV
id: ToyFigurineCosmicCultist
name: cosmic cultist figure
description: A figurine depicting an iridescent, alien looking hardsuit. You can feel the gaze of the abyss in its lack-of-a-face.
components:
- type: Sprite
layers:
- state: cosmiccultist
- state: cosmiccultist_unshaded
shader: unshaded
- type: SpeakOnTrigger
pack: FigurinesCosmicCultist

View File

@ -0,0 +1,39 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "A custom item by AftrLite(Github)",
"size": {
"x": 64,
"y": 64
},
"states": [
{
"name": "vfx",
"delays": [
[
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
99
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,33 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "A custom item by AftrLite(Github)",
"size": {
"x": 64,
"y": 64
},
"states": [
{
"name": "vfx",
"delays": [
[
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
0.075,
99
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

View File

@ -1,7 +1,7 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites made by JustAnOrange, Recruiter, Synthesis, LPO and Neuroticist by Smugman",
"copyright": "Sprites made by JustAnOrange, Recruiter, Synthesis, LPO and Neuroticist by Smugman, and Cosmic Cultist by RosySaturniidae.",
"size": {
"x": 32,
"y": 32
@ -51,6 +51,12 @@
},
{
"name": "neuroticist"
},
{
"name": "cosmiccultist"
},
{
"name": "cosmiccultist_unshaded"
}
]
}