mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 10:21:18 +03:00
* Xenoborg Nanite Gun * Fix Sprite * All the C# + Bullet Impact * Muzzle flash + module * Audio + Mag Sprites + Broken Crystals * Fix fails + description * fix * Requested Changes Thanks B-krill :) * Change healing values to 8 * Fix fails mayhaps * Tweak Balancing two * Balance changes final * Requested chnages * Cartridge Resprite * New sounds by Sadie :D * unrelated test * Forgot to make module sprites * Beck Changes * Fix? * New sprites :/ * Thanks Samuka :) * Fix failure thanks orks :) * Muzzle flash * FURTHERgit add -A * offset change * Requested changes * oops * add whiteline * make it for all borgs * revert to whatever * old sprites yay * Fix heisentest * oops * new sprites * fix * description change * ammo sprites * attributions * fifty commits yaygit add -A * wtf * MACROBALANCE RAHH --------- Co-authored-by: beck-thompson <beck314159@hotmail.com> Co-authored-by: Samuel-C <samuelcamilo8@gmail.com>
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using Content.Shared.Damage;
|
|
using Content.Shared.Whitelist;
|
|
using Robust.Shared.GameStates;
|
|
|
|
namespace Content.Shared.Projectiles;
|
|
|
|
/// <summary>
|
|
/// A projectile with this component will not deal <see cref="ProjectileComponent.Damage"/>.
|
|
/// Instead, it will do damage based on the target if
|
|
/// said target passes the whitelist and blacklist of the options
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// If the target doesn't match any option, the projectile will deal <see cref="ProjectileComponent.Damage"/>.
|
|
/// </remarks>
|
|
[RegisterComponent, NetworkedComponent]
|
|
public sealed partial class ComplexProjectileDamageComponent : Component
|
|
{
|
|
/// <summary>
|
|
/// Array of options of damage for specific entities.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Only one option will choosen, if a target fits 2 options,
|
|
/// it will receive damage only from the first option that matches.
|
|
/// </remarks>
|
|
[DataField]
|
|
public DamageOption[] DamageOptions = [];
|
|
}
|
|
|
|
/// <summary>
|
|
/// Specifies a amount of damage to deal to entities that fit the whitelist and are not blacklisted.
|
|
/// </summary>
|
|
[DataDefinition]
|
|
public partial struct DamageOption
|
|
{
|
|
/// <summary>
|
|
/// The damage to deal to certain entities.
|
|
/// </summary>
|
|
[DataField]
|
|
public DamageSpecifier Damage;
|
|
|
|
/// <summary>
|
|
/// The whitelist of entities to deal the damage to.
|
|
/// </summary>
|
|
[DataField]
|
|
public EntityWhitelist? Whitelist;
|
|
|
|
/// <summary>
|
|
/// The blacklist of entities to not deal the damage to.
|
|
/// </summary>
|
|
[DataField]
|
|
public EntityWhitelist? Blacklist;
|
|
}
|