status/Status.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Status
{
public bool ShouldUpdate { get; protected set; }
public Player Player { get; protected set; }
public int Level { get; set; }
public int MaxLevel { get; set; }
public TimeSince ElapsedTime { get; protected set; }
public string Title { get; protected set; }
public string Description { get; protected set; }
public string IconPath { get; protected set; }
public string DataString { get; protected set; }
public Status()
{
Level = 1;
}
public virtual void Init( Player player )
{
Player = player;
ElapsedTime = 0f;
ShouldUpdate = false;
}
// when gaining or leveling up
public virtual void Refresh()
{
}
public virtual void Update( float dt )
{
//if (ElapsedTime > 10f)
// Player.RemoveStatus(this);
}
public virtual void Remove()
{
}
public virtual string GetDescription( int newLevel )
{
return "...";
}
public virtual string GetUpgradeDescription( int newLevel )
{
return "...";
}
public virtual void Colliding( Thing other, float percent, float dt ) { }
public virtual void OnDashStarted() { }
public virtual void OnDashFinished() { }
public virtual void OnDashRecharged() { }
public virtual void OnReload() { }
//public virtual void OnBurn( Enemy enemy ) { }
//public virtual void OnFreeze( Enemy enemy ) { }
//public virtual void OnFear( Enemy enemy ) { }
public virtual void OnKill( Enemy enemy ) { }
public virtual void OnHurt( float amount ) { }
public virtual void OnGainExperience( int xp ) { }
public virtual void OnLevelUp() { }
public virtual void OnReroll() { }
public virtual void OnGainShield() { }
public virtual void OnLoseShield() { }
public virtual void OnAddStatus( int typeIdentity ) { }
}