|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
namespace rabi_splitter_WPF
|
|
|
|
|
{
|
|
|
|
|
enum InGameActivity
|
|
|
|
|
{
|
|
|
|
|
STARTING,
|
|
|
|
|
WALKING,
|
|
|
|
|
BOSS_BATTLE,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class InGameState
|
|
|
|
|
{
|
|
|
|
|
public int nRestarts;
|
|
|
|
|
public int nDeaths;
|
|
|
|
|
|
|
|
|
|
public int nDeathsAlt;
|
|
|
|
|
|
|
|
|
|
public InGameActivity currentActivity;
|
|
|
|
|
public BossFight currentBossFight;
|
|
|
|
|
public DateTime currentBossStartTime;
|
|
|
|
|
|
|
|
|
|
public BossFight lastBossFight;
|
|
|
|
|
public TimeSpan lastBossFightDuration;
|
|
|
|
|
|
|
|
|
|
public int lastNonZeroPlayTime = -1;
|
|
|
|
|
|
|
|
|
|
public InGameState()
|
|
|
|
|
{
|
|
|
|
|
currentActivity = InGameActivity.STARTING;
|
|
|
|
|
currentBossFight = null;
|
|
|
|
|
lastBossFight = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool CurrentActivityIs(InGameActivity gameActivity)
|
|
|
|
|
{
|
|
|
|
|
return currentActivity == gameActivity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool IsGameStarted()
|
|
|
|
|
{
|
|
|
|
|
return !CurrentActivityIs(InGameActivity.STARTING);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void StartBossFight(BossFight bossFight)
|
|
|
|
|
{
|
|
|
|
|
currentActivity = InGameActivity.BOSS_BATTLE;
|
|
|
|
|
currentBossStartTime = DateTime.Now;
|
|
|
|
|
currentBossFight = bossFight;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void StopBossFight()
|
|
|
|
|
{
|
|
|
|
|
currentActivity = InGameActivity.WALKING;
|
|
|
|
|
currentBossFight = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void FinishBossFight()
|
|
|
|
|
{
|
|
|
|
|
lastBossFight = currentBossFight;
|
|
|
|
|
lastBossFightDuration = (DateTime.Now - currentBossStartTime);
|
|
|
|
|
currentActivity = InGameActivity.WALKING;
|
|
|
|
|
currentBossFight = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|