mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-10-04 05:17:28 +00:00
New Thief minor antagonist (#21520)
* start working
* add right-click thief antagins
some architecture restruct
* add meh thief greeting audio
* add thief subgamemode to Traitors gamemode
* add late join thief (not tested yet)
add briefing
* add pacifism
* add Steal tasks to thief
* fix crash thief+traitor on person
* add new condition: collection steal
* add tracking of succes collection objective
* add stamp collection target
remove some boring steal target
add check pulling entity to collection target
* finalize first 2 group objective
* start merging stealing objective systems
* merging
* finish merging. Now traitor steal objective work better
* we don't check the items of pullable sentient entity
* clear naming, enable thief signle item objective start
* objective pack add
* finish with steal item objectives
* convert string to ProtoId<>
* some clean up
* add thieves to revolution game mode
* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
* update pacifism: fix crashing, monkey-thief without pacified
* adaptive animal briefing, cleaning locales
* add structure steal objectives
* remove RCD target
* add thiefs to manifest, but bug with traitor duplications
* add escape objective
* add chat briefing
* setup animal objective group system
* add animal steal objectives
* add animal objectives notroleconditions
* add morty
* now thief mode has a chance of not launching Now there are a random number of thieves per round from 1 to 3
* 6 hours of trying to fix duplicate tasks. Failure
* added thief pinpointer (buggy)
* start thief backpack UI work
* revert pinpointer for scope reason
* UI continue work
* add thief starter kits content
* remove ERP kit :trollface:
* finally! giving starting items to thief. Now it playable, but still need more work
* clean up
* fix
* fox
* add merged items into thief
new Starting Kit (buggy)
* fix YES antag menu
* objection tweaks
* remove hearts objective, working on spawning things from toolbox
* smug
* fixes
* add race specifier objective condition LAMPS
* meh
* fix fix fix
* the alive
* Adding stamps
* Update backpack.ftl
* Revert1
* Revert ftl
* add voice mask to communicator kit
* Update Resources/Locale/en-US/administration/antag.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/thief/backpack.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/objectives/conditions/steal.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/thief/backpack.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/thief/backpack.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/thief/backpack.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/thief/backpack.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/prototypes/roles/antags.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* Update Resources/Locale/en-US/thief/backpack.ftl
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
* update
* fix
* more reusable function, add documentation
* fix doc
* faint fixes
---------
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
(cherry picked from commit 144af233c4)
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
using Content.Server.Objectives.Systems;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.Objectives.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Requires that the player's species matches a whitelist.
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(SpeciesRequirementSystem))]
|
||||
public sealed partial class SpeciesRequirementComponent : Component
|
||||
{
|
||||
[DataField(required: true), ViewVariables(VVAccess.ReadWrite)]
|
||||
public List<ProtoId<SpeciesPrototype>> AllowedSpecies = new();
|
||||
}
|
||||
@@ -1,28 +1,64 @@
|
||||
using Content.Server.Objectives.Systems;
|
||||
using Content.Shared.Objectives;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
|
||||
namespace Content.Server.Objectives.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Requires that you steal a certain item.
|
||||
/// Requires that you steal a certain item (or several)
|
||||
/// </summary>
|
||||
[RegisterComponent, Access(typeof(StealConditionSystem))]
|
||||
public sealed partial class StealConditionComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// The id of the item to steal.
|
||||
/// A group of items to be stolen
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Works by prototype id not tags or anything so it has to be the exact item.
|
||||
/// </remarks>
|
||||
[DataField(required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>)), ViewVariables(VVAccess.ReadWrite)]
|
||||
public string Prototype = string.Empty;
|
||||
[DataField(required: true)]
|
||||
public ProtoId<StealTargetGroupPrototype> StealGroup;
|
||||
|
||||
/// <summary>
|
||||
/// When enabled, disables generation of this target if there is no entity on the map (disable for objects that can be created mid-round).
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool VerifyMapExistance = true;
|
||||
|
||||
/// <summary>
|
||||
/// If the target may be alive but has died, it will not be counted
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool CheckAlive = false;
|
||||
/// <summary>
|
||||
/// The minimum number of items you need to steal to fulfill a objective
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public int MinCollectionSize = 1;
|
||||
|
||||
/// <summary>
|
||||
/// The maximum number of items you need to steal to fulfill a objective
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public int MaxCollectionSize = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Target collection size after calculation
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public int CollectionSize;
|
||||
|
||||
/// <summary>
|
||||
/// Help newer players by saying e.g. "steal the chief engineer's advanced magboots"
|
||||
/// instead of "steal advanced magboots. Should be a loc string.
|
||||
/// </summary>
|
||||
[DataField("owner"), ViewVariables(VVAccess.ReadWrite)]
|
||||
[DataField("owner")]
|
||||
public string? OwnerText;
|
||||
|
||||
// All this need to be loc string
|
||||
[DataField(required: true)]
|
||||
public LocId ObjectiveText;
|
||||
[DataField(required: true)]
|
||||
public LocId ObjectiveNoOwnerText;
|
||||
[DataField(required: true)]
|
||||
public LocId DescriptionText;
|
||||
[DataField(required: true)]
|
||||
public LocId DescriptionMultiplyText;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using Content.Server.Objectives.Systems;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
|
||||
namespace Content.Server.Objectives.Components.Targets;
|
||||
|
||||
/// <summary>
|
||||
/// Allows an object to become the target of a StealCollection objection
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
public sealed partial class StealTargetComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// The theft group to which this item belongs.
|
||||
/// </summary>
|
||||
[DataField(required: true), ViewVariables(VVAccess.ReadWrite)]
|
||||
public string StealGroup;
|
||||
}
|
||||
Reference in New Issue
Block a user