* - tweak: Rev tweaks.

* - tweak: Item drop and lying tweaks.

* - tweak: No ebow stamina damage.

* - tweak: Fun tweaks.
This commit is contained in:
Aviu00
2024-06-29 20:03:28 +00:00
committed by GitHub
parent 8922181b84
commit 93943aaf95
16 changed files with 54 additions and 39 deletions

View File

@@ -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.

View File

@@ -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;
} }

View File

@@ -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)

View File

@@ -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;
} }

View File

@@ -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;
} }

View File

@@ -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

View File

@@ -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);
} }
} }
} }

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -27,6 +27,3 @@
mask: mask:
- Opaque - Opaque
- type: KnockdownOnCollide - type: KnockdownOnCollide
- type: StaminaDamageOnCollide
ignoreResistances: false
damage: 60

View File

@@ -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

View File

@@ -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:

View File

@@ -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