41 lines
893 B
C#
41 lines
893 B
C#
|
using System.Linq;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace RoR2.Achievements;
|
||
|
|
||
|
[RegisterAchievement("StayAlive1", "Items.ExtraLife", null, 3u, null)]
|
||
|
public class StayAlive1Achievement : BaseAchievement
|
||
|
{
|
||
|
private const float requirement = 1800f;
|
||
|
|
||
|
public override void OnInstall()
|
||
|
{
|
||
|
base.OnInstall();
|
||
|
RoR2Application.onUpdate += Check;
|
||
|
}
|
||
|
|
||
|
public override void OnUninstall()
|
||
|
{
|
||
|
RoR2Application.onUpdate -= Check;
|
||
|
base.OnUninstall();
|
||
|
}
|
||
|
|
||
|
private void Check()
|
||
|
{
|
||
|
NetworkUser networkUser = NetworkUser.readOnlyLocalPlayersList.FirstOrDefault((NetworkUser v) => v.localUser == base.localUser);
|
||
|
if (!networkUser)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
GameObject masterObject = networkUser.masterObject;
|
||
|
if ((bool)masterObject)
|
||
|
{
|
||
|
CharacterMaster component = masterObject.GetComponent<CharacterMaster>();
|
||
|
if ((bool)component && component.currentLifeStopwatch >= 1800f)
|
||
|
{
|
||
|
Grant();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|