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