mirror of
https://github.com/corvax-team/ss14-wl.git
synced 2026-02-14 19:29:57 +01:00
@@ -1,34 +0,0 @@
|
|||||||
using Content.Shared._WL.Conspirators.Components;
|
|
||||||
using Content.Shared._WL.Conspirators.EntitySystems;
|
|
||||||
using Content.Shared.Antag;
|
|
||||||
using Content.Shared.StatusIcon.Components;
|
|
||||||
using Robust.Client.Player;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
|
|
||||||
namespace Content.Client._WL.Conspirators.EntitySystems;
|
|
||||||
|
|
||||||
public sealed class ConspiratorSystem : SharedConspiratorSystem
|
|
||||||
{
|
|
||||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
|
||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
|
||||||
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
|
|
||||||
SubscribeLocalEvent<ConspiratorComponent, GetStatusIconsEvent>(OnConspiratorGetIcons);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnConspiratorGetIcons(Entity<ConspiratorComponent> entity, ref GetStatusIconsEvent args)
|
|
||||||
{
|
|
||||||
if (_playerManager.LocalSession?.AttachedEntity is { } playerEntity)
|
|
||||||
{
|
|
||||||
if (!HasComp<ShowAntagIconsComponent>(playerEntity) &&
|
|
||||||
!HasComp<ConspiratorComponent>(playerEntity))
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_prototypeManager.TryIndex(entity.Comp.ConspiratorIcon, out var iconPrototype))
|
|
||||||
args.StatusIcons.Add(iconPrototype);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -13,7 +13,6 @@ using Robust.Shared.Player;
|
|||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Utility;
|
using Robust.Shared.Utility;
|
||||||
using Content.Shared.Roles.Components;
|
using Content.Shared.Roles.Components;
|
||||||
using Content.Server._WL.GameTicking.Rules.Components; // WL-Changes: Conspirators
|
|
||||||
|
|
||||||
namespace Content.Server.Administration.Systems;
|
namespace Content.Server.Administration.Systems;
|
||||||
|
|
||||||
@@ -33,7 +32,6 @@ public sealed partial class AdminVerbSystem
|
|||||||
private static readonly EntProtoId ParadoxCloneRuleId = "ParadoxCloneSpawn";
|
private static readonly EntProtoId ParadoxCloneRuleId = "ParadoxCloneSpawn";
|
||||||
private static readonly EntProtoId DefaultWizardRule = "Wizard";
|
private static readonly EntProtoId DefaultWizardRule = "Wizard";
|
||||||
private static readonly EntProtoId DefaultNinjaRule = "NinjaSpawn";
|
private static readonly EntProtoId DefaultNinjaRule = "NinjaSpawn";
|
||||||
private static readonly EntProtoId DefaultConspiratorRule = "Conspirators"; // WL-Changes: Conspirators
|
|
||||||
private static readonly ProtoId<StartingGearPrototype> PirateGearId = "PirateGear";
|
private static readonly ProtoId<StartingGearPrototype> PirateGearId = "PirateGear";
|
||||||
|
|
||||||
// All antag verbs have names so invokeverb works.
|
// All antag verbs have names so invokeverb works.
|
||||||
@@ -227,23 +225,6 @@ public sealed partial class AdminVerbSystem
|
|||||||
};
|
};
|
||||||
args.Verbs.Add(ninja);
|
args.Verbs.Add(ninja);
|
||||||
|
|
||||||
//WL-Changes: Conspiratrs start
|
|
||||||
var conspiratorName = Loc.GetString("admin-verb-text-make-conspirator");
|
|
||||||
Verb conspirator = new()
|
|
||||||
{
|
|
||||||
Text = conspiratorName,
|
|
||||||
Category = VerbCategory.Antag,
|
|
||||||
Icon = new SpriteSpecifier.Rsi(new("/Textures/_WL/Interface/Misc/job_icons.rsi"), "Conspirator"),
|
|
||||||
Act = () =>
|
|
||||||
{
|
|
||||||
_antag.ForceMakeAntag<ConspiratorRuleComponent>(targetPlayer, DefaultConspiratorRule);
|
|
||||||
},
|
|
||||||
Impact = LogImpact.High,
|
|
||||||
Message = string.Join(": ", conspiratorName, Loc.GetString("admin-verb-make-conspirator")),
|
|
||||||
};
|
|
||||||
args.Verbs.Add(conspirator);
|
|
||||||
//WL-Changes: Conspiratrs end
|
|
||||||
|
|
||||||
if (HasComp<HumanoidAppearanceComponent>(args.Target)) // only humanoids can be cloned
|
if (HasComp<HumanoidAppearanceComponent>(args.Target)) // only humanoids can be cloned
|
||||||
args.Verbs.Add(paradox);
|
args.Verbs.Add(paradox);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
using Content.Shared.Random;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
|
|
||||||
namespace Content.Server._WL.GameTicking.Rules.Components;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Game rule for conspirators. Handles their shared objective.
|
|
||||||
/// </summary>
|
|
||||||
[RegisterComponent, Access(typeof(ConspiratorRuleSystem))]
|
|
||||||
public sealed partial class ConspiratorRuleComponent : Component
|
|
||||||
{
|
|
||||||
[DataField]
|
|
||||||
public EntProtoId? Objective = null;
|
|
||||||
|
|
||||||
[DataField]
|
|
||||||
public ProtoId<WeightedRandomPrototype> ObjectiveGroup = "ConspiratorObjectiveGroup";
|
|
||||||
}
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
using Content.Server._WL.GameTicking.Rules.Components;
|
|
||||||
using Content.Server.Antag;
|
|
||||||
using Content.Server.GameTicking;
|
|
||||||
using Content.Server.GameTicking.Rules;
|
|
||||||
using Content.Server.Roles;
|
|
||||||
using Content.Shared._WL.Conspirators.Components;
|
|
||||||
using Content.Shared._WL.Roles.Components;
|
|
||||||
using Content.Shared.GameTicking.Components;
|
|
||||||
using Content.Shared.Mind;
|
|
||||||
using Content.Shared.Random.Helpers;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
using Robust.Shared.Random;
|
|
||||||
using Robust.Shared.Utility;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace Content.Server._WL.GameTicking.Rules;
|
|
||||||
|
|
||||||
public sealed class ConspiratorRuleSystem : GameRuleSystem<ConspiratorRuleComponent>
|
|
||||||
{
|
|
||||||
[Dependency] private readonly AntagSelectionSystem _antag = default!;
|
|
||||||
[Dependency] private readonly SharedMindSystem _mind = default!;
|
|
||||||
[Dependency] private readonly IPrototypeManager _proto = default!;
|
|
||||||
[Dependency] private readonly IRobustRandom _random = default!;
|
|
||||||
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
|
|
||||||
SubscribeLocalEvent<ConspiratorRoleComponent, GetBriefingEvent>(OnGetBriefing);
|
|
||||||
SubscribeLocalEvent<ConspiratorRuleComponent, AfterAntagEntitySelectedEvent>(OnAntagSelected);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void AppendRoundEndText(EntityUid uid,
|
|
||||||
ConspiratorRuleComponent component,
|
|
||||||
GameRuleComponent gameRule,
|
|
||||||
ref RoundEndTextAppendEvent args)
|
|
||||||
{
|
|
||||||
base.AppendRoundEndText(uid, component, gameRule, ref args);
|
|
||||||
|
|
||||||
var sessionData = _antag.GetAntagIdentifiers(uid);
|
|
||||||
args.AddLine(Loc.GetString("conspirator-count", ("count", sessionData.Count)));
|
|
||||||
foreach (var (_, data, name) in sessionData)
|
|
||||||
{
|
|
||||||
args.AddLine(Loc.GetString("conspirator-name-user",
|
|
||||||
("name", name),
|
|
||||||
("username", data.UserName)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!_proto.TryIndex(component.Objective, out var objectiveProto))
|
|
||||||
return;
|
|
||||||
|
|
||||||
args.AddLine(Loc.GetString("conspirator-objective", ("objective", objectiveProto.Name)));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnGetBriefing(Entity<ConspiratorRoleComponent> ent, ref GetBriefingEvent args)
|
|
||||||
{
|
|
||||||
args.Append(Loc.GetString("conspirator-identities"));
|
|
||||||
|
|
||||||
var conspirators = AllEntityQuery<ConspiratorComponent>();
|
|
||||||
while (conspirators.MoveNext(out var id, out _))
|
|
||||||
{
|
|
||||||
args.Append(Loc.GetString("conspirator-name", ("name", Name(id))));
|
|
||||||
}
|
|
||||||
|
|
||||||
args.Append(Loc.GetString("conspirator-radio-implant"));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnAntagSelected(Entity<ConspiratorRuleComponent> ent, ref AfterAntagEntitySelectedEvent args)
|
|
||||||
{
|
|
||||||
if (!_mind.TryGetMind(args.Session, out var mindId, out var mind))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (ent.Comp.Objective is null)
|
|
||||||
{
|
|
||||||
if (GetRandomObjectivePrototype(ent.Comp, out var objectiveProtoId))
|
|
||||||
ent.Comp.Objective = objectiveProtoId;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ent.Comp.Objective is not null)
|
|
||||||
_mind.TryAddObjective(mindId, mind, ent.Comp.Objective);
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool GetRandomObjectivePrototype(ConspiratorRuleComponent comp, [NotNullWhen(true)] out EntProtoId? objectiveProto)
|
|
||||||
{
|
|
||||||
objectiveProto = null;
|
|
||||||
|
|
||||||
if (!_proto.TryIndex(comp.ObjectiveGroup, out var group))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
var objectives = group.Weights.ShallowClone();
|
|
||||||
while (_random.TryPickAndTake(objectives, out var proto))
|
|
||||||
{
|
|
||||||
objectiveProto = proto!;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
using Content.Server._WL.Objectives.Systems;
|
|
||||||
|
|
||||||
namespace Content.Server._WL.Objectives.Components;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This objective will always show as 0% complete as it is not intended to be tracked. Used for Conspirator objectives.
|
|
||||||
/// </summary>
|
|
||||||
[RegisterComponent, Access(typeof(NoCompletionObjectiveSystem))]
|
|
||||||
public sealed partial class NoCompletionObjectiveComponent : Component;
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
using Content.Server._WL.Objectives.Components;
|
|
||||||
using Content.Shared.Objectives.Components;
|
|
||||||
|
|
||||||
namespace Content.Server._WL.Objectives.Systems;
|
|
||||||
|
|
||||||
public sealed class NoCompletionObjectiveSystem : EntitySystem
|
|
||||||
{
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
|
|
||||||
SubscribeLocalEvent<NoCompletionObjectiveComponent, ObjectiveGetProgressEvent>(OnGetProgress);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnGetProgress(Entity<NoCompletionObjectiveComponent> entity, ref ObjectiveGetProgressEvent args)
|
|
||||||
{
|
|
||||||
args.Progress = 0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
using Content.Shared.StatusIcon;
|
|
||||||
using Robust.Shared.GameStates;
|
|
||||||
using Robust.Shared.Prototypes;
|
|
||||||
|
|
||||||
namespace Content.Shared._WL.Conspirators.Components;
|
|
||||||
|
|
||||||
[RegisterComponent, NetworkedComponent]
|
|
||||||
public sealed partial class ConspiratorComponent : Component
|
|
||||||
{
|
|
||||||
[DataField]
|
|
||||||
public ProtoId<FactionIconPrototype> ConspiratorIcon = "ConspiratorFaction";
|
|
||||||
|
|
||||||
public override bool SessionSpecific => true;
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
using Content.Shared._WL.Conspirators.Components;
|
|
||||||
using Content.Shared.Antag;
|
|
||||||
using Robust.Shared.GameStates;
|
|
||||||
using Robust.Shared.Player;
|
|
||||||
|
|
||||||
namespace Content.Shared._WL.Conspirators.EntitySystems;
|
|
||||||
|
|
||||||
public abstract class SharedConspiratorSystem : EntitySystem // looking at blood bound to see how the icons work
|
|
||||||
{
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
|
|
||||||
SubscribeLocalEvent<ConspiratorComponent, ComponentGetStateAttemptEvent>(OnConspiratorAttemptGetState);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnConspiratorAttemptGetState(
|
|
||||||
Entity<ConspiratorComponent> entity,
|
|
||||||
ref ComponentGetStateAttemptEvent args)
|
|
||||||
{
|
|
||||||
args.Cancelled = !CanGetState(args.Player);
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool CanGetState(ICommonSession? player)
|
|
||||||
{
|
|
||||||
if (player?.AttachedEntity is not { } uid)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return HasComp<ConspiratorComponent>(uid) || HasComp<ShowAntagIconsComponent>(uid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
using Content.Shared.Roles.Components;
|
|
||||||
using Robust.Shared.GameStates;
|
|
||||||
|
|
||||||
namespace Content.Shared._WL.Roles.Components;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Added to mind role entities to tag that they are a conspirator.
|
|
||||||
/// </summary>
|
|
||||||
[RegisterComponent, NetworkedComponent]
|
|
||||||
public sealed partial class ConspiratorRoleComponent : BaseMindRoleComponent;
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
- files: ["conspirator_greeting.ogg"]
|
|
||||||
license: "CC-BY-SA-3.0"
|
|
||||||
copyright: "Taken from TG station as heretic_gain.ogg"
|
|
||||||
source: "https://github.com/tgstation/tgstation/commit/436ba869ebcd0b60b63973fb7562f447ee655205"
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
admin-verb-make-conspirator = Сделать цель Заговорщиком.
|
|
||||||
admin-verb-text-make-conspirator = Сделать Заговорщиком
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
ent-RadioImplanterConspiracy = заговорческий радио-имплантер
|
|
||||||
.desc = { ent-BaseImplantOnlyImplanter.desc }
|
|
||||||
|
|
||||||
ent-RadioImplantConspiracy = заговорческий радио-имплант
|
|
||||||
.desc = Даёт доступ к радио-каналу заговорщиков.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
conspirator-objective-issuer = [color=#724F29]Заговорщики[/color]
|
|
||||||
conspirator-role-greeting =
|
|
||||||
Вы заговорщик.
|
|
||||||
Вы начинаешь, зная всех других заговорщиков и с имплантом радио-связи для коммуникации с ними.
|
|
||||||
Сотрудничайте и не останавливайтесь ни перед чем для воплощения заговора в реальность.
|
|
||||||
conspirator-count = Всего было {$count} заговорщиков:
|
|
||||||
conspirator-name-user = [color=white]{CAPITALIZE($name)}[/color] ([color=gray]{$username}[/color]) был заговорщиком.
|
|
||||||
conspirator-objective = Целью заговорщиков было: [color=white]{$objective}[/color].
|
|
||||||
conspirator-identities = Заговорщики это:
|
|
||||||
conspirator-name = {$name} заговорщик.
|
|
||||||
conspirator-radio-implant = Используйте свой радио-имплант для общения с другими заговорщиками (:з).
|
|
||||||
conspiracy-title = Заговор
|
|
||||||
conspiracy-description = ЗАГОВОРЩИК ПОДТВЕРЖДЁН
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
guide-entry-conspirators = Заговорщики
|
|
||||||
@@ -1,2 +1 @@
|
|||||||
chat-radio-hitin = Хитин
|
chat-radio-hitin = Хитин
|
||||||
chat-radio-conspiracy = Заговорщики
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
role-subtype-conspirator = Заговорщик
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
ent-ConspiratorUnionObjective = Захват одного из отделов станции
|
|
||||||
.desc = Захватите один из отделов станции и объявите независимость от НТ!
|
|
||||||
|
|
||||||
ent-ConspiratorGameshowObjective = Устройте шоу насмерть
|
|
||||||
.desc = Заставьте экипаж стать частью смертельного ТВ-шоу!
|
|
||||||
|
|
||||||
ent-ConspiratorTechnologyObjective = Захватите все технологии станции
|
|
||||||
.desc = Покажите экипажу прелести простой жизни. Потому что только вы достойны технологического прогресса!
|
|
||||||
|
|
||||||
ent-ConspiratorArmsObjective = Разоружите СБ и вооружитесь сами
|
|
||||||
.desc = Отберите у СБ всё оружие и вооружитесь сами. Этим корпоратским крысам ничего нельзя доверить...
|
|
||||||
|
|
||||||
ent-ConspiratorThiefObjective = Совершите величайшее ограбление всех времён!
|
|
||||||
.desc = Впишите свои имена в историю преступного мира, ограбив вашу станцию.
|
|
||||||
|
|
||||||
ent-ConspiratorMafiaObjective = Станьте криминальной семьёй
|
|
||||||
.desc = Заберитесь на вершину преступного мира станции и зацементируйте ваше превосходство над ним!
|
|
||||||
|
|
||||||
ent-ConspiratorArrestObjective = Заставьте СБ арестовывать невиновных
|
|
||||||
.desc = Продемонстрируйте корпоративную некомпетентность, показав как легко их обмануть.
|
|
||||||
|
|
||||||
ent-ConspiratorCameraObjective = Ослепите НТ на станции
|
|
||||||
.desc = Верните обычным рабочим и пассажирам право на частную жизнь.
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
roles-antag-conspirator-name = Заговорщик
|
|
||||||
roles-antag-conspirator-objective = Сотрудничайте и не останавливайтесь ни перед чем для воплощения заговора в реальность.
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ent-MindRoleConspirator = Роль Заговорщика
|
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
- Wizard
|
- Wizard
|
||||||
- Zombies
|
- Zombies
|
||||||
- Xenoborgs
|
- Xenoborgs
|
||||||
- Conspirators # WL-Changes: Conspirators
|
|
||||||
- MinorAntagonists
|
- MinorAntagonists
|
||||||
|
|
||||||
- type: guideEntry
|
- type: guideEntry
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
- type: entity
|
|
||||||
parent: BaseImplantOnlyImplanter # it's weird because this neither an NT or syndicate implanter. it's completely unobtainable though and exists more for playtesting convenience than anything
|
|
||||||
id: RadioImplanterConspiracy
|
|
||||||
name: conspiracy radio implanter
|
|
||||||
components:
|
|
||||||
- type: Implanter
|
|
||||||
implant: RadioImplantConspiracy
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
- type: entity
|
|
||||||
parent: BaseSubdermalImplant
|
|
||||||
id: RadioImplantConspiracy
|
|
||||||
categories: [ HideSpawnMenu ]
|
|
||||||
name: conspiracy radio implant
|
|
||||||
description: This implant grants access to the Conspiracy channel without a headset.
|
|
||||||
components:
|
|
||||||
- type: SubdermalImplant
|
|
||||||
- type: RadioImplant
|
|
||||||
radioChannels:
|
|
||||||
- Conspiracy
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
- type: entity
|
|
||||||
parent: BaseGameRule
|
|
||||||
id: Conspirators
|
|
||||||
components:
|
|
||||||
- type: GameRule
|
|
||||||
minPlayers: 28 # minimum of 4 conspirators
|
|
||||||
- type: ConspiratorRule
|
|
||||||
- type: AntagSelection
|
|
||||||
selectionTime: IntraPlayerSpawn
|
|
||||||
definitions:
|
|
||||||
- prefRoles: [ Conspirator ]
|
|
||||||
min: 4
|
|
||||||
max: 7
|
|
||||||
playerRatio: 7
|
|
||||||
briefing:
|
|
||||||
text: conspirator-role-greeting
|
|
||||||
color: "#724F29"
|
|
||||||
sound: /Audio/_WL/Misc/illuminati.ogg
|
|
||||||
components:
|
|
||||||
- type: Conspirator
|
|
||||||
- type: AutoImplant
|
|
||||||
implants:
|
|
||||||
- RadioImplantConspiracy
|
|
||||||
mindRoles:
|
|
||||||
- MindRoleConspirator
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
- type: guideEntry
|
|
||||||
id: Conspirators
|
|
||||||
name: guide-entry-conspirators
|
|
||||||
text: "/ServerInfo/Guidebook/_WL/Antagonist/Conspirators.xml"
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
- type: entity
|
|
||||||
abstract: true
|
|
||||||
parent: BaseObjective
|
|
||||||
id: BaseConspiratorObjective
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
issuer: conspirator-objective-issuer
|
|
||||||
difficulty: 0 # uses own system for assignment
|
|
||||||
- type: RoleRequirement
|
|
||||||
roles:
|
|
||||||
- ConspiratorRole
|
|
||||||
- type: NoCompletionObjective
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorUnionObjective
|
|
||||||
name: Forcefully seize control of a department
|
|
||||||
description: Assume direct control over a department and declare independence from Nanotrasen.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Objects/Weapons/Melee/stunprod.rsi
|
|
||||||
state: stunprod_off
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorGameshowObjective
|
|
||||||
name: Run a life-or-death game show
|
|
||||||
description: Force the crew to take part in a game show with incredible stakes.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Structures/Machines/computers.rsi
|
|
||||||
state: television
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorTechnologyObjective
|
|
||||||
name: Seize all station technology
|
|
||||||
description: Show the crew the merits of a simpler life. Because only you deserve the wonders of technology.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Structures/Machines/autolathe.rsi
|
|
||||||
state: icon
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorArmsObjective
|
|
||||||
name: Disarm Security and arm yourselves instead
|
|
||||||
description: Take the guns from Security and give them to yourselves. They cannot be trusted with them.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Objects/Weapons/Guns/Pistols/mk58.rsi
|
|
||||||
state: icon
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorThiefObjective
|
|
||||||
name: Pull off the greatest heist of all time
|
|
||||||
description: Get your names written in the history books for what you take from this station.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Objects/Tools/thief_beacon.rsi
|
|
||||||
state: extraction_point
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorMafiaObjective
|
|
||||||
name: Form a crime family
|
|
||||||
description: Become the leaders of crime on this station and cement your reputation as a group not to be messed with.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Clothing/Hands/Gloves/KnuckleDusters/brassknuckleduster.rsi
|
|
||||||
state: brassknuckleduster
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorArrestObjective
|
|
||||||
name: Trick Security into arresting innocent people
|
|
||||||
description: Demonstrate their incompetence by showing just how easy they are to fool.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Objects/Weapons/Melee/stunbaton.rsi
|
|
||||||
state: stunbaton_off
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
parent: BaseConspiratorObjective
|
|
||||||
id: ConspiratorCameraObjective
|
|
||||||
name: Dismantle the surveillance state
|
|
||||||
description: Bring back the right to privacy for Nanotrasen employees.
|
|
||||||
components:
|
|
||||||
- type: Objective
|
|
||||||
icon:
|
|
||||||
sprite: Mobs/Silicon/station_ai.rsi
|
|
||||||
state: ai_camera
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
- type: weightedRandom
|
|
||||||
id: ConspiratorObjectiveGroup # if you want to add another objective, feel free
|
|
||||||
weights:
|
|
||||||
ConspiratorUnionObjective: 1
|
|
||||||
ConspiratorGameshowObjective: 1
|
|
||||||
ConspiratorTechnologyObjective: 1
|
|
||||||
ConspiratorArmsObjective: 1
|
|
||||||
ConspiratorThiefObjective: 1
|
|
||||||
ConspiratorMafiaObjective: 1
|
|
||||||
ConspiratorArrestObjective: 1
|
|
||||||
ConspiratorCameraObjective: 1
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
- type: antag
|
|
||||||
id: Conspirator
|
|
||||||
name: roles-antag-conspirator-name
|
|
||||||
antagonist: true
|
|
||||||
setPreference: true
|
|
||||||
objective: roles-antag-conspirator-objective
|
|
||||||
guides: [ Conspirators ]
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
- type: entity
|
|
||||||
parent: BaseMindRoleAntag
|
|
||||||
id: MindRoleConspirator
|
|
||||||
name: Conspirator Role
|
|
||||||
components:
|
|
||||||
- type: ConspiratorRole
|
|
||||||
- type: MindRole
|
|
||||||
antagPrototype: Conspirator
|
|
||||||
exclusiveAntag: true
|
|
||||||
roleType: TeamAntagonist
|
|
||||||
subtype: role-subtype-conspirator
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
- type: factionIcon
|
|
||||||
id: ConspiratorFaction
|
|
||||||
isShaded: true
|
|
||||||
priority: 11
|
|
||||||
showTo:
|
|
||||||
components:
|
|
||||||
- ShowAntagIcons
|
|
||||||
- Conspirator
|
|
||||||
icon:
|
|
||||||
sprite: /Textures/_WL/Interface/Misc/job_icons.rsi
|
|
||||||
state: Conspirator
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- type: npcFaction
|
|
||||||
id: Conspirator
|
|
||||||
hostile:
|
|
||||||
- NanoTrasen
|
|
||||||
- Zombie
|
|
||||||
- SimpleHostile
|
|
||||||
- Dragon
|
|
||||||
- AllHostile
|
|
||||||
- Wizard
|
|
||||||
- Xenoborg
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
- type: gamePreset
|
|
||||||
id: Conspiracy
|
|
||||||
alias:
|
|
||||||
- conspirators
|
|
||||||
- conspirator
|
|
||||||
name: conspiracy-title
|
|
||||||
description: conspiracy-description
|
|
||||||
showInVote: false # secret
|
|
||||||
rules:
|
|
||||||
- Conspirators
|
|
||||||
- BasicStationEventScheduler
|
|
||||||
- MeteorSwarmScheduler
|
|
||||||
- SpaceTrafficControlEventScheduler
|
|
||||||
- BasicRoundstartVariation
|
|
||||||
@@ -5,11 +5,3 @@
|
|||||||
frequency: 4944
|
frequency: 4944
|
||||||
color: "#cc7722"
|
color: "#cc7722"
|
||||||
longRange: true
|
longRange: true
|
||||||
|
|
||||||
- type: radioChannel
|
|
||||||
id: Conspiracy
|
|
||||||
name: chat-radio-conspiracy
|
|
||||||
keycode: 'з'
|
|
||||||
frequency: 1174
|
|
||||||
color: "#724F29"
|
|
||||||
longRange: true
|
|
||||||
|
|||||||
@@ -3,8 +3,7 @@
|
|||||||
weights:
|
weights:
|
||||||
Extended: 0.29
|
Extended: 0.29
|
||||||
Nukeops: 0.15
|
Nukeops: 0.15
|
||||||
Traitor: 0.3
|
Traitor: 0.4
|
||||||
Conspirators: 0.1 # WL-Changes: Conspirators
|
|
||||||
#Zombie: 0.04
|
#Zombie: 0.04
|
||||||
#Zombieteors: 0.01
|
#Zombieteors: 0.01
|
||||||
Survival: 0.1
|
Survival: 0.1
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
<Document>
|
|
||||||
# Заговорщики
|
|
||||||
|
|
||||||
<Box>
|
|
||||||
[color=#999999][italic]"Мы — холодный ветер в зимний день. Мы — тень в безлунной ночи. Мы — яд в твоём чае и шёпот у твоего уха. Мы везде."[/italic][/color]
|
|
||||||
</Box>
|
|
||||||
Заговорщики — это группа из членов экипажа, которые кооперируются для воплощения заговора в жизнь. Заговорщики неотличимы от обычных работников станции, но они знают друг друга и имеют [color=cyan]заговорческий радио-имплант[/color], позволяющий им общаться друг с другом.
|
|
||||||
|
|
||||||
## Игра за заговорщика
|
|
||||||
|
|
||||||
Заговор — это просто!
|
|
||||||
- Проверьте ваше меню персонажа, узнайте личности других заговорщиков и вашу общую [bold]цель[/bold]. Эта цель является лишь предложением. Если все заговорщики пожелают сделать что-то другое, вы можете заняться уже этим.
|
|
||||||
- Используйте имплант радиосвязи [color=yellow][bold](:з)[/color][/bold] для общения с другими заговорщиками.
|
|
||||||
- Работайте с друг другом, воплощая свои замыслы в жизнь за счёт экипажа.
|
|
||||||
- Постарайтесь выбрать себе главу, ведь любой заговор нуждается в оргнизаторе.
|
|
||||||
</Document>
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 177 B |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"license": "CC-BY-SA-3.0",
|
"license": "CC-BY-SA-3.0",
|
||||||
"copyright": "By ReArtInt. Conspirator made by SuperGDPWYL (GitHub).",
|
"copyright": "By ReArtInt",
|
||||||
"size": {
|
"size": {
|
||||||
"x": 8,
|
"x": 8,
|
||||||
"y": 8
|
"y": 8
|
||||||
@@ -9,10 +9,6 @@
|
|||||||
"states": [
|
"states": [
|
||||||
{
|
{
|
||||||
"name": "Adjutant"
|
"name": "Adjutant"
|
||||||
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Conspirator"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user