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(); }
public void CreateCatSuper(CatItem catItem, int count) { for (int i = 0; i < count; i++) { CreateCatSuper(catItem); } }
public void Init(CatItem catItem, Action <CatItemView> action) { this.catItem = catItem; nameText.text = catItem.type.localizedName; levelText.text = catItem.level.ToString(); ActivateButton(action); }
public void RemoveCat() { if (catItem == null) { return; } ++rentCats[catItem.type]; SaveRentCats(); ui.prepare.catSlots[catItem.isInstalled].Clear(); catItem = null; }
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); }
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(); } } }
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); }
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); }
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); }
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); } }
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); }
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(); }
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); }
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(); } } }