Esempio n. 1
0
 public void ShowBig(CatItem catItem)
 {
     if (catItem.type.onFreeFX != null)
     {
         bigCatSlot.Init(catItem,
                         сatItemView => { Instantiate(сatItemView.catItem.type.onFreeFX, bigCatSlot.itemView.catButton.transform.position, Quaternion.identity); });
     }
     else
     {
         bigCatSlot.Init(catItem);
     }
     bigNameText.text  = catItem.type.localizedName;
     bigLevelText.text = catItem.level.ToString();
     if (catItem.isMaxLevel)
     {
         bigExpSliderBack.SetActive(false);
         maximum.SetActive(true);
     }
     else
     {
         maximum.SetActive(false);
         bigExpSliderBack.SetActive(true);
         bigExpSlider.fillAmount = (float)catItem.exp / (float)balance.catLevelsExp[catItem.level - 1];
     }
     bigDescriptionText.text = catItem.localizedDescription;
     bigCoinCost.text        = catItem.cost.ToString();
 }
Esempio n. 2
0
 public void CreateCatSuper(CatItem catItem, int count)
 {
     for (int i = 0; i < count; i++)
     {
         CreateCatSuper(catItem);
     }
 }
Esempio n. 3
0
    public void Init(CatItem catItem, Action <CatItemView> action)
    {
        this.catItem = catItem;

        nameText.text  = catItem.type.localizedName;
        levelText.text = catItem.level.ToString();

        ActivateButton(action);
    }
Esempio n. 4
0
    public void RemoveCat()
    {
        if (catItem == null)
        {
            return;
        }

        ++rentCats[catItem.type];
        SaveRentCats();

        ui.prepare.catSlots[catItem.isInstalled].Clear();
        catItem = null;
    }
Esempio n. 5
0
    public void Uninstall(CatItem catItem)
    {
        CatSlot slot = catSlots[catItem.isInstalled];

        slot.Clear();
        catItem.isInstalled = -1;

        costCoinText.text = cost.ToString();
        iTween.PunchScale(costCoin.gameObject, new Vector3(-0.3f, -0.5f, 0), 1);

        ui.header.ShowCoinsIn(slot.itemViewParent.position, 8, missionList.transform, scale: 0.8f);

        AddToList(catItem);
    }
Esempio n. 6
0
    void GetExp(CatItem catItem)
    {
        Debug.Log(catItem.type.name + " Cat get " + catItem.expGame + " exp");

        while (catItem.expGame > 0)
        {
            catItem.exp++;
            catItem.expGame--;

            if (catItem.exp >= Game.balance.catLevelsExp[catItem.level - 1])
            {
                catItem.LevelUp();
            }
        }
    }
Esempio n. 7
0
    void RemoveFromList(CatItem catItem)
    {
        foreach (CatItemView catItemView in catItemList)
        {
            if (catItemView.catItem == catItem)
            {
                catItemList.Remove(catItemView);
                Destroy(catItemView.gameObject);
                break;
            }
        }

        (catItemGrid.transform as RectTransform).sizeDelta = new Vector2(
            catItemList.Count * (catItemGrid.cellSize.x + catItemGrid.spacing.x) + catItemGrid.spacing.x * 2,
            (catItemGrid.transform as RectTransform).sizeDelta.y);
    }
Esempio n. 8
0
    public void Init(CatItem catItem)
    {
        catItem.expGame = (int)(catItem.expGame * achievements.moreExpCat * balance.expMultiplier);
        if (gameplay.boosts.experience.ON)
        {
            catItem.expGame *= gameplay.boosts.experience.power;
        }

        catSlot.Init(catItem);

        nameText.text  = catItem.type.localizedName;
        levelText.text = catItem.level.ToString();
        StartCoroutine(ShowGettingExp(catItem.level, catItem.type.levelPower.Length, catItem.exp, catItem.expGame));

        GetExp(catItem);
    }
Esempio n. 9
0
    public void AddToList(CatItem catItem)
    {
        CatItemView itemView = Instantiate(catItem.type.itemViewPrefab) as CatItemView;

        itemView.transform.localScale = catListScale;
        itemView.transform.SetParent(catItemGrid.transform, false);
        itemView.Init(catItem, catItemView => { Install(catItemView.catItem, showCoins: true); });
        catItemList.Add(itemView);

        if (itemView.particleController != null)
        {
            itemView.particleController.OFF();
        }

        (catItemGrid.transform as RectTransform).sizeDelta = new Vector2(
            catItemList.Count * (catItemGrid.cellSize.x + catItemGrid.spacing.x) + catItemGrid.spacing.x * 2,
            (catItemGrid.transform as RectTransform).sizeDelta.y);
    }
Esempio n. 10
0
    public void Install(CatItem catItem, bool showCoins = false)
    {
        foreach (CatSlot slot in catSlots)
        {
            if (slot.catItem == catItem)
            {
                return;
            }
        }

        if (catItem.isInstalled < 0)
        {
            for (int i = 0; i < catSlots.Length; i++)
            {
                if (catSlots[i].gameObject.activeSelf && catSlots[i].catItem == null)
                {
                    catItem.isInstalled = i;
                    break;
                }
            }
        }

        if (catItem.isInstalled < 0)
        {
            return;
        }

        catSlots[catItem.isInstalled].Init(catItem, catItemView => { Uninstall(catItemView.catItem); });

        RemoveFromList(catItem);

        if (!user.IsTutorialShown(Tutorial.Part.CatGoldfishes))
        {
            ui.tutorial.Show(Tutorial.Part.CatGoldfishes, new Transform[] { catSlots[catItem.isInstalled].transform, costCoin.transform });
        }

        costCoinText.text = cost.ToString();
        iTween.PunchScale(costCoin.gameObject, new Vector3(0.3f, 0.5f, 0), 1);

        if (showCoins)
        {
            ui.header.ShowCoinsOut(catSlots[catItem.isInstalled].itemViewParent, 8, missionList.transform, scale: 0.8f);
        }
    }
Esempio n. 11
0
    public bool AddCat()
    {
        if (rentCats == null)
        {
            LoadRentCats();
        }

        CatType catType = null;
        int     min     = int.MaxValue;

        foreach (var rentCat in rentCats)
        {
            if (!user.isOwned(rentCat.Key) && min > rentCat.Value)
            {
                catType = rentCat.Key;
                min     = rentCat.Value;
            }
        }

        if (catType == null)
        {
            return(false);
        }

        catItem = new CatItem(catType, Random.Range(5, 8), 0);

        // TODO Кажется можно просто вызвать ui.prepare.freeCatSlot
        for (int i = 0; i < ui.prepare.catSlots.Length; i++)
        {
            if (ui.prepare.catSlots[i].gameObject.activeSelf && ui.prepare.catSlots[i].catItem == null)
            {
                catItem.isInstalled = i;
                ui.prepare.catSlots[i].Init(catItem);
                return(true);
            }
        }

        return(false);
    }
Esempio n. 12
0
    public void CreateCatSuper(CatItem catItem)
    {
        Stuff cat;

        if (catItem.type == CatType.GetCatType(Cats.Joker))
        {
            cat = Instantiate(catItem.type.gamePrefab, randomPosition, Quaternion.identity) as CatJoker;
            (cat as CatJoker).item = catItem;
            (cat as CatJoker).type = catItem.type;
        }
        else
        {
            cat = Instantiate(catItem.type.gamePrefab, randomPosition, Quaternion.identity) as CatSuper;
            (cat as CatSuper).item = catItem;
            (cat as CatSuper).type = catItem.type;
        }

        cat.t.SetParent(ui.game.stuffFront, true);
        cat.t.Rotate(0, 0, Random.Range(0, 360));
        cat.name = "Cat " + catItem.type.name + " " + ++LAST_ID;

        cat.Setup();
    }
Esempio n. 13
0
    public CatItem GetCat(CatType type, int level = 1)
    {
        if (type == null)
        {
            return(null);
        }

        CatItem catItem = null;

        if (isOwned(type))
        {
            isLastGetCatLevelUp = true;

            catItem = GetItem(type);

            catItem.LevelUp(resetExp: false);
        }
        else
        {
            isLastGetCatLevelUp = false;

            catItem = new CatItem(type, level, 0);
            collection.Add(catItem);
            Log("Player get " + type.name + " Cat");

            Analytic.EventProperties("Progress", "OpenCatBox", catItem.type.name);
            Analytic.EventProperties("Progress", "Collection", collection.Count.ToString());
            achievements.OnGetSuperCat();
        }

        lastGetCat = catItem;

        CollectionSave(true);

        return(catItem);
    }
Esempio n. 14
0
    public override void ActivatePower()
    {
        var types = new CatType[] {
            CatType.GetCatType(Cats.Snow), CatType.GetCatType(Cats.Loki), CatType.GetCatType(Cats.Orion),
            CatType.GetCatType(Cats.Zen), CatType.GetCatType(Cats.Disco), CatType.GetCatType(Cats.Boom),
            CatType.GetCatType(Cats.Cap), CatType.GetCatType(Cats.King), CatType.GetCatType(Cats.Flint)
        };

        type = types[Random.Range(0, types.Length)];
        item = new CatItem(type, item.level, 0);

        if (type == CatType.GetCatType(Cats.Zen))
        {
            shape.enabled = false;

            StartCoroutine(FlyingTimers((int)item.power));

            iTween.PunchScale(ui.game.timeText.gameObject, new Vector3(0.6f, 0.6f, 0), 1);

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Snow))
        {
            shape.enabled = false;

            gameplay.FreezeSeconds(item.power);

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Disco))
        {
            shape.enabled = false;

            gameplay.StartFever(item.power);

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Boom))
        {
            shape.enabled = false;

            Bomb((type.levelPower[0] + (type.levelPower[item.level - 1] - type.levelPower[0]) * 0.4f));

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Cap))
        {
            Destroy(rb);
            shape.enabled = false;

            float scale = type.scale.x * (smallScreen ? 1.1f : 1f) * 0.6f * (type.levelPower[item.level - 1] / type.levelPower[0]);
            iTween.ScaleTo(gameObject, iTween.Hash("x", scale, "y", scale, "easeType", "easeOutBack", "time", 0.6f));

            StartCoroutine(Fly());
            StartCoroutine(PushOutCatsOnPath());
        }
        else if (type == CatType.GetCatType(Cats.King))
        {
            shape.enabled = false;

            SG_Utils.Shuffle <Stuff>(Factory.LIVE_STUFF);

            int goldfishs = (int)item.power;
            foreach (Stuff stuff in Factory.LIVE_STUFF)
            {
                if (stuff != null && stuff is CatBasic && (stuff as CatBasic).isCanHoldCoin)
                {
                    Mover.CreateCoinForCat(t.position, stuff as CatBasic);
                    goldfishs--;
                }
                if (goldfishs < 1)
                {
                    break;
                }
            }

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Flint))
        {
            shape.enabled = false;

            SG_Utils.Shuffle <Stuff>(Factory.LIVE_STUFF);

            int goldfishs = (int)item.power;
            foreach (Stuff stuff in Factory.LIVE_STUFF)
            {
                if (stuff != null && stuff is CatBasic && (stuff as CatBasic).isCoin)
                {
                    stuff.Punch();

                    (stuff as CatBasic).FreeCoin();

                    if (--goldfishs <= 0)
                    {
                        break;
                    }
                }
            }

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Loki))
        {
            shape.enabled = false;

            for (byte i = 0; i < CatLoki.bomb[item.level - 1, 0]; i++)
            {
                factory.CreateFirework(factory.fireworkPrefabs.boomSmall, new Vector3(Random.Range(-2f, 2f), Random.Range(-6f, 6f), 0));
            }
            for (byte i = 0; i < CatLoki.bomb[item.level - 1, 1]; i++)
            {
                factory.CreateFirework(factory.fireworkPrefabs.rocket, new Vector3(Random.Range(-2f, 2f), Random.Range(-6f, 6f), 0));
            }
            for (byte i = 0; i < CatLoki.bomb[item.level - 1, 2]; i++)
            {
                factory.CreateFirework(factory.fireworkPrefabs.boomBig, new Vector3(Random.Range(-2f, 2f), Random.Range(-6f, 6f), 0));
            }
            for (byte i = 0; i < CatLoki.bomb[item.level - 1, 3]; i++)
            {
                factory.CreateFirework(factory.fireworkPrefabs.color, new Vector3(Random.Range(-2f, 2f), Random.Range(-6f, 6f), 0));
            }

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
        else if (type == CatType.GetCatType(Cats.Orion))
        {
            shape.enabled = false;

            BlackHole.Create(t.position, item.power);

            if (!isRiki)
            {
                ShakeAndDestroy();
            }
        }
    }