yeah
This commit is contained in:
72
CheatSuspectAccount.cs
Normal file
72
CheatSuspectAccount.cs
Normal file
@@ -0,0 +1,72 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Practice6_Presnyakov
|
||||
{
|
||||
internal class CheatSuspectAccount : PlayerAccount
|
||||
{
|
||||
public int SuspicionScore { get; private set; }
|
||||
public string DetectedCheatType { get; private set; }
|
||||
|
||||
public CheatSuspectAccount(string nickname, int level, int reputation)
|
||||
: base(nickname, level, reputation)
|
||||
{
|
||||
SuspicionScore = 0;
|
||||
DetectedCheatType = "None";
|
||||
}
|
||||
|
||||
public override void PerformCheck()
|
||||
{
|
||||
int delta = 0;
|
||||
|
||||
if (Level > 50) delta += 15;
|
||||
if (Reputation < 20) delta += 20;
|
||||
|
||||
SuspicionScore = Math.Min(100, SuspicionScore + delta);
|
||||
|
||||
if (SuspicionScore >= 60)
|
||||
{
|
||||
DetectedCheatType = "Aimbot / Macro";
|
||||
} else if (SuspicionScore >= 30)
|
||||
{
|
||||
DetectedCheatType = "Suspicious behavior";
|
||||
} else
|
||||
{
|
||||
DetectedCheatType = "None";
|
||||
}
|
||||
|
||||
Console.WriteLine($"[CHECK] Anti-cheat проверка {Nickname}: SuspicionScore={SuspicionScore}, Type={DetectedCheatType}");
|
||||
WriteLog($"Anti-cheat check: +{delta} suspicion, now {SuspicionScore}, type={DetectedCheatType}");
|
||||
}
|
||||
|
||||
public override void ApplyPenalty()
|
||||
{
|
||||
if (SuspicionScore >= 80)
|
||||
{
|
||||
IsBanned = true;
|
||||
Console.WriteLine($"[PENALTY] {Nickname}: аккаунт забанен. Причина: {DetectedCheatType}");
|
||||
WriteLog("Penalty applied: BAN");
|
||||
}
|
||||
else
|
||||
{
|
||||
Reputation = Math.Max(0, Reputation - 25);
|
||||
Console.WriteLine($"[PENALTY] {Nickname}: репутация жёстко снижена до {Reputation} (anti-cheat action)");
|
||||
WriteLog("Penalty applied: reputation -25");
|
||||
}
|
||||
}
|
||||
|
||||
public new void ShowStatus()
|
||||
{
|
||||
Console.WriteLine($"[STATUS:anti-cheat] {Nickname}: Level={Level}, Rep={Reputation}, " +
|
||||
$"Banned={IsBanned}, Suspicion={SuspicionScore}, CheatType={DetectedCheatType}");
|
||||
}
|
||||
|
||||
public new void WriteLog(string msg)
|
||||
{
|
||||
Console.WriteLine($"[LOG:anti-cheat] {Nickname}: {msg}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user