Tweaks (#394)
* - tweak: Rev tweaks. * - tweak: Item drop and lying tweaks. * - tweak: No ebow stamina damage. * - tweak: Fun tweaks.
This commit is contained in:
@@ -41,7 +41,7 @@ public sealed partial class RevolutionaryRuleComponent : Component
|
||||
/// Max Head Revs allowed during selection.
|
||||
/// </summary>
|
||||
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
||||
public int MaxHeadRevs = 3;
|
||||
public int MaxHeadRevs = 4;
|
||||
|
||||
/// <summary>
|
||||
/// The amount of Head Revs that will spawn per this amount of players.
|
||||
|
||||
@@ -31,6 +31,7 @@ using Content.Shared.Zombies;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Timing;
|
||||
using System.Linq;
|
||||
using Robust.Server.Player;
|
||||
|
||||
namespace Content.Server.GameTicking.Rules;
|
||||
|
||||
@@ -39,6 +40,7 @@ namespace Content.Server.GameTicking.Rules;
|
||||
/// </summary>
|
||||
public sealed class RevolutionaryRuleSystem : GameRuleSystem<RevolutionaryRuleComponent>
|
||||
{
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!; // WD
|
||||
[Dependency] private readonly IAdminLogManager _adminLogManager = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
[Dependency] private readonly AntagSelectionSystem _antagSelection = default!;
|
||||
@@ -180,7 +182,7 @@ public sealed class RevolutionaryRuleSystem : GameRuleSystem<RevolutionaryRuleCo
|
||||
continue;
|
||||
|
||||
var headRevCount =
|
||||
_antagSelection.CalculateAntagCount(ev.Players.Length, comp.PlayersPerHeadRev, comp.MaxHeadRevs);
|
||||
_antagSelection.CalculateAntagCount(_playerManager.PlayerCount, comp.PlayersPerHeadRev, comp.MaxHeadRevs); // WD EDIT
|
||||
|
||||
var headRevs = _antagSelection.ChooseAntags(headRevCount, eligiblePlayers);
|
||||
|
||||
@@ -356,6 +358,13 @@ public sealed class RevolutionaryRuleSystem : GameRuleSystem<RevolutionaryRuleCo
|
||||
_euiMan.OpenEui(new DeconvertedEui(), session);
|
||||
}
|
||||
|
||||
// WD EDIT START
|
||||
// Check for all at once gamemode
|
||||
if (!_gameTicker.GetActiveGameRules().Where(HasComp<RampingStationEventSchedulerComponent>).Any())
|
||||
_roundEnd.EndRound();
|
||||
|
||||
// WD EDIT END
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ using Content.Shared.Maps;
|
||||
using Content.Shared.Parallax;
|
||||
using Content.Shared.Shuttles.Components;
|
||||
using Content.Shared.Shuttles.Systems;
|
||||
using Content.Shared.Standing.Systems;
|
||||
using Content.Shared.StatusEffect;
|
||||
using Content.Shared.Timing;
|
||||
using Content.Shared.Whitelist;
|
||||
@@ -590,7 +591,7 @@ public sealed partial class ShuttleSystem
|
||||
continue;
|
||||
|
||||
_stuns.TryParalyze(child, _hyperspaceKnockdownTime, true, status);*/
|
||||
_standing.TryLieDown(child, dropHeldItems: true);
|
||||
_standing.TryLieDown(child, behavior: SharedStandingStateSystem.DropHeldItemsBehavior.DropIfStanding);
|
||||
|
||||
// If the guy we knocked down is on a spaced tile, throw them too
|
||||
if (grid != null)
|
||||
|
||||
@@ -29,8 +29,8 @@ public sealed class StandingStateSystem : SharedStandingStateSystem
|
||||
: Vector2.Zero;
|
||||
var dropAngle = Random.NextFloat(0.8f, 1.2f);
|
||||
|
||||
var fellEvent = new FellDownEvent(uid);
|
||||
RaiseLocalEvent(uid, fellEvent);
|
||||
// var fellEvent = new FellDownEvent(uid);
|
||||
// RaiseLocalEvent(uid, fellEvent);
|
||||
|
||||
if (!TryComp(uid, out HandsComponent? handsComp))
|
||||
return;
|
||||
@@ -61,4 +61,4 @@ public sealed class StandingStateSystem : SharedStandingStateSystem
|
||||
public sealed class FellDownEvent(EntityUid uid) : EntityEventArgs
|
||||
{
|
||||
public EntityUid Uid { get; } = uid;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,11 @@ namespace Content.Server._White.Other.CritSystem;
|
||||
public sealed partial class BloodLustComponent : Component
|
||||
{
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float SprintModifier = 1.2f;
|
||||
public float SprintModifier = 1.3f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float WalkModifier = 1.2f;
|
||||
public float WalkModifier = 1.3f;
|
||||
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float AttackRateModifier = 1.3f;
|
||||
public float AttackRateModifier = 1.5f;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Content.Shared.DoAfter;
|
||||
using Content.Shared.Gravity;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Input;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
@@ -146,17 +145,27 @@ public abstract partial class SharedStandingStateSystem : EntitySystem
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool TryLieDown(EntityUid uid, StandingStateComponent? standingState = null, bool dropHeldItems = false)
|
||||
public enum DropHeldItemsBehavior
|
||||
{
|
||||
if (!Resolve(uid, ref standingState, false) || !standingState.CanLieDown)
|
||||
return false;
|
||||
NoDrop,
|
||||
DropIfStanding,
|
||||
AlwaysDrop
|
||||
}
|
||||
|
||||
if (standingState.CurrentState is not StandingState.Standing)
|
||||
public bool TryLieDown(EntityUid uid,
|
||||
StandingStateComponent? standingState = null,
|
||||
DropHeldItemsBehavior behavior = DropHeldItemsBehavior.NoDrop)
|
||||
{
|
||||
if (!Resolve(uid, ref standingState, false) || !standingState.CanLieDown ||
|
||||
standingState.CurrentState is not StandingState.Standing)
|
||||
{
|
||||
if (behavior == DropHeldItemsBehavior.AlwaysDrop)
|
||||
RaiseLocalEvent(uid, new DropHandItemsEvent());
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Down(uid, true, dropHeldItems, standingState);
|
||||
Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, standingState);
|
||||
return true;
|
||||
}
|
||||
// WD EDIT END
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System.Linq;
|
||||
using Content.Shared.Standing;
|
||||
using Content.Shared.Standing.Systems;
|
||||
using Content.Shared.StatusEffect;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
namespace Content.Shared._White.BetrayalDagger;
|
||||
@@ -11,14 +10,14 @@ public sealed class TelefragSystem : EntitySystem
|
||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||
[Dependency] private readonly SharedStandingStateSystem _standingState = default!;
|
||||
|
||||
public void Telefrag(EntityCoordinates coords, EntityUid user, float range = 0.2f)
|
||||
public void Telefrag(EntityCoordinates coords, EntityUid user, float range = 0.4f)
|
||||
{
|
||||
var ents = new HashSet<Entity<StandingStateComponent>>();
|
||||
_lookup.GetEntitiesInRange(coords, range, ents);
|
||||
|
||||
foreach (var ent in ents.Where(ent => ent.Owner != user))
|
||||
{
|
||||
_standingState.TryLieDown(ent, ent, true);
|
||||
_standingState.TryLieDown(ent, ent, SharedStandingStateSystem.DropHeldItemsBehavior.DropIfStanding);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public sealed class KnockdownOnCollideSystem : EntitySystem
|
||||
|
||||
private void OnProjectileHit(Entity<KnockdownOnCollideComponent> ent, ref ProjectileHitEvent args)
|
||||
{
|
||||
_standing.TryLieDown(args.Target, null, true);
|
||||
_standing.TryLieDown(args.Target, null, SharedStandingStateSystem.DropHeldItemsBehavior.AlwaysDrop);
|
||||
|
||||
if (ent.Comp.BlurTime <= 0f)
|
||||
return;
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
description: uplink-gloves-north-star-desc
|
||||
productEntity: ClothingHandsGlovesNorthStar
|
||||
cost:
|
||||
Telecrystal: 8
|
||||
Telecrystal: 4
|
||||
categories:
|
||||
- UplinkWeaponry
|
||||
saleLimit: 1
|
||||
@@ -200,7 +200,7 @@
|
||||
description: uplink-explosive-grenade-desc
|
||||
productEntity: ExGrenade
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkExplosives
|
||||
|
||||
@@ -250,7 +250,7 @@
|
||||
description: uplink-whitehole-grenade-desc
|
||||
productEntity: WhiteholeGrenade
|
||||
cost:
|
||||
Telecrystal: 3
|
||||
Telecrystal: 1
|
||||
categories:
|
||||
- UplinkExplosives
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
description: uplink-cluster-grenade-desc
|
||||
productEntity: ClusterGrenade
|
||||
cost:
|
||||
Telecrystal: 8
|
||||
Telecrystal: 4
|
||||
categories:
|
||||
- UplinkExplosives
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
description: uplink-shrapnel-grenade-desc
|
||||
productEntity: GrenadeShrapnel
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkExplosives
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
description: uplink-incendiary-grenade-desc
|
||||
productEntity: GrenadeIncendiary
|
||||
cost:
|
||||
Telecrystal: 4
|
||||
Telecrystal: 2
|
||||
categories:
|
||||
- UplinkExplosives
|
||||
|
||||
@@ -511,7 +511,7 @@
|
||||
icon: { sprite: /Textures/Objects/Fun/Darts/dart_red.rsi, state: icon }
|
||||
productEntity: HypoDartBox
|
||||
cost:
|
||||
Telecrystal: 2
|
||||
Telecrystal: 1
|
||||
categories:
|
||||
- UplinkChemicals
|
||||
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
attackRate: 4
|
||||
damage:
|
||||
types:
|
||||
Blunt: 8
|
||||
Blunt: 7
|
||||
soundHit:
|
||||
collection: Punch
|
||||
animation: WeaponArcFist
|
||||
|
||||
@@ -127,6 +127,7 @@
|
||||
- type: SolutionInjectOnEmbed
|
||||
transferAmount: 7
|
||||
solution: melee
|
||||
blockSlots: NONE
|
||||
- type: SolutionTransfer
|
||||
maxTransferAmount: 7
|
||||
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
- type: TentacleGun
|
||||
- type: Gun
|
||||
soundGunshot: /Audio/Effects/gib1.ogg
|
||||
fireRate: 0.3
|
||||
fireRate: 0.5
|
||||
selectedMode: PullMob
|
||||
availableModes:
|
||||
- PullItem
|
||||
@@ -305,7 +305,7 @@
|
||||
count: 1
|
||||
- type: AmmoCounter
|
||||
- type: RechargeBasicEntityAmmo
|
||||
rechargeCooldown: 0.75
|
||||
rechargeCooldown: 1.5
|
||||
playRechargeSound: false
|
||||
- type: Sprite
|
||||
sprite: Objects/Weapons/Guns/Launchers/tentacle_gun.rsi
|
||||
|
||||
@@ -27,6 +27,3 @@
|
||||
mask:
|
||||
- Opaque
|
||||
- type: KnockdownOnCollide
|
||||
- type: StaminaDamageOnCollide
|
||||
ignoreResistances: false
|
||||
damage: 60
|
||||
|
||||
@@ -10,12 +10,11 @@
|
||||
state: icon
|
||||
- type: MeleeWeapon
|
||||
wideAnimationRotation: 90
|
||||
attackRate: 0.75
|
||||
damage:
|
||||
types:
|
||||
Slash: 20
|
||||
Piercing: 20
|
||||
Structural: 45
|
||||
Structural: 20
|
||||
soundHit:
|
||||
path: /Audio/Weapons/bladeslice.ogg
|
||||
- type: Item
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
wideAnimationRotation: 180
|
||||
damage:
|
||||
types:
|
||||
Heat: 24
|
||||
Heat: 18
|
||||
- type: Item
|
||||
size: Normal
|
||||
sprite: White/Objects/Weapons/Chaplain/godhand.rsi
|
||||
@@ -237,7 +237,7 @@
|
||||
attackRate: 4
|
||||
damage:
|
||||
types:
|
||||
Slash: 6
|
||||
Slash: 4.5
|
||||
soundHit:
|
||||
path: /Audio/Weapons/chainsaw.ogg
|
||||
params:
|
||||
@@ -268,7 +268,7 @@
|
||||
range: 2.5
|
||||
damage:
|
||||
types:
|
||||
Blunt: 15
|
||||
Blunt: 18
|
||||
- type: Item
|
||||
size: Normal
|
||||
sprite: White/Objects/Weapons/Chaplain/whip.rsi
|
||||
@@ -385,7 +385,7 @@
|
||||
damage:
|
||||
types:
|
||||
Blunt: 24
|
||||
Structural: 80
|
||||
Structural: 40
|
||||
soundHit:
|
||||
collection: HammerHit
|
||||
soundSwing:
|
||||
|
||||
@@ -906,7 +906,7 @@
|
||||
wideAnimationRotation: -135
|
||||
damage:
|
||||
types:
|
||||
Slash: 24
|
||||
Slash: 18
|
||||
soundHit:
|
||||
path: /Audio/Weapons/bladeslice.ogg
|
||||
- type: HolyWeapon
|
||||
|
||||
Reference in New Issue
Block a user