fighter/GladiatorIdentity.cs
using Sandbox;
public sealed class GladiatorIdentity : Component
{
[Property] public string FighterName { get; set; } = "Gladiateur Inconnu";
[Property] public int LegionColorIndex { get; set; } = 0;
public int RoundsSurvived { get; set; } = 0;
public int KillsThisCampaign { get; set; } = 0;
public RivalData ToData( Fighter fighter, FighterAura aura )
{
return new RivalData
{
Name = FighterName,
MaxHealth = fighter?.MaxHealth ?? 100f,
CurrentHealth = fighter?.CurrentHealth ?? 100f,
BaseBalanceRegenRate = fighter?.BaseBalanceRegenRate ?? 35f,
Aura = aura?.CurrentAura ?? 20f,
LegionColorIndex = LegionColorIndex,
RoundsSurvived = RoundsSurvived,
KillsCount = KillsThisCampaign,
IsDead = fighter?.IsDead ?? false
};
}
public void RestoreFromData( RivalData data, Fighter fighter, FighterAura aura )
{
FighterName = data.Name;
LegionColorIndex = data.LegionColorIndex;
RoundsSurvived = data.RoundsSurvived;
KillsThisCampaign = data.KillsCount;
if ( fighter != null )
{
fighter.MaxHealth = data.MaxHealth;
fighter.CurrentHealth = data.CurrentHealth;
fighter.BaseBalanceRegenRate = data.BaseBalanceRegenRate;
}
if ( aura != null )
{
aura.ApplyAuraDelta( data.Aura - aura.CurrentAura );
}
}
}