Compare commits

..

7 Commits
dev ... 2.0.2

Author SHA1 Message Date
Isaac
042c48c0a6 Fix logic of round conflicts (#188) 2025-11-10 15:34:58 -08:00
Isaac
c40c89b624 Fix Vanilla Round Inversion (#187) 2025-11-10 14:48:30 -08:00
Isaac
1df2722ce7 Force rebuild for new major 2.0.0 (#186) 2025-11-10 14:39:02 -08:00
Isaac
9079fe6c41 BREAKING CHANGES: New Special Rounds and Updates +semver:major (#185)
## Shop
- Added the ability for multiple special rounds to occur at once
- Added Rich and Low Grav Rounds
- Overhauled the Poison Gun
  - Only pistol shots count towards poison bullet usage
  - Poison bullets will be silent when shot
- Item descriptions will now be printed upon purchase

## Fixes
- Reduced the volume of the Special Round cue
- Increased the strictness of Karma
- Miscellaneous bug fixes
2025-11-10 14:15:29 -08:00
Isaac
2b04486e65 feat: Add tripwire defuse reward (#179) 2025-11-08 22:33:44 -08:00
Isaac
3b97c77065 +semver:patch (#178) 2025-11-08 22:13:00 -08:00
Isaac
83715fff1f Station Stacking and Round Start Sound Cue
- Added special round start sound cue
- Multiple Damage / Hurt Stations will now stack their effects
2025-11-08 22:04:01 -08:00
9 changed files with 10 additions and 14 deletions

View File

@@ -13,7 +13,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
with:
fetch-depth: 0
fetch-tags: true
@@ -51,7 +51,7 @@ jobs:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
- name: Setup .NET
uses: actions/setup-dotnet@v5

View File

@@ -18,7 +18,7 @@ jobs:
MAX_CHANGELOG_CHARS: "50000"
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
with:
fetch-depth: 0
fetch-tags: true

View File

@@ -10,7 +10,7 @@ namespace TTT.CS2.Configs.ShopItems;
public class CS2CamoConfig : IStorage<CamoConfig>, IPluginModule {
public static readonly FakeConVar<int> CV_PRICE = new(
"css_ttt_shop_camo_price", "Price of the Camo item", 65,
"css_ttt_shop_camo_price", "Price of the Camo item", 75,
ConVarFlags.FCVAR_NONE, new RangeValidator<int>(0, 10000));
public static readonly FakeConVar<float> CV_CAMO_VISIBILITY = new(

View File

@@ -78,7 +78,7 @@ public class PoisonShotsListener(IServiceProvider provider)
if (ev.Attacker == null) return;
if (!poisonShots.TryGetValue(ev.Attacker, out var shot) || shot <= 0)
return;
if (ev.Weapon == null || !Tag.PISTOLS.Contains(ev.Weapon)) return;
if (ev.Weapon == null || !Tag.GUNS.Contains(ev.Weapon)) return;
Messenger.Message(ev.Attacker,
Locale[PoisonShotMsgs.SHOP_ITEM_POISON_HIT(ev.Player)]);
addPoisonEffect(ev.Player, ev.Attacker);

View File

@@ -25,9 +25,6 @@ public class AutoRTDCommand(IServiceProvider provider) : ICommand, IListener {
private readonly IMsgLocalizer localizer =
provider.GetRequiredService<IMsgLocalizer>();
private readonly IPermissionManager perms =
provider.GetRequiredService<IPermissionManager>();
private readonly Dictionary<string, bool> playerStatuses = new();
private ICookie? autoRtdCookie;
public string Id => "autortd";
@@ -78,10 +75,9 @@ public class AutoRTDCommand(IServiceProvider provider) : ICommand, IListener {
[UsedImplicitly]
[EventHandler]
public void OnRoundStart(GameInitEvent ev) {
var messenger = provider.GetRequiredService<IMessenger>();
Task.Run(async () => {
foreach (var player in finder.GetOnline()) {
if (!perms.HasFlags(player, RequiredFlags)) continue;
if (!playerStatuses.TryGetValue(player.Id, out var status)) {
await fetchCookie(player);
status = playerStatuses.GetValueOrDefault(player.Id, false);

View File

@@ -1,7 +1,7 @@
namespace ShopAPI.Configs;
public record ArmorConfig : ShopItemConfig {
public override int Price { get; init; } = 75;
public override int Price { get; init; } = 60;
public int Armor { get; init; } = 100;
public bool Helmet { get; init; } = true;
}

View File

@@ -1,6 +1,6 @@
namespace ShopAPI.Configs;
public record CamoConfig : ShopItemConfig {
public override int Price { get; init; } = 65;
public override int Price { get; init; } = 75;
public float CamoVisibility { get; init; } = 0.6f;
}

View File

@@ -82,7 +82,7 @@ public class SpeedRound(IServiceProvider provider)
public void OnDeath(PlayerDeathEvent ev) {
var game = games.ActiveGame;
if (game == null) return;
if (!Tracker.ActiveRounds.Contains(this)) return;
if (Tracker.ActiveRounds.Contains(this)) return;
var victimRoles = roles.GetRoles(ev.Victim);
if (!victimRoles.Any(r => r is InnocentRole)) return;

View File

@@ -1,5 +1,5 @@
namespace SpecialRoundAPI.Configs;
public record SilentRoundConfig : SpecialRoundConfig {
public override float Weight { get; init; } = 0.2f;
public override float Weight { get; init; } = 0.5f;
}