public CrushChipsMeta FlipStackAt(int position) //Doesn't actually flip the UI stack, only flips the the chips meta { ReverseOrderAt(position, chips); for (int i = position; i < chips.Count; i++) { ChipMeta chip = chips [i]; chip.Flip(); chip.stackPos = i; } CrushChipsMeta crushingChips = CheckForCrushingChips(position); foreach (ChipMeta meta in crushingChips.crushedChips) { RemoveAt(meta.stackPos); } return(crushingChips); }
public static GameStacksMeta CreateFromGameGeneratorMeta(GameGeneratorMeta meta, PrefabsManager manager) { StackMeta startStack = new StackMeta(); for (int i = 0; i < meta.ChipIDs.Length; i++) { ChipMeta chipMeta = manager.GetChipMeta(meta.ChipIDs [i]); chipMeta.CrushWeight = meta.CrushWeights [i]; if (meta.InitFlips [i]) { chipMeta.Flip(); } startStack.Add(chipMeta); } startStack.CleanupStackForCrushedChips(0); StackMeta targetStack = startStack.Copy(); targetStack.Permute(meta.Flips); return(new GameStacksMeta(startStack, targetStack, meta.Flips.Length)); }