Refactoring of roles and notifications about antagonist assignment (#16864)

* Refactoring of antagonist roles and notifications about antagonist role assignment.
Refactoring of traitor assignment methods and bug fixing.

* Announcement files moved, code is adjusted to new revision

* Play to entity changed to play to global cause of mono audio restrictions.

* Path to audio files changed to sound specifiers, unique alerts for each role.

* Uncommited changes

* New alert sounds for each antag role.

* PR review fixes

* Antagonist role assignment sound notifications moved to Systems, sounds moved to Components.

* License update

* Fixed naming and redundant parameters

---------

Co-authored-by: Титов Вячеслав Витальевич <rincew1nd@yandex.ru>
This commit is contained in:
Vyacheslav Titov
2023-06-07 10:15:22 +03:00
committed by GitHub
parent f5d2b0e284
commit 2e241691aa
25 changed files with 187 additions and 87 deletions

View File

@@ -0,0 +1,24 @@
using Content.Shared.Roles;
namespace Content.Server.Roles;
public abstract class AntagonistRole : Role
{
public AntagPrototype Prototype { get; }
public override string Name { get; }
public override bool Antagonist { get; }
/// <summary>
/// .ctor
/// </summary>
/// <param name="mind">A mind (player)</param>
/// <param name="antagPrototype">Antagonist prototype</param>
protected AntagonistRole(Mind.Mind mind, AntagPrototype antagPrototype) : base(mind)
{
Prototype = antagPrototype;
Name = Loc.GetString(antagPrototype.Name);
Antagonist = antagPrototype.Antagonist;
}
}

View File

@@ -0,0 +1,8 @@
using Content.Shared.Roles;
namespace Content.Server.Roles;
public sealed class NukeopsRole : AntagonistRole
{
public NukeopsRole(Mind.Mind mind, AntagPrototype antagPrototype) : base(mind, antagPrototype) { }
}

View File

@@ -0,0 +1,10 @@
using Content.Server.Chat.Managers;
using Content.Shared.PDA;
using Content.Shared.Roles;
namespace Content.Server.Roles;
public sealed class TraitorRole : AntagonistRole
{
public TraitorRole(Mind.Mind mind, AntagPrototype antagPrototype) : base(mind, antagPrototype) { }
}

View File

@@ -0,0 +1,8 @@
using Content.Shared.Roles;
namespace Content.Server.Roles;
public sealed class ZombieRole : AntagonistRole
{
public ZombieRole(Mind.Mind mind, AntagPrototype antagPrototype) : base(mind, antagPrototype) { }
}