public void Undo() { Access.Data <MancalaData>(ID).Undo(); UnsortedBowls.SelectMany(x => x.StoneIDs).ForEach(x => { Access.Data <StoneData>(x).Undo(); Access.BodyData <StoneBodyData>(x).Undo(); }); UnsortedBowls.ForEach(x => Access.Data <BowlData>(x.ID).Undo()); }
private void PrepForStateChange() { Access.Data <MancalaData>(ID).PrepForStateChange(); UnsortedBowls.SelectMany(x => x.StoneIDs).ForEach(x => { Access.Data <StoneData>(x).PrepForStateChange(); Access.BodyData <StoneBodyData>(x).PrepForStateChange(); }); UnsortedBowls.ForEach(x => Access.Data <BowlData>(x.ID).PrepForStateChange()); }
private void SaveCurrentGame() { if (GameResources.Game.IsGameOver) { PlayerPrefs.DeleteKey(GameResources.Plunder.GameType.ToString()); return; } var save = new Save { StoneData = GameResources.Game.UnsortedBowls.SelectMany(x => x.StoneIDs).Select(Access.Data <StoneData>).ToList(), BowlData = GameResources.Game.UnsortedBowls.Select(x => Access.Data <BowlData>(x.ID)).ToList(), MancalaData = Access.Data <MancalaData>(GameResources.Game.ID), StoneBodyData = GameResources.Game.UnsortedBowls.SelectMany(x => x.StoneIDs).Select(Access.BodyData <StoneBodyData>).ToList(), PlunderData = Access.Data <PlunderData>(GameResources.Plunder.ID), PlunderBodyData = Access.BodyData <PlunderBodyData>(GameResources.Plunder.ID), Queue = GameResources.Queue.Save() }; PlayerPrefs.SetString(GameResources.Plunder.GameType.ToString(), JsonSerializer.ToJsonString(save)); PlayerPrefs.Save(); }