diff --git a/Content.Server/Administration/Managers/IBanManager.cs b/Content.Server/Administration/Managers/IBanManager.cs index e7bba305846..ed3fa6f39e0 100644 --- a/Content.Server/Administration/Managers/IBanManager.cs +++ b/Content.Server/Administration/Managers/IBanManager.cs @@ -48,7 +48,7 @@ public interface IBanManager /// Reason for the ban /// Number of minutes to ban for. 0 and null mean permanent /// Time when the ban was applied, used for grouping role bans - public void CreateAntagban(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableArray? hwid, string role, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan); + public void CreateAntagban(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, ImmutableTypedHwid? hwid, string role, uint? minutes, NoteSeverity severity, string reason, DateTimeOffset timeOfBan); /// /// Pardons a role ban for the specified target, username or GUID diff --git a/Content.Server/Backmen/Administration/Managers/BanManager.cs b/Content.Server/Backmen/Administration/Managers/BanManager.cs index 6cba8d5c0b0..bf90438498d 100644 --- a/Content.Server/Backmen/Administration/Managers/BanManager.cs +++ b/Content.Server/Backmen/Administration/Managers/BanManager.cs @@ -22,7 +22,7 @@ public async void CreateAntagban(NetUserId? target, string? targetUsername, NetUserId? banningAdmin, (IPAddress, int)? addressRange, - ImmutableArray? hwid, + ImmutableTypedHwid? hwid, string role, uint? minutes, NoteSeverity severity, diff --git a/Content.Server/Backmen/Economy/EconomySystem.cs b/Content.Server/Backmen/Economy/EconomySystem.cs index 150674e7a91..63aa3f6c654 100644 --- a/Content.Server/Backmen/Economy/EconomySystem.cs +++ b/Content.Server/Backmen/Economy/EconomySystem.cs @@ -20,6 +20,7 @@ using Content.Shared.CartridgeLoader; using Content.Shared.Chat; using Content.Shared.Database; +using Content.Shared.GameTicking; using Content.Shared.Inventory; using Content.Shared.Objectives.Components; using Content.Shared.PDA; diff --git a/Content.Server/Backmen/GameTicking/Rules/FleshCultRuleSystem.cs b/Content.Server/Backmen/GameTicking/Rules/FleshCultRuleSystem.cs index d1159484e86..dda79052317 100644 --- a/Content.Server/Backmen/GameTicking/Rules/FleshCultRuleSystem.cs +++ b/Content.Server/Backmen/GameTicking/Rules/FleshCultRuleSystem.cs @@ -17,6 +17,7 @@ using Content.Shared.Backmen.Abilities.Psionics; using Content.Shared.Backmen.CCVar; using Content.Shared.Backmen.Flesh; +using Content.Shared.GameTicking; using Content.Shared.GameTicking.Components; using Content.Shared.Humanoid; using Content.Shared.Mind; diff --git a/Content.Server/Backmen/Loadout/LoadoutSystem.cs b/Content.Server/Backmen/Loadout/LoadoutSystem.cs index 70955061ddb..8be83f53771 100644 --- a/Content.Server/Backmen/Loadout/LoadoutSystem.cs +++ b/Content.Server/Backmen/Loadout/LoadoutSystem.cs @@ -4,6 +4,7 @@ using Content.Server.Hands.Systems; using Content.Server.Storage.EntitySystems; using Content.Shared.Clothing.Components; +using Content.Shared.GameTicking; using Content.Shared.Inventory; using Robust.Shared.Prototypes; diff --git a/Content.Server/Backmen/Reinforcement/ReinforcementSystem.cs b/Content.Server/Backmen/Reinforcement/ReinforcementSystem.cs index a1f2227cc46..23d0d691a04 100644 --- a/Content.Server/Backmen/Reinforcement/ReinforcementSystem.cs +++ b/Content.Server/Backmen/Reinforcement/ReinforcementSystem.cs @@ -16,6 +16,7 @@ using Content.Shared.Backmen.Reinforcement; using Content.Shared.Backmen.Reinforcement.Components; using Content.Shared.Database; +using Content.Shared.GameTicking; using Content.Shared.Humanoid; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; diff --git a/Content.Server/Backmen/RoleWhitelist/WhitelistSystem.cs b/Content.Server/Backmen/RoleWhitelist/WhitelistSystem.cs index 2e84cf12691..ba0cbc2440d 100644 --- a/Content.Server/Backmen/RoleWhitelist/WhitelistSystem.cs +++ b/Content.Server/Backmen/RoleWhitelist/WhitelistSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Backmen; using Content.Shared.Backmen.WL; using Content.Shared.CombatMode.Pacification; +using Content.Shared.GameTicking; using Content.Shared.Humanoid.Prototypes; using Content.Shared.Species.Components; using JetBrains.Annotations; diff --git a/Content.Server/Backmen/Shipwrecked/ShipwreckedRuleSystem.cs b/Content.Server/Backmen/Shipwrecked/ShipwreckedRuleSystem.cs index cd1a2eb3ff8..a0d389dd5e0 100644 --- a/Content.Server/Backmen/Shipwrecked/ShipwreckedRuleSystem.cs +++ b/Content.Server/Backmen/Shipwrecked/ShipwreckedRuleSystem.cs @@ -54,6 +54,7 @@ using Content.Shared.Dataset; using Content.Shared.Doors.Components; using Content.Shared.FixedPoint; +using Content.Shared.GameTicking; using Content.Shared.GameTicking.Components; using Content.Shared.Ghost; using Content.Shared.Gravity; @@ -147,6 +148,7 @@ public sealed class ShipwreckedRuleSystem : GameRuleSystem] - private const string PlanetNames = "names_borer"; + [ValidatePrototypeId] + private const string PlanetNames = "NamesBorer"; private const int MaxPreloadOffset = 200; @@ -427,7 +429,7 @@ private void SpawnPlanet(EntityUid uid, ShipwreckedRuleComponent component) } // planetName - var planetName = SharedSalvageSystem.GetFTLName(_prototypeManager.Index(PlanetNames), seed); + var planetName = _salvageSystem.GetFTLName(_prototypeManager.Index(PlanetNames), seed); _metadata.SetEntityName(planetMapUid, planetName); // Позиция карта (точка начала) diff --git a/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs b/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs index fd0f743576e..90122c9d553 100644 --- a/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs +++ b/Content.Server/Objectives/Systems/KillPersonConditionSystem.cs @@ -84,12 +84,12 @@ private void OnPersonAssigned(EntityUid uid, PickRandomPersonComponent comp, ref } // start-backmen: centcom - private void FilterCentCom(List minds) + private void FilterCentCom(HashSet> minds) { var centcom = _prototype.Index(_ccDep); foreach (var mindId in minds.ToArray()) { - if (!_roleSystem.MindHasRole(mindId, out var job) || job.Value.Comp1.JobPrototype == null) + if (!_roleSystem.MindHasRole(mindId.Owner, out var job) || job.Value.Comp1.JobPrototype == null) { continue; } diff --git a/Resources/Prototypes/Catalog/Fills/Crates/armory.yml b/Resources/Prototypes/Catalog/Fills/Crates/armory.yml index 19dcfe970db..3864946c6a8 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/armory.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/armory.yml @@ -82,8 +82,14 @@ amount: 2 - id: ClothingHeadHelmetRiot amount: 2 - - id: WeaponShotgunEnforcerRubber + # start-backmen: rebalance + - id: WeaponLauncherM81 amount: 2 + - id: BoxGrenadeTearGas + amount: 2 + - id: BoxGrenadeNonLetal + amount: 2 + # end-backmen: rebalance - id: BoxBeanbag amount: 2 - id: RiotShield diff --git a/Resources/Prototypes/Catalog/Fills/Crates/security.yml b/Resources/Prototypes/Catalog/Fills/Crates/security.yml index b15ba4e7022..550888410b3 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/security.yml @@ -42,28 +42,6 @@ # - Pepperspray # - GrenadeTeargas -- type: entity - id: CrateSecurityRiot - parent: CrateSecgear - name: swat crate - description: Contains two sets of riot armor, helmets, shields, and enforcers loaded with beanbags. Extra ammo is included. Requires Armory access to open. - components: - - type: StorageFill - contents: - - id: ClothingOuterArmorRiot - amount: 2 - - id: ClothingHeadHelmetRiot - amount: 2 - - id: WeaponLauncherM81 #Backmen Rebalance Start - amount: 2 - - id: BoxGrenadeTearGas - amount: 2 - - id: BoxGrenadeNonLetal - amount: 2 #Backmen Rebalance End - - id: RiotShield - amount: 2 -# - SecGasmask - - type: entity id: CrateSecuritySupplies parent: CrateSecgear diff --git a/Resources/Prototypes/Corvax/Entities/Objects/Decoration/flora.yml b/Resources/Prototypes/Corvax/Entities/Objects/Decoration/flora.yml index ee7e1066caf..ff71850ac7d 100644 --- a/Resources/Prototypes/Corvax/Entities/Objects/Decoration/flora.yml +++ b/Resources/Prototypes/Corvax/Entities/Objects/Decoration/flora.yml @@ -61,9 +61,6 @@ - id: PresentRandomCash prob: 0.20 orGroup: present - - id: PresentRandomAsh - prob: 0.05 - orGroup: present receivedPopup: christmas-tree-got-gift deniedPopup: christmas-tree-no-gift requiredHoliday: FestiveSeason diff --git a/Resources/Prototypes/_Backmen/Entities/Mobs/Player/Silicons/BPLA.yml b/Resources/Prototypes/_Backmen/Entities/Mobs/Player/Silicons/BPLA.yml index 34fd717c06a..2b6578d1930 100644 --- a/Resources/Prototypes/_Backmen/Entities/Mobs/Player/Silicons/BPLA.yml +++ b/Resources/Prototypes/_Backmen/Entities/Mobs/Player/Silicons/BPLA.yml @@ -12,6 +12,91 @@ tags: - InnateDontDelete +# Borgs +- type: entity + save: false + abstract: true + id: PlayerSiliconBase #for player controlled silicons + # parent: + # - MobFlammable + # - BaseMobSpecies + components: + - type: Reactive + groups: + Acidic: [Touch] + - type: Input + context: "human" + - type: DamageOnHighSpeedImpact + damage: + types: + Blunt: 5 + soundHit: + collection: MetalThud + - type: Clickable + - type: Damageable + damageContainer: Inorganic + - type: Bloodstream + bloodReagent: Oil + bloodlossDamage: + types: + Bloodloss: + 1 + bloodlossHealDamage: + types: + Bloodloss: + -1 + - type: InteractionOutline + - type: Fixtures + fixtures: + fix1: + shape: + # Circles, cuz rotation of rectangles looks very bad + !type:PhysShapeCircle + radius: 0.35 + density: 50 + mask: + - MobMask + layer: + - MobLayer + - type: MovementSpeedModifier + baseWalkSpeed : 4 + baseSprintSpeed : 3 + - type: Sprite + noRot: true + drawdepth: Mobs + - type: Physics + bodyType: KinematicController + - type: Hands + showInHands: false + - type: Body + prototype: Drone + - type: IntrinsicRadioReceiver + - type: IntrinsicRadioTransmitter + channels: + - Binary + - type: ActiveRadio + channels: + - Binary + - Common + - type: DoAfter + - type: ComplexInteraction + - type: Examiner + - type: Puller + - type: Pullable + - type: StandingState + - type: Alerts + - type: ProtectedFromStepTriggers + slots: WITHOUT_POCKET + - type: LanguageSpeaker + currentLanguage: TauCetiBasic + - type: LanguageKnowledge #backmen: languages + speaks: + - Binary + - TauCetiBasic + understands: + - Binary + - TauCetiBasic + - type: entity name: Blue Space Drone id: BackmenDrone diff --git a/Resources/Prototypes/_Backmen/Entities/Mobs/Player/humanoids.yml b/Resources/Prototypes/_Backmen/Entities/Mobs/Player/humanoids.yml index a4f7c4984c8..d012701115b 100644 --- a/Resources/Prototypes/_Backmen/Entities/Mobs/Player/humanoids.yml +++ b/Resources/Prototypes/_Backmen/Entities/Mobs/Player/humanoids.yml @@ -29,12 +29,6 @@ - type: RandomMetadata nameSegments: [clown_basefun] - type: Clumsy - clumsyDamage: - types: - Blunt: 5 - Piercing: 4 - groups: - Burn: 3 - type: TriggerOnMobstateChange mobState: - Dead diff --git a/Resources/Prototypes/_Backmen/Personal/chara.yml b/Resources/Prototypes/_Backmen/Personal/chara.yml index 47bfafce53a..f5398a2399f 100644 --- a/Resources/Prototypes/_Backmen/Personal/chara.yml +++ b/Resources/Prototypes/_Backmen/Personal/chara.yml @@ -34,7 +34,6 @@ - type: Hypospray solutionName: pen transferAmount: 25 - clumsyFailChance: 0 - type: StaticPrice price: 500 - type: Tag