Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
20eade8
docs: RDM manager design spec
GabeHirakawa Jun 28, 2026
c5fc3cc
docs: RDM manager implementation plan
GabeHirakawa Jun 28, 2026
0d5d712
feat(rdm): scaffold RDM module + RdmConfig
GabeHirakawa Jun 28, 2026
44c2563
refactor(karma): extract shared IDamageTracker (RDM prep)
GabeHirakawa Jun 28, 2026
56762bb
feat(rdm): suspect-kill classifier
GabeHirakawa Jun 28, 2026
47babf7
feat(rdm): domain models + IRdmStore + in-memory store
GabeHirakawa Jun 28, 2026
a4f728d
feat(rdm): SQLite-backed IRdmStore
GabeHirakawa Jun 28, 2026
90448ec
test(rdm): cover SqliteRdmStore GetAllSlayDebts + delete-on-zero
GabeHirakawa Jun 28, 2026
ee26803
feat(rdm): death log listener with suspect detection + victim prompt
GabeHirakawa Jun 28, 2026
9c51a3c
fix(rdm): observe/log death-write failures (no silent swallow)
GabeHirakawa Jun 28, 2026
fd27f39
feat(rdm): case manager (report lifecycle + staff notify)
GabeHirakawa Jun 28, 2026
4fa7bef
fix(rdm): ClaimNext oldest-first by construction + ordering test
GabeHirakawa Jun 28, 2026
3be98fc
feat(rdm): !rdm victim report command
GabeHirakawa Jun 28, 2026
f92917a
feat(rdm): staff !cases and !info commands
GabeHirakawa Jun 28, 2026
b68a1c9
fix(rdm): correct RDM_INFO placeholder order + guard with positional …
GabeHirakawa Jun 28, 2026
3743d1c
feat(rdm): slay service + round-start slay queue
GabeHirakawa Jun 28, 2026
a2a3c75
feat(rdm): staff !handle and !verdict commands
GabeHirakawa Jun 28, 2026
503fb95
feat(rdm): production wiring + CS2 cvar config + e2e test
GabeHirakawa Jun 28, 2026
3826d0e
fix(rdm): register CS2 cvars + serialize SQLite store access (final r…
GabeHirakawa Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 136 additions & 3 deletions TTT.sln
Original file line number Diff line number Diff line change
Expand Up @@ -31,72 +31,205 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpecialRound", "TTT\Special
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpecialRoundAPI", "TTT\SpecialRoundAPI\SpecialRoundAPI.csproj", "{360FEF16-54DA-42EE-995A-3D31C699287D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TTT", "TTT", "{25037950-9138-9D8C-8669-C9001530CD3B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RDM", "TTT\RDM\RDM.csproj", "{2D21D87A-E594-4A7B-AC18-D307CC9A6596}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Debug|x64.ActiveCfg = Debug|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Debug|x64.Build.0 = Debug|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Debug|x86.ActiveCfg = Debug|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Debug|x86.Build.0 = Debug|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Release|Any CPU.Build.0 = Release|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Release|x64.ActiveCfg = Release|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Release|x64.Build.0 = Release|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Release|x86.ActiveCfg = Release|Any CPU
{A7B58A1F-7C15-423B-B008-30E38D0E2135}.Release|x86.Build.0 = Release|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Debug|x64.ActiveCfg = Debug|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Debug|x64.Build.0 = Debug|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Debug|x86.ActiveCfg = Debug|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Debug|x86.Build.0 = Debug|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Release|Any CPU.Build.0 = Release|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Release|x64.ActiveCfg = Release|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Release|x64.Build.0 = Release|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Release|x86.ActiveCfg = Release|Any CPU
{581DA648-28A9-4E6F-9E1C-7DD19B90C10F}.Release|x86.Build.0 = Release|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Debug|x64.ActiveCfg = Debug|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Debug|x64.Build.0 = Debug|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Debug|x86.ActiveCfg = Debug|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Debug|x86.Build.0 = Debug|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Release|Any CPU.Build.0 = Release|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Release|x64.ActiveCfg = Release|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Release|x64.Build.0 = Release|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Release|x86.ActiveCfg = Release|Any CPU
{D0424929-808F-49F8-9894-DDD770F55B7C}.Release|x86.Build.0 = Release|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Debug|x64.ActiveCfg = Debug|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Debug|x64.Build.0 = Debug|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Debug|x86.ActiveCfg = Debug|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Debug|x86.Build.0 = Debug|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Release|Any CPU.Build.0 = Release|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Release|x64.ActiveCfg = Release|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Release|x64.Build.0 = Release|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Release|x86.ActiveCfg = Release|Any CPU
{A595E6E3-A881-4524-8E5D-DE65106E1DD5}.Release|x86.Build.0 = Release|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Debug|x64.ActiveCfg = Debug|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Debug|x64.Build.0 = Debug|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Debug|x86.ActiveCfg = Debug|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Debug|x86.Build.0 = Debug|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Release|Any CPU.Build.0 = Release|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Release|x64.ActiveCfg = Release|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Release|x64.Build.0 = Release|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Release|x86.ActiveCfg = Release|Any CPU
{C41F5E15-2E28-4D14-A9F8-06FEADD24F2D}.Release|x86.Build.0 = Release|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Debug|x64.ActiveCfg = Debug|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Debug|x64.Build.0 = Debug|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Debug|x86.ActiveCfg = Debug|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Debug|x86.Build.0 = Debug|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Release|Any CPU.Build.0 = Release|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Release|x64.ActiveCfg = Release|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Release|x64.Build.0 = Release|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Release|x86.ActiveCfg = Release|Any CPU
{7AABCDC7-14BE-437C-BD41-C765CAB82F0E}.Release|x86.Build.0 = Release|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Debug|x64.ActiveCfg = Debug|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Debug|x64.Build.0 = Debug|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Debug|x86.ActiveCfg = Debug|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Debug|x86.Build.0 = Debug|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Release|Any CPU.Build.0 = Release|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Release|x64.ActiveCfg = Release|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Release|x64.Build.0 = Release|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Release|x86.ActiveCfg = Release|Any CPU
{B5F91489-CD1B-42F2-9CF0-889604BD7C7E}.Release|x86.Build.0 = Release|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Debug|x64.ActiveCfg = Debug|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Debug|x64.Build.0 = Debug|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Debug|x86.ActiveCfg = Debug|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Debug|x86.Build.0 = Debug|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Release|Any CPU.Build.0 = Release|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Release|x64.ActiveCfg = Release|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Release|x64.Build.0 = Release|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Release|x86.ActiveCfg = Release|Any CPU
{478416D7-4996-41CC-BDDF-5BF50B505D0F}.Release|x86.Build.0 = Release|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Debug|x64.ActiveCfg = Debug|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Debug|x64.Build.0 = Debug|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Debug|x86.ActiveCfg = Debug|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Debug|x86.Build.0 = Debug|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Release|Any CPU.Build.0 = Release|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Release|x64.ActiveCfg = Release|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Release|x64.Build.0 = Release|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Release|x86.ActiveCfg = Release|Any CPU
{AFC791EC-750C-423F-9F35-87636657E990}.Release|x86.Build.0 = Release|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Debug|x64.ActiveCfg = Debug|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Debug|x64.Build.0 = Debug|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Debug|x86.Build.0 = Debug|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Release|Any CPU.Build.0 = Release|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Release|x64.ActiveCfg = Release|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Release|x64.Build.0 = Release|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Release|x86.ActiveCfg = Release|Any CPU
{16F720B5-9D45-47BF-8C80-4F91005E36D1}.Release|x86.Build.0 = Release|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Debug|x64.ActiveCfg = Debug|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Debug|x64.Build.0 = Debug|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Debug|x86.ActiveCfg = Debug|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Debug|x86.Build.0 = Debug|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Release|Any CPU.Build.0 = Release|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Release|x64.ActiveCfg = Release|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Release|x64.Build.0 = Release|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Release|x86.ActiveCfg = Release|Any CPU
{8A426E84-45DA-4558-A218-E042F1AC60B2}.Release|x86.Build.0 = Release|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Debug|x64.ActiveCfg = Debug|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Debug|x64.Build.0 = Debug|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Debug|x86.ActiveCfg = Debug|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Debug|x86.Build.0 = Debug|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Release|Any CPU.Build.0 = Release|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Release|x64.ActiveCfg = Release|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Release|x64.Build.0 = Release|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Release|x86.ActiveCfg = Release|Any CPU
{256473A2-6ACD-440C-83FA-6056147656C7}.Release|x86.Build.0 = Release|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Debug|x64.ActiveCfg = Debug|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Debug|x64.Build.0 = Debug|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Debug|x86.ActiveCfg = Debug|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Debug|x86.Build.0 = Debug|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Release|Any CPU.Build.0 = Release|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Release|x64.ActiveCfg = Release|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Release|x64.Build.0 = Release|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Release|x86.ActiveCfg = Release|Any CPU
{5092069A-3CFA-41C8-B685-341040AB435C}.Release|x86.Build.0 = Release|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Debug|x64.ActiveCfg = Debug|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Debug|x64.Build.0 = Debug|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Debug|x86.ActiveCfg = Debug|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Debug|x86.Build.0 = Debug|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Release|Any CPU.Build.0 = Release|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Release|x64.ActiveCfg = Release|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Release|x64.Build.0 = Release|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Release|x86.ActiveCfg = Release|Any CPU
{360FEF16-54DA-42EE-995A-3D31C699287D}.Release|x86.Build.0 = Release|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Debug|x64.ActiveCfg = Debug|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Debug|x64.Build.0 = Debug|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Debug|x86.ActiveCfg = Debug|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Debug|x86.Build.0 = Debug|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Release|Any CPU.Build.0 = Release|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Release|x64.ActiveCfg = Release|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Release|x64.Build.0 = Release|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Release|x86.ActiveCfg = Release|Any CPU
{2D21D87A-E594-4A7B-AC18-D307CC9A6596}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{2D21D87A-E594-4A7B-AC18-D307CC9A6596} = {25037950-9138-9D8C-8669-C9001530CD3B}
EndGlobalSection
EndGlobal
1 change: 1 addition & 0 deletions TTT/CS2/CS2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<ProjectReference Include="..\API\API.csproj"/>
<ProjectReference Include="..\Game\Game.csproj"/>
<ProjectReference Include="..\Karma\Karma.csproj"/>
<ProjectReference Include="..\RDM\RDM.csproj"/>
<ProjectReference Include="..\ShopAPI\ShopAPI.csproj"/>
<ProjectReference Include="..\SpecialRoundAPI\SpecialRoundAPI.csproj"/>
</ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions TTT/CS2/CS2ServiceCollection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
using TTT.Game;
using TTT.Karma;
using TTT.Locale;
using TTT.RDM;

namespace TTT.CS2;

Expand All @@ -51,6 +52,7 @@ public static void AddCS2Services(this IServiceCollection collection) {
collection
.AddModBehavior<IStorage<PoisonSmokeConfig>, CS2PoisonSmokeConfig>();
collection.AddModBehavior<IStorage<KarmaConfig>, CS2KarmaConfig>();
collection.AddModBehavior<IStorage<RdmConfig>, CS2RdmConfig>();
collection.AddModBehavior<IStorage<CamoConfig>, CS2CamoConfig>();
collection.AddModBehavior<IStorage<StickersConfig>, CS2StickersConfig>();
collection.AddModBehavior<IStorage<BodyPaintConfig>, CS2BodyPaintConfig>();
Expand Down
71 changes: 71 additions & 0 deletions TTT/CS2/Configs/CS2RdmConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
using CounterStrikeSharp.API;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Cvars;
using CounterStrikeSharp.API.Modules.Cvars.Validators;
using TTT.API;
using TTT.API.Storage;
using TTT.RDM;

namespace TTT.CS2.Configs;

public class CS2RdmConfig : IStorage<RdmConfig>, IPluginModule {
public static readonly FakeConVar<string> CV_DB_STRING = new(
"css_ttt_rdm_db_string", "Database connection string for RDM storage",
"Data Source=rdm.db");

public static readonly FakeConVar<int> CV_TRAITOR_SLAYS = new(
"css_ttt_rdm_traitor_slays", "Slays when the RDM victim was a Traitor", 5,
ConVarFlags.FCVAR_NONE, new RangeValidator<int>(0, 100));

public static readonly FakeConVar<int> CV_DETECTIVE_SLAYS = new(
"css_ttt_rdm_detective_slays", "Slays when the RDM victim was a Detective",
5, ConVarFlags.FCVAR_NONE, new RangeValidator<int>(0, 100));

public static readonly FakeConVar<int> CV_INNOCENT_SLAYS = new(
"css_ttt_rdm_innocent_slays", "Slays when the RDM victim was an Innocent",
3, ConVarFlags.FCVAR_NONE, new RangeValidator<int>(0, 100));

public static readonly FakeConVar<bool> CV_NOTIFY_ADMINS = new(
"css_ttt_rdm_notify_admins", "Message online staff when a report is filed",
true);

public static readonly FakeConVar<bool> CV_AUTO_PROMPT = new(
"css_ttt_rdm_auto_prompt", "Prompt victims to report after a suspect kill",
true);

public static readonly FakeConVar<int> CV_REPORT_WINDOW = new(
"css_ttt_rdm_report_window_seconds",
"Seconds after a death during which a victim may report it", 60,
ConVarFlags.FCVAR_NONE, new RangeValidator<int>(1, 3600));

public static readonly FakeConVar<int> CV_MAX_REPORTS = new(
"css_ttt_rdm_max_reports_per_round",
"Max reports a single victim may file per round", 3,
ConVarFlags.FCVAR_NONE, new RangeValidator<int>(1, 100));

public static readonly FakeConVar<string> CV_STAFF_FLAG = new(
"css_ttt_rdm_staff_flag", "Admin flag required for RDM staff commands",
"@ttt/admin");

public void Dispose() { }
public void Start() { }

public void Start(BasePlugin? plugin) {
ArgumentNullException.ThrowIfNull(plugin, nameof(plugin));
plugin.RegisterFakeConVars(this);
}

public Task<RdmConfig?> Load() {
return Task.FromResult<RdmConfig?>(new RdmConfig {
DbString = CV_DB_STRING.Value,
TraitorSlays = CV_TRAITOR_SLAYS.Value,
DetectiveSlays = CV_DETECTIVE_SLAYS.Value,
InnocentSlays = CV_INNOCENT_SLAYS.Value,
NotifyAdmins = CV_NOTIFY_ADMINS.Value,
AutoPromptOnSuspectKill = CV_AUTO_PROMPT.Value,
ReportWindowSeconds = CV_REPORT_WINDOW.Value,
MaxReportsPerVictimPerRound = CV_MAX_REPORTS.Value,
StaffFlag = CV_STAFF_FLAG.Value
});
}
}
Loading
Loading