forked from space-wizards/space-station-14
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add flash reaction effect (space-wizards#32377) add flash reaction effect * Automatic changelog update * Fix loneop spawnrate by reverting it to not use the shuttle event system. (space-wizards#32942) Fix loneop spawnrate by reverting it to not use the custom shuttle event system. * Automatic changelog update * add atmosia to devmap (space-wizards#32460) change * bowls now make drinking sounds (space-wizards#32819) * Automatic changelog update --------- Co-authored-by: slarticodefast <[email protected]> Co-authored-by: PJBot <[email protected]> Co-authored-by: BramvanZijp <[email protected]> Co-authored-by: Ilya246 <[email protected]> Co-authored-by: Moomoobeef <[email protected]>
- Loading branch information
1 parent
686f1df
commit ede3308
Showing
11 changed files
with
6,102 additions
and
3,546 deletions.
There are no files selected for viewing
82 changes: 82 additions & 0 deletions
82
Content.Server/EntityEffects/Effects/FlashReactionEffect.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
using Content.Shared.EntityEffects; | ||
using Content.Server.Flash; | ||
using Robust.Server.GameObjects; | ||
using Robust.Shared.Audio; | ||
using Robust.Shared.Prototypes; | ||
|
||
namespace Content.Server.EntityEffects.Effects; | ||
|
||
[DataDefinition] | ||
public sealed partial class FlashReactionEffect : EntityEffect | ||
{ | ||
/// <summary> | ||
/// Flash range per unit of reagent. | ||
/// </summary> | ||
[DataField] | ||
public float RangePerUnit = 0.2f; | ||
|
||
/// <summary> | ||
/// Maximum flash range. | ||
/// </summary> | ||
[DataField] | ||
public float MaxRange = 10f; | ||
|
||
/// <summary> | ||
/// How much to entities are slowed down. | ||
/// </summary> | ||
[DataField] | ||
public float SlowTo = 0.5f; | ||
|
||
/// <summary> | ||
/// The time entities will be flashed in seconds. | ||
/// The default is chosen to be better than the hand flash so it is worth using it for grenades etc. | ||
/// </summary> | ||
[DataField] | ||
public float Duration = 4f; | ||
|
||
/// <summary> | ||
/// The prototype ID used for the visual effect. | ||
/// </summary> | ||
[DataField] | ||
public EntProtoId? FlashEffectPrototype = "ReactionFlash"; | ||
|
||
/// <summary> | ||
/// The sound the flash creates. | ||
/// </summary> | ||
[DataField] | ||
public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Weapons/flash.ogg"); | ||
|
||
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) | ||
=> Loc.GetString("reagent-effect-guidebook-flash-reaction-effect", ("chance", Probability)); | ||
|
||
public override void Effect(EntityEffectBaseArgs args) | ||
{ | ||
var transform = args.EntityManager.GetComponent<TransformComponent>(args.TargetEntity); | ||
var transformSystem = args.EntityManager.System<SharedTransformSystem>(); | ||
|
||
var range = 1f; | ||
|
||
if (args is EntityEffectReagentArgs reagentArgs) | ||
range = MathF.Min((float)(reagentArgs.Quantity * RangePerUnit), MaxRange); | ||
|
||
args.EntityManager.System<FlashSystem>().FlashArea( | ||
args.TargetEntity, | ||
null, | ||
range, | ||
Duration * 1000, | ||
slowTo: SlowTo, | ||
sound: Sound); | ||
|
||
if (FlashEffectPrototype == null) | ||
return; | ||
|
||
var uid = args.EntityManager.SpawnEntity(FlashEffectPrototype, transformSystem.GetMapCoordinates(transform)); | ||
transformSystem.AttachToGridOrMap(uid); | ||
|
||
if (!args.EntityManager.TryGetComponent<PointLightComponent>(uid, out var pointLightComp)) | ||
return; | ||
var pointLightSystem = args.EntityManager.System<SharedPointLightSystem>(); | ||
// PointLights with a radius lower than 1.1 are too small to be visible, so this is hardcoded | ||
pointLightSystem.SetRadius(uid, MathF.Max(1.1f, range), pointLightComp); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters