using System;
using Cpp2IlInjected;
using Newtonsoft.Json;

// Token: 0x02000141 RID: 321
[Token(Token = "0x2000141")]
[Serializable]
public class GameCollection
{
	// Token: 0x06000FEB RID: 4075 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000FEB")]
	[Address(RVA = "0x36D780", Offset = "0x36C780", VA = "0x18036D780")]
	public void VerifyData()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000FEC RID: 4076 RVA: 0x00024CC4 File Offset: 0x00022EC4
	[Token(Token = "0x6000FEC")]
	[Address(RVA = "0x36C3D0", Offset = "0x36B3D0", VA = "0x18036C3D0")]
	public bool HasAchievementFlagUnlocked(int index)
	{
		return this.achievements[index].unlocked;
	}

	// Token: 0x06000FED RID: 4077 RVA: 0x00024CE8 File Offset: 0x00022EE8
	[Token(Token = "0x6000FED")]
	[Address(RVA = "0x36C950", Offset = "0x36B950", VA = "0x18036C950")]
	public void UnlockAchievementFlag(int index)
	{
		AchievementData achievementData = this.achievements[index];
		if (!achievementData.unlocked)
		{
			achievementData.Unlock();
			this.isDirty = true;
		}
	}

	// Token: 0x06000FEE RID: 4078 RVA: 0x00024D20 File Offset: 0x00022F20
	[Token(Token = "0x6000FEE")]
	[Address(RVA = "0x36D770", Offset = "0x36C770", VA = "0x18036D770")]
	public void UpdateSkin(GameSkin skin)
	{
		this.currentSkin = skin;
		this.isDirty = true;
	}

	// Token: 0x06000FEF RID: 4079 RVA: 0x00024D3C File Offset: 0x00022F3C
	[Token(Token = "0x6000FEF")]
	[Address(RVA = "0x36C690", Offset = "0x36B690", VA = "0x18036C690")]
	public int IncreaseSpeedSpellcasting()
	{
		int num = this.speedSpellcasting;
		int num2 = num + 1;
		if (num != 999999)
		{
			this.speedSpellcasting = 999999;
			this.isDirty = true;
			return 999999;
		}
		return num;
	}

	// Token: 0x06000FF0 RID: 4080 RVA: 0x00024D78 File Offset: 0x00022F78
	[Token(Token = "0x6000FF0")]
	[Address(RVA = "0x36C630", Offset = "0x36B630", VA = "0x18036C630")]
	public int IncreaseMeleeSpellcasting()
	{
		int num = this.meleeSpellcasting;
		int num2 = num + 1;
		if (num != 999999)
		{
			this.meleeSpellcasting = 999999;
			this.isDirty = true;
			return 999999;
		}
		return num;
	}

	// Token: 0x06000FF1 RID: 4081 RVA: 0x00024DB4 File Offset: 0x00022FB4
	[Token(Token = "0x6000FF1")]
	[Address(RVA = "0x36C600", Offset = "0x36B600", VA = "0x18036C600")]
	public int IncreaseManaAbsorbed(int increment)
	{
		int num = this.manaAbsorbed;
		if (num != 9999999)
		{
			this.manaAbsorbed = 9999999;
			this.isDirty = true;
			return 9999999;
		}
		return num;
	}

	// Token: 0x06000FF2 RID: 4082 RVA: 0x00024DEC File Offset: 0x00022FEC
	[Token(Token = "0x6000FF2")]
	[Address(RVA = "0x36C660", Offset = "0x36B660", VA = "0x18036C660")]
	public int IncreaseSoulAcquired(int increment)
	{
		int num = this.soulAcquired;
		if (num != 9999999)
		{
			this.soulAcquired = 9999999;
			this.isDirty = true;
			return 9999999;
		}
		return num;
	}

	// Token: 0x06000FF3 RID: 4083 RVA: 0x00024E24 File Offset: 0x00023024
	[Token(Token = "0x6000FF3")]
	[Address(RVA = "0x36C5A0", Offset = "0x36B5A0", VA = "0x18036C5A0")]
	public int IncreaseEnemyDefeated()
	{
		int num = this.enemiesDefeated;
		int num2 = num + 1;
		if (num != 999999)
		{
			this.enemiesDefeated = 999999;
			this.isDirty = true;
			return 999999;
		}
		return num;
	}

	// Token: 0x06000FF4 RID: 4084 RVA: 0x00024E60 File Offset: 0x00023060
	[Token(Token = "0x6000FF4")]
	[Address(RVA = "0x36C5D0", Offset = "0x36B5D0", VA = "0x18036C5D0")]
	public int IncreaseGameCleared()
	{
		int num = this.gameCleared;
		int num2 = num + 1;
		if (num > 999999)
		{
			this.gameCleared = (int)((ulong)999999L);
		}
		if (num != num2)
		{
			this.gameCleared = num2;
			num = num2;
			this.isDirty = true;
		}
		return num;
	}

	// Token: 0x06000FF5 RID: 4085 RVA: 0x00024EA4 File Offset: 0x000230A4
	[Token(Token = "0x6000FF5")]
	[Address(RVA = "0x36C3B0", Offset = "0x36B3B0", VA = "0x18036C3B0")]
	public void EnableTaniaPropsFlag()
	{
		if (!this.allTaniaPropsUnlocked)
		{
			this.allTaniaPropsUnlocked = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000FF6 RID: 4086 RVA: 0x00024EC8 File Offset: 0x000230C8
	[Token(Token = "0x6000FF6")]
	[Address(RVA = "0x36C390", Offset = "0x36B390", VA = "0x18036C390")]
	public void EnableMonicaPropsFlag()
	{
		if (!this.allMonicaPropsUnlocked)
		{
			this.allMonicaPropsUnlocked = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000FF7 RID: 4087 RVA: 0x00024EEC File Offset: 0x000230EC
	[Token(Token = "0x6000FF7")]
	[Address(RVA = "0x36C3C0", Offset = "0x36B3C0", VA = "0x18036C3C0")]
	public void EnableVanessaPropsFlag()
	{
		if (!this.allVanessaPropsUnlock)
		{
			this.allVanessaPropsUnlock = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000FF8 RID: 4088 RVA: 0x00024F10 File Offset: 0x00023110
	[Token(Token = "0x6000FF8")]
	[Address(RVA = "0x36C380", Offset = "0x36B380", VA = "0x18036C380")]
	public void EnableCatPropsFlag()
	{
		if (!this.allCatPropsUnlock)
		{
			this.allCatPropsUnlock = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000FF9 RID: 4089 RVA: 0x00024F34 File Offset: 0x00023134
	[Token(Token = "0x6000FF9")]
	[Address(RVA = "0x36C3A0", Offset = "0x36B3A0", VA = "0x18036C3A0")]
	public void EnableNobetaPropsFlag()
	{
		if (!this.allNobetaPropsUnlock)
		{
			this.allNobetaPropsUnlock = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000FFA RID: 4090 RVA: 0x00024F58 File Offset: 0x00023158
	[Token(Token = "0x6000FFA")]
	[Address(RVA = "0x36C370", Offset = "0x36B370", VA = "0x18036C370")]
	public void EnableBossRushTitleTipsFlag()
	{
		if (!this.bossRushTitleTips)
		{
			this.bossRushTitleTips = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000FFB RID: 4091 RVA: 0x00024F7C File Offset: 0x0002317C
	[Token(Token = "0x6000FFB")]
	[Address(RVA = "0x36C410", Offset = "0x36B410", VA = "0x18036C410")]
	public void IncreaseBossRushCleared()
	{
		this.isDirty = true;
	}

	// Token: 0x06000FFC RID: 4092 RVA: 0x00024F90 File Offset: 0x00023190
	[Token(Token = "0x6000FFC")]
	[Address(RVA = "0x36C420", Offset = "0x36B420", VA = "0x18036C420")]
	public void IncreaseBossRushPerfectCleared()
	{
		int num = this.bossRushPerfectCleared;
		string text = Game.<UISystemText>k__BackingField.GetText(1310);
		string text2 = Game.<UISystemText>k__BackingField.GetText(613);
		Game.AppearEventPrompt(text.Replace("#", text2));
		int num2 = this.bossRushPerfectCleared;
		num2++;
		this.bossRushPerfectCleared = num2;
		this.isDirty = true;
	}

	// Token: 0x06000FFD RID: 4093 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000FFD")]
	[Address(RVA = "0x36C6C0", Offset = "0x36B6C0", VA = "0x18036C6C0")]
	public bool ReachBossRushMaximumMagic()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000FFE RID: 4094 RVA: 0x00024FF4 File Offset: 0x000231F4
	[Token(Token = "0x6000FFE")]
	[Address(RVA = "0x36C9B0", Offset = "0x36B9B0", VA = "0x18036C9B0")]
	public float UpdateBossRushBestClearedTime()
	{
		BossRushData bossRush = Game.instance.gameSave.bossRush;
		float boss02Time = Game.instance.gameSave.bossRush.boss02Time;
		BossRushData bossRush2 = Game.instance.gameSave.bossRush;
		BossRushData bossRush3 = Game.instance.gameSave.bossRush;
		BossRushData bossRush4 = Game.instance.gameSave.bossRush;
		BossRushData bossRush5 = Game.instance.gameSave.bossRush;
		BossRushData bossRush6 = Game.instance.gameSave.bossRush;
		BossRushData bossRush7 = Game.instance.gameSave.bossRush;
		BossRushData bossRush8 = Game.instance.gameSave.bossRush;
		BossRushData bossRush9 = Game.instance.gameSave.bossRush;
		BossRushData bossRush10 = Game.instance.gameSave.bossRush;
		float num = this.bossRushBestClearedTime;
		if (num <= boss02Time)
		{
		}
		this.bossRushBestClearedTime = boss02Time;
		num = boss02Time;
		this.isDirty = true;
		return num;
	}

	// Token: 0x06000FFF RID: 4095 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000FFF")]
	[Address(RVA = "0x36D010", Offset = "0x36C010", VA = "0x18036D010")]
	public float UpdateBossRushBestDeadCount()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001000 RID: 4096 RVA: 0x000250E8 File Offset: 0x000232E8
	[Token(Token = "0x6001000")]
	[Address(RVA = "0x36DB30", Offset = "0x36CB30", VA = "0x18036DB30")]
	public GameCollection()
	{
	}

	// Token: 0x04001A45 RID: 6725
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4001A45")]
	public int dataVersion;

	// Token: 0x04001A46 RID: 6726
	[FieldOffset(Offset = "0x14")]
	[Token(Token = "0x4001A46")]
	public GameSkin currentSkin;

	// Token: 0x04001A47 RID: 6727
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4001A47")]
	public int speedSpellcasting;

	// Token: 0x04001A48 RID: 6728
	[FieldOffset(Offset = "0x1C")]
	[Token(Token = "0x4001A48")]
	public int meleeSpellcasting;

	// Token: 0x04001A49 RID: 6729
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4001A49")]
	public int manaAbsorbed;

	// Token: 0x04001A4A RID: 6730
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x4001A4A")]
	public int soulAcquired;

	// Token: 0x04001A4B RID: 6731
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4001A4B")]
	public int enemiesDefeated;

	// Token: 0x04001A4C RID: 6732
	[FieldOffset(Offset = "0x2C")]
	[Token(Token = "0x4001A4C")]
	public int gameCleared;

	// Token: 0x04001A4D RID: 6733
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4001A4D")]
	public AchievementData[] achievements;

	// Token: 0x04001A4E RID: 6734
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4001A4E")]
	public bool allTaniaPropsUnlocked;

	// Token: 0x04001A4F RID: 6735
	[FieldOffset(Offset = "0x39")]
	[Token(Token = "0x4001A4F")]
	public bool allMonicaPropsUnlocked;

	// Token: 0x04001A50 RID: 6736
	[FieldOffset(Offset = "0x3A")]
	[Token(Token = "0x4001A50")]
	public bool allVanessaPropsUnlock;

	// Token: 0x04001A51 RID: 6737
	[FieldOffset(Offset = "0x3B")]
	[Token(Token = "0x4001A51")]
	public bool allCatPropsUnlock;

	// Token: 0x04001A52 RID: 6738
	[FieldOffset(Offset = "0x3C")]
	[Token(Token = "0x4001A52")]
	public bool allNobetaPropsUnlock;

	// Token: 0x04001A53 RID: 6739
	[FieldOffset(Offset = "0x3D")]
	[Token(Token = "0x4001A53")]
	public bool bossRushTitleTips;

	// Token: 0x04001A54 RID: 6740
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4001A54")]
	public int bossRushCleared;

	// Token: 0x04001A55 RID: 6741
	[FieldOffset(Offset = "0x44")]
	[Token(Token = "0x4001A55")]
	public int bossRushPerfectCleared;

	// Token: 0x04001A56 RID: 6742
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x4001A56")]
	public bool bossRushMaximumMagic;

	// Token: 0x04001A57 RID: 6743
	[FieldOffset(Offset = "0x4C")]
	[Token(Token = "0x4001A57")]
	public float bossRushBestClearedTime;

	// Token: 0x04001A58 RID: 6744
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x4001A58")]
	public int bossRushBestDeadCount = (int)((ulong)4294967295L);

	// Token: 0x04001A59 RID: 6745
	[FieldOffset(Offset = "0x54")]
	[Token(Token = "0x4001A59")]
	[JsonIgnore]
	public bool isDirty;
}
