using System;
using Cpp2IlInjected;
using Newtonsoft.Json;

// Token: 0x02000117 RID: 279
[Token(Token = "0x2000117")]
[Serializable]
public class GameCollection
{
	// Token: 0x06000EB0 RID: 3760 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6000EB0")]
	[Address(RVA = "0x53AE20", Offset = "0x539C20", VA = "0x18053AE20")]
	public void VerifyData()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06000EB1 RID: 3761 RVA: 0x00022DA4 File Offset: 0x00020FA4
	[Token(Token = "0x6000EB1")]
	[Address(RVA = "0x53AC50", Offset = "0x539A50", VA = "0x18053AC50")]
	public bool HasAchievementFlagUnlocked(int index)
	{
		return this.achievements[index].unlocked;
	}

	// Token: 0x06000EB2 RID: 3762 RVA: 0x00022DC8 File Offset: 0x00020FC8
	[Token(Token = "0x6000EB2")]
	[Address(RVA = "0x53ADB0", Offset = "0x539BB0", VA = "0x18053ADB0")]
	public void UnlockAchievementFlag(int index)
	{
		AchievementData achievementData = this.achievements[index];
		if (!achievementData.unlocked)
		{
			achievementData.Unlock();
			this.isDirty = true;
		}
	}

	// Token: 0x06000EB3 RID: 3763 RVA: 0x00022E00 File Offset: 0x00021000
	[Token(Token = "0x6000EB3")]
	[Address(RVA = "0x53AE10", Offset = "0x539C10", VA = "0x18053AE10")]
	public void UpdateSkin(GameSkin skin)
	{
		this.currentSkin = skin;
		this.isDirty = true;
	}

	// Token: 0x06000EB4 RID: 3764 RVA: 0x00022E1C File Offset: 0x0002101C
	[Token(Token = "0x6000EB4")]
	[Address(RVA = "0x53AD80", Offset = "0x539B80", VA = "0x18053AD80")]
	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: 0x06000EB5 RID: 3765 RVA: 0x00022E58 File Offset: 0x00021058
	[Token(Token = "0x6000EB5")]
	[Address(RVA = "0x53AD20", Offset = "0x539B20", VA = "0x18053AD20")]
	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: 0x06000EB6 RID: 3766 RVA: 0x00022E94 File Offset: 0x00021094
	[Token(Token = "0x6000EB6")]
	[Address(RVA = "0x53ACF0", Offset = "0x539AF0", VA = "0x18053ACF0")]
	public int IncreaseManaAbsorbed(int increment)
	{
		int num = this.manaAbsorbed;
		if (num != 9999999)
		{
			this.manaAbsorbed = 9999999;
			this.isDirty = true;
			return 9999999;
		}
		return num;
	}

	// Token: 0x06000EB7 RID: 3767 RVA: 0x00022ECC File Offset: 0x000210CC
	[Token(Token = "0x6000EB7")]
	[Address(RVA = "0x53AD50", Offset = "0x539B50", VA = "0x18053AD50")]
	public int IncreaseSoulAcquired(int increment)
	{
		int num = this.soulAcquired;
		if (num != 9999999)
		{
			this.soulAcquired = 9999999;
			this.isDirty = true;
			return 9999999;
		}
		return num;
	}

	// Token: 0x06000EB8 RID: 3768 RVA: 0x00022F04 File Offset: 0x00021104
	[Token(Token = "0x6000EB8")]
	[Address(RVA = "0x53AC90", Offset = "0x539A90", VA = "0x18053AC90")]
	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: 0x06000EB9 RID: 3769 RVA: 0x00022F40 File Offset: 0x00021140
	[Token(Token = "0x6000EB9")]
	[Address(RVA = "0x53ACC0", Offset = "0x539AC0", VA = "0x18053ACC0")]
	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: 0x06000EBA RID: 3770 RVA: 0x00022F84 File Offset: 0x00021184
	[Token(Token = "0x6000EBA")]
	[Address(RVA = "0x53AC30", Offset = "0x539A30", VA = "0x18053AC30")]
	public void EnableTaniaPropsFlag()
	{
		if (!this.allTaniaPropsUnlocked)
		{
			this.allTaniaPropsUnlocked = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000EBB RID: 3771 RVA: 0x00022FA8 File Offset: 0x000211A8
	[Token(Token = "0x6000EBB")]
	[Address(RVA = "0x53AC10", Offset = "0x539A10", VA = "0x18053AC10")]
	public void EnableMonicaPropsFlag()
	{
		if (!this.allMonicaPropsUnlocked)
		{
			this.allMonicaPropsUnlocked = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000EBC RID: 3772 RVA: 0x00022FCC File Offset: 0x000211CC
	[Token(Token = "0x6000EBC")]
	[Address(RVA = "0x53AC40", Offset = "0x539A40", VA = "0x18053AC40")]
	public void EnableVanessaPropsFlag()
	{
		if (!this.allVanessaPropsUnlock)
		{
			this.allVanessaPropsUnlock = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000EBD RID: 3773 RVA: 0x00022FF0 File Offset: 0x000211F0
	[Token(Token = "0x6000EBD")]
	[Address(RVA = "0x53AC00", Offset = "0x539A00", VA = "0x18053AC00")]
	public void EnableCatPropsFlag()
	{
		if (!this.allCatPropsUnlock)
		{
			this.allCatPropsUnlock = true;
			this.isDirty = true;
		}
	}

	// Token: 0x06000EBE RID: 3774 RVA: 0x00023014 File Offset: 0x00021214
	[Token(Token = "0x6000EBE")]
	[Address(RVA = "0x53AC20", Offset = "0x539A20", VA = "0x18053AC20")]
	public void EnableNobetaPropsFlag()
	{
		if (!this.allNobetaPropsUnlock)
		{
			this.allNobetaPropsUnlock = true;
		}
	}

	// Token: 0x06000EBF RID: 3775 RVA: 0x00023034 File Offset: 0x00021234
	[Token(Token = "0x6000EBF")]
	[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
	public GameCollection()
	{
	}

	// Token: 0x04001930 RID: 6448
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4001930")]
	public int dataVersion;

	// Token: 0x04001931 RID: 6449
	[FieldOffset(Offset = "0x14")]
	[Token(Token = "0x4001931")]
	public GameSkin currentSkin;

	// Token: 0x04001932 RID: 6450
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4001932")]
	public int speedSpellcasting;

	// Token: 0x04001933 RID: 6451
	[FieldOffset(Offset = "0x1C")]
	[Token(Token = "0x4001933")]
	public int meleeSpellcasting;

	// Token: 0x04001934 RID: 6452
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4001934")]
	public int manaAbsorbed;

	// Token: 0x04001935 RID: 6453
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x4001935")]
	public int soulAcquired;

	// Token: 0x04001936 RID: 6454
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4001936")]
	public int enemiesDefeated;

	// Token: 0x04001937 RID: 6455
	[FieldOffset(Offset = "0x2C")]
	[Token(Token = "0x4001937")]
	public int gameCleared;

	// Token: 0x04001938 RID: 6456
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4001938")]
	public AchievementData[] achievements;

	// Token: 0x04001939 RID: 6457
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4001939")]
	public bool allTaniaPropsUnlocked;

	// Token: 0x0400193A RID: 6458
	[FieldOffset(Offset = "0x39")]
	[Token(Token = "0x400193A")]
	public bool allMonicaPropsUnlocked;

	// Token: 0x0400193B RID: 6459
	[FieldOffset(Offset = "0x3A")]
	[Token(Token = "0x400193B")]
	public bool allVanessaPropsUnlock;

	// Token: 0x0400193C RID: 6460
	[FieldOffset(Offset = "0x3B")]
	[Token(Token = "0x400193C")]
	public bool allCatPropsUnlock;

	// Token: 0x0400193D RID: 6461
	[FieldOffset(Offset = "0x3C")]
	[Token(Token = "0x400193D")]
	public bool allNobetaPropsUnlock;

	// Token: 0x0400193E RID: 6462
	[FieldOffset(Offset = "0x3D")]
	[Token(Token = "0x400193E")]
	[JsonIgnore]
	public bool isDirty;
}
