Пример #1
0
    public void AddScoop(Scoop scoop)
    {
        // Debug_ScoopList("Adding scoop: " + scoop.flavor + " to scoop List", scoopStack);
        // Debug_ScoopList("scoop.scoopStack: ",scoop.scoopStack);
        if (scoop.scoopStack.Count > 0)
        {
            return;
        }
        scoop.CalculateConsecutiveFlavors(scoopStack);
        scoopStack.Add(scoop);
        StartCoroutine(BounceScoops());
        List <StackNode> matches = CheckMatch(scoopStack);

        if (matches.Count > 0)
        {
            Debug.Log("mathces found: " + matches);
            if (handlingMatch)
            {
                StopCoroutine(handleMatchRoutine);
            }
            handleMatchRoutine = StartCoroutine(HandleMatch(matches));
        }
        else if (StackHeight() == board.numberOfRows + 1)
        {
            // Allow the user to be quick if their stack reaches the very top.
            // Also allows the user to catch falling scoops to make a match of 3 at the very top
            board.GameOver();
        }
        // Debug_ScoopList("ScoopStack after merging flying stack: ", scoopStack);
    }
Пример #2
0
 private void PutScoopOnStack(Scoop scoop)
 {
     scoop.CalculateConsecutiveFlavors(scoopStack);
     scoopStack.Add(scoop);
     Debug.Log("Putting scoop : " + scoop.flavor + " on stack at index: " + new Vector2Int(Lane(), StackHeight() - 1));
     scoop.MoveToIndex(new Vector2Int(Lane(), StackHeight() - 1));
 }
        static void Main(string[] args)
        {
            Console.WriteLine("===scOOPs IceCream===");

            IceCreamSugarCone cone1 = new IceCreamSugarCone();

            cone1.AddScoop(new Scoop(Flavor.Vanilla));
            cone1.AddTopping(new Sprinkles());
            Console.WriteLine(cone1.About());

            IceCreamWaffleCone cone2 = new IceCreamWaffleCone();

            cone2.AddScoop(new Scoop(Flavor.MintChocolateChip));
            cone2.AddScoop(new Scoop(Flavor.MintChocolateChip));
            cone2.AddTopping(new WhippedCream());
            Console.WriteLine(cone2.About());

            IceCreamSundae sundae1 = new IceCreamSundae();

            sundae1.Scoops.Add(new Scoop(Flavor.PeanutButter));
            sundae1.Toppings.Add(new Sprinkles());
            sundae1.Toppings.Add(new WhippedCream());
            sundae1.Toppings.Add(new Cherry());
            Console.WriteLine(sundae1.About());

            Scoop s = new Scoop();
            //Console.WriteLine(s.About());
            Scoop rr = new Scoop(Flavor.RockRoad);

            //Console.WriteLine(rr.About());

            Console.ReadKey();
        }
Пример #4
0
 public void ClearStack()
 {
     for (int i = 0; i < scoopStack.Count; i++)
     {
         Scoop scoop = scoopStack[scoopStack.Count - 1];
         scoopStack.RemoveAt(scoopStack.Count - 1);
         scoop.MeltScoop();
     }
 }
Пример #5
0
    public void Dev_SpawnScoop(int flavorIndex)
    {
        if (flavorIndex >= flavors.Length)
        {
            return;
        }
        Scoop scoop = InstantiateScoop();

        SetScoop(scoop, flavors[flavorIndex], speed, new Vector2Int(board.ConeLane(), board.ConeStackHeight() + 1));
    }
Пример #6
0
        public override Projectile InstantiateProjectile(Vector2 pos)
        {
            var scene = weaponComponent.Entity.Scene;
            var dir   = Vector2.Normalize(scene.Camera.MouseToWorldPoint() - coneSpring.TargetPosition);

            type = Scoop.GetNext(type);
            var s = Pool <Scoop> .Obtain();

            s.Initialize(dir, pos + weaponMountOffset + dir * 4, type);

            // Shock the cone
            coneSpring.Shock(-dir * 3);
            return(s);
        }
Пример #7
0
    public void SystemFailure()
    {
        int failure = random.Next(100);

        if (failure > failureRate - GetNode <Fabricator>("../Fabricator").failureReduction)
        {
            switch (random.Next(3))
            {
            case 0:
                Fabricator fabricator = GetNode <Fabricator>("../Fabricator");
                fabricator.Broken();
                fabricator.ChangeEfficiency(-0.2f);
                GD.Print("Fabricator Broken");
                break;

            case 1:
                Replicator replicator = GetNode <Replicator>("../Replicator");
                replicator.Broken();
                replicator.ChangeEfficiency(-0.2f);
                GD.Print("Replicator Broken");
                break;

            case 2:
                Scoop scoop = GetNode <Scoop>("../Scoop");
                scoop.Broken();
                scoop.ChangeEfficiency(-0.2f);
                GD.Print("Scoop Broken");
                break;

            case 3:
                Generator generator = GetNode <Generator>("../Generator");
                generator.Broken();
                generator.ChangeEfficiency(-0.2f);
                GD.Print("Generator Broken");
                GetTree().CallGroup("MainSystems", "Disabled");
                break;

            default:
                break;
            }
        }
        else
        {
            GD.Print("No System Failure This Tick");
        }
    }
Пример #8
0
    private IEnumerator PopScoops(int index)
    {
        poppingScoops = true;
        Debug_ScoopList("Before popping: ", scoopStack);
        if (handlingMatch)
        {
            board.Unfreeze();
            StopCoroutine(handleMatchRoutine);
            comboMultiplier = 0;
        }
        poppedScoops = new Queue <Scoop>();
        int popCount = scoopStack.Count;

        for (int i = 0; i < popCount - index; i++)
        {
            int   popHeight = i + index + 1;
            Scoop scoop     = scoopStack[scoopStack.Count - 1];
            scoopStack.RemoveAt(scoopStack.Count - 1);
            poppedScoops.Enqueue(scoop);
            scoop.Pop(new Vector2Int(Lane(), popHeight));
        }
        yield return(new WaitForSeconds(.1f));

        if (poppedScoops.Count > 1)
        {
            audioManager.Play(audioSource, audioManager.SwitchScoopsAudio);
        }
        Debug_ScoopList("ScoopStack after popping: ", scoopStack);
        Debug_ScoopList("Scoops List: ", poppedScoops);
        yield return(StartCoroutine(AddScoopsToStack(poppedScoops)));

        Debug_ScoopList("ScoopStack after adding: ", scoopStack);
        // if(CheckMatch()) {
        //     handleMatchRoutine = StartCoroutine(HandleMatch(false));
        //     yield return handleMatchRoutine;
        // }
        List <StackNode> matches = CheckMatch(scoopStack);

        if (matches.Count > 0)
        {
            handleMatchRoutine = StartCoroutine(HandleMatch(matches));
            yield return(handleMatchRoutine);
        }
        poppingScoops = false;
    }
Пример #9
0
    IEnumerator IGameOver()
    {
        yield return(audioManager.PlayAndWait(audioSource, audioManager.GameOverAudio));

        int pops = StackHeight() - 1;

        for (int i = 0; i < pops; i++)
        {
            audioManager.Play(audioSource, audioManager.DropScoopAudio);
            Scoop scoop = scoopStack[scoopStack.Count - 1];
            scoopStack.RemoveAt(scoopStack.Count - 1);
            scoop.MeltScoop();
            yield return(new WaitForSeconds(.1f));
        }
        yield return(CrumbleCone());

        SceneState.LoadScene(0); // Reload game scene for debug purposes
    }
Пример #10
0
        static void Main(string[] args)
        {
            using (var client = new WebClient())
            {
                client.Headers[HttpRequestHeader.UserAgent] = "Triple Scoop";
                string html = client.DownloadString("http://www.thelakewoodscoop.com/");

                var parser   = new HtmlParser();
                var document = parser.Parse(html);
                var posts    = document.QuerySelectorAll(".post");
                var items    = new List <Scoop>();
                foreach (var post in posts)
                {
                    var item    = new Scoop();
                    var heading = post.QuerySelector("h2");
                    item.Title = heading.TextContent;
                    var par = post.QuerySelector("p");
                    item.Content = par.TextContent;
                    if (post.QuerySelector("img.alignleft") == null)
                    {
                        item.ImageUrl = post.QuerySelector("img.aligncenter").GetAttribute("src");
                    }
                    else
                    {
                        item.ImageUrl = post.QuerySelector("img.alignleft").GetAttribute("src");
                    }
                    item.Date = post.QuerySelector(".postmetadata-top").TextContent;
                    item.Link = heading.QuerySelector("a").GetAttribute("href");
                    if (par.QuerySelector("a.more-link") != null)
                    {
                        item.MoreLink = par.QuerySelector("a.more-link").GetAttribute("href");
                    }
                    items.Add(item);
                }

                Console.ReadKey(true);
            }
        }
Пример #11
0
 public void SetScoop(Scoop scoop, Flavor flavor, float speed, Vector2Int startIndex)
 {
     scoop.SetFlavor(flavor);
     scoop.Initialize(board, startIndex);
 }
Пример #12
0
 public Scoop SpawnRandomScoop(Scoop scoop)
 {
     SetScoop(scoop, RandomFlavor(), speed, new Vector2Int(board.RandomLane(), board.TotalRows - 1));
     return(scoop);
 }
Пример #13
0
    public Scoop InstantiateScoop()
    {
        Scoop scoop = Instantiate(scoopPrefab, transform.position, transform.rotation) as Scoop;

        return(scoop);
    }
Пример #14
0
 public void AddScoopToCone(Scoop scoop)
 {
     CurrentCone.AddScoop(scoop);
 }