2025-09-24 11:24:38 +05:00

48 lines
1.1 KiB
C#

using Fusion;
using UnityEngine;
namespace TPSBR
{
[CreateAssetMenu(menuName = "TPSBR/Announcements/Multi Kill")]
public class MultiKillAnnouncement : Announcement
{
// PRIVATE MEMBERS
[SerializeField]
private int _kills = 2;
[SerializeField]
private bool _inRowOnly = true;
private PlayerRef _lastPlayer;
private int _lastKills;
// Announcement INTERFACE
protected override bool CheckCondition(AnnouncerContext context)
{
// Player could change (e.g. when spectating)
if (_lastPlayer != context.PlayerStatistics.PlayerRef)
{
_lastPlayer = context.PlayerStatistics.PlayerRef;
_lastKills = context.PlayerStatistics.Kills;
return false;
}
int lastKills = _lastKills;
_lastKills = context.PlayerStatistics.Kills;
if (context.PlayerStatistics.Kills > lastKills)
{
int currentKills = _inRowOnly == true ? context.PlayerStatistics.KillsInRow : context.PlayerStatistics.KillsWithoutDeath;
if (currentKills == _kills)
return true;
if (_inRowOnly == false && currentKills > _kills && currentKills % _kills == 0)
return true;
}
return false;
}
}
}