TriggerOnSpawn + Admin toys (#23999)
* spawn on trigger, or trigger on spawn? * fixes * fix? * revert * fixes * Update admin_triggers.yml * pip
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
namespace Content.Server.Explosion.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// calls the trigger when the object is initialized
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed partial class TriggerOnSpawnComponent : Component
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -78,6 +78,7 @@ namespace Content.Server.Explosion.EntitySystems
|
|||||||
InitializeVoice();
|
InitializeVoice();
|
||||||
InitializeMobstate();
|
InitializeMobstate();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<TriggerOnSpawnComponent, MapInitEvent>(OnSpawnTriggered);
|
||||||
SubscribeLocalEvent<TriggerOnCollideComponent, StartCollideEvent>(OnTriggerCollide);
|
SubscribeLocalEvent<TriggerOnCollideComponent, StartCollideEvent>(OnTriggerCollide);
|
||||||
SubscribeLocalEvent<TriggerOnActivateComponent, ActivateInWorldEvent>(OnActivate);
|
SubscribeLocalEvent<TriggerOnActivateComponent, ActivateInWorldEvent>(OnActivate);
|
||||||
SubscribeLocalEvent<TriggerImplantActionComponent, ActivateImplantEvent>(OnImplantTrigger);
|
SubscribeLocalEvent<TriggerImplantActionComponent, ActivateImplantEvent>(OnImplantTrigger);
|
||||||
@@ -193,6 +194,11 @@ namespace Content.Server.Explosion.EntitySystems
|
|||||||
Trigger(uid);
|
Trigger(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnSpawnTriggered(EntityUid uid, TriggerOnSpawnComponent component, MapInitEvent args)
|
||||||
|
{
|
||||||
|
Trigger(uid);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnActivate(EntityUid uid, TriggerOnActivateComponent component, ActivateInWorldEvent args)
|
private void OnActivate(EntityUid uid, TriggerOnActivateComponent component, ActivateInWorldEvent args)
|
||||||
{
|
{
|
||||||
Trigger(uid, args.User);
|
Trigger(uid, args.User);
|
||||||
|
|||||||
112
Resources/Prototypes/Entities/Effects/admin_triggers.yml
Normal file
112
Resources/Prototypes/Entities/Effects/admin_triggers.yml
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectBase
|
||||||
|
abstract: true
|
||||||
|
name: instant effect
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: /Textures/Objects/Fun/goldbikehorn.rsi
|
||||||
|
visible: false
|
||||||
|
state: icon
|
||||||
|
- type: TriggerOnSpawn
|
||||||
|
- type: TimedDespawn
|
||||||
|
lifetime: 5
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectEMP
|
||||||
|
suffix: EMP
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: EmpOnTrigger
|
||||||
|
range: 4
|
||||||
|
energyConsumption: 50000
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectFlash
|
||||||
|
suffix: Flash
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: FlashOnTrigger
|
||||||
|
range: 7
|
||||||
|
- type: SpawnOnTrigger
|
||||||
|
proto: GrenadeFlashEffect
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectSmoke3
|
||||||
|
suffix: Smoke (03 sec)
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: SmokeOnTrigger
|
||||||
|
duration: 3
|
||||||
|
spreadAmount: 1
|
||||||
|
- type: SoundOnTrigger
|
||||||
|
sound: /Audio/Effects/smoke.ogg
|
||||||
|
- type: TimerTriggerVisuals
|
||||||
|
primingSound:
|
||||||
|
path: /Audio/Effects/Smoke-grenade.ogg
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectSmoke10
|
||||||
|
suffix: Smoke (10 sec)
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: SmokeOnTrigger
|
||||||
|
duration: 10
|
||||||
|
spreadAmount: 30
|
||||||
|
- type: SoundOnTrigger
|
||||||
|
sound: /Audio/Effects/smoke.ogg
|
||||||
|
- type: TimerTriggerVisuals
|
||||||
|
primingSound:
|
||||||
|
path: /Audio/Effects/Smoke-grenade.ogg
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectSmoke30
|
||||||
|
suffix: Smoke (30 sec)
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: SmokeOnTrigger
|
||||||
|
duration: 30
|
||||||
|
spreadAmount: 50
|
||||||
|
- type: SoundOnTrigger
|
||||||
|
sound: /Audio/Effects/smoke.ogg
|
||||||
|
- type: TimerTriggerVisuals
|
||||||
|
primingSound:
|
||||||
|
path: /Audio/Effects/Smoke-grenade.ogg
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectTearGas
|
||||||
|
suffix: Tear Gas
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: SmokeOnTrigger
|
||||||
|
duration: 10
|
||||||
|
spreadAmount: 30
|
||||||
|
solution:
|
||||||
|
reagents:
|
||||||
|
- ReagentId: TearGas
|
||||||
|
Quantity: 50
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: AdminInstantEffectGravityWell
|
||||||
|
suffix: Gravity Well
|
||||||
|
parent: AdminInstantEffectBase
|
||||||
|
components:
|
||||||
|
- type: SoundOnTrigger
|
||||||
|
removeOnTrigger: true
|
||||||
|
sound:
|
||||||
|
path: /Audio/Effects/Grenades/Supermatter/supermatter_start.ogg
|
||||||
|
volume: 5
|
||||||
|
- type: AmbientSound
|
||||||
|
enabled: true
|
||||||
|
volume: -5
|
||||||
|
range: 14
|
||||||
|
sound:
|
||||||
|
path: /Audio/Effects/Grenades/Supermatter/supermatter_loop.ogg
|
||||||
|
- type: GravityWell
|
||||||
|
maxRange: 8
|
||||||
|
baseRadialAcceleration: 10
|
||||||
|
baseTangentialAcceleration: 0
|
||||||
|
gravPulsePeriod: 0.01
|
||||||
|
- type: SingularityDistortion
|
||||||
|
intensity: 10
|
||||||
|
falloffPower: 1.5
|
||||||
|
|
||||||
Reference in New Issue
Block a user