Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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));
    }