public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
    {
        ItemScroll item = scroller.GetCellView(cellViewPrefab) as ItemScroll;

        item.name = itemsData[dataIndex].name;
        item.SetData(itemsData[dataIndex]);

        var randomItem = item.GetComponent <RandomItemScroll>();

        if (randomItem)
        {
            Destroy(randomItem);
        }

        if (itemsData[dataIndex].name.Equals(Constant.COIN_ADS))
        {
            item.SetText($"+{DataManager.GameConfig.coinAdsReward}");
            item.ActiveText(true);
            item.SetAction(() =>
            {
                OnItemSelected(dataIndex);
                btnSelect.SetCoinButton();
                this.PostEvent((int)EventID.ItemScrollSelect, item);
            });
        }
        else if (itemsData[dataIndex].name.Equals(Constant.RANDOM_ITEM))
        {
            item.gameObject.AddComponent <RandomItemScroll>().ItemImage = item.ItemImage;
            item.SetAction(() =>
            {
                OnItemSelected(dataIndex);
                btnSelect.SetRandomItem();
                this.PostEvent((int)EventID.ItemScrollSelect, item);
            });
        }
        else
        {
            item.ActiveText(false);
            item.SetAction(() =>
            {
                OnItemSelected(dataIndex);
                btnSelect.SetButton(items.list[dataIndex - 1]);
                this.PostEvent((int)EventID.ItemScrollSelect, item);
            });
        }

        return(item);
    }
示例#2
0
        public void Effect()
        {
            if (hasEffect)
            {
                do
                {
                    int    efecto = CustomMath.RandomIntNumber(3);
                    Player pl     = Program.pl;
                    if (efecto == 0)
                    {
                        List <int> r = new List <int>();
                        for (int i = 0; i < pl.GetArrMal().Length; i++)
                        {
                            if (pl.GetArrMal()[i] != null)
                            {
                                r.Add(i);
                            }
                        }
                        if (r.Count > 0)
                        {
                            Program.buffer.InsertText("Al rezar, sientes como tu cuerpo se siente mas ligero");
                            int temp = CustomMath.RandomIntNumber(r.Count - 1);
                            Program.buffer.InsertText("¡La " + pl.GetArrMal()[r[temp]].GetName() + " ha desaparecido!");
                            pl.GetArrMal()[r[temp]] = null;
                            hasEffect = false;
                        }
                    }
                    else if (efecto == 1)
                    {
                        Item item;

                        if (CustomMath.RandomUnit() < 0.75)
                        {
                            if (CustomMath.RandomUnit() < 0.5)
                            {
                                item = new ItemPocion("Gran poción de Vida", 100, ItemPocion.PocionType.hp);
                            }
                            else
                            {
                                item = new ItemPocion("Gran poción de Maná", 100, ItemPocion.PocionType.mana);
                            }
                        }
                        else
                        {
                            double prob = CustomMath.RandomUnit();
                            if (prob < 0.5)
                            {
                                item = new ItemScroll("Pergamino de visión", 0);
                            }
                            else
                            {
                                item = new ItemScroll("Pergamino de salida", 1);
                            }
                        }

                        if (!pl.FilledBag())
                        {
                            pl.GetItem(item);
                            Program.buffer.InsertText("Un objeto ha aparecido en tu mochila");
                            hasEffect = false;
                        }
                        else if (GetItem(item))
                        {
                            Program.buffer.InsertText("Ha aparecido un objeto en la sala");
                            hasEffect = false;
                        }
                    }
                    else if (efecto == 2)
                    {
                        Program.buffer.InsertText("Los ojos los tienes más despiertos y eres capaz de ver en la oscuridad");
                        hasEffect = false;
                        List <Room> r = Program.lvlLayout;
                        for (int i = 0; i < r.Count; i++)
                        {
                            if (r[i].IsVisible() == 0)
                            {
                                r[i].SetVisible(3);
                            }
                        }
                        if (pl.GetMaldicion(4))
                        {
                            for (int i = 0; i < pl.GetArrMal().Length; i++)
                            {
                                if (pl.GetArrMal()[i].GetId() == 4)
                                {
                                    pl.GetArrMal()[i] = null;
                                    i = pl.GetArrMal().Length;
                                    Program.buffer.InsertText("¡Has perdido la Maldición del ciego!");
                                }
                            }
                        }
                    }
                    else if (efecto == 3 && CustomMath.RandomUnit() < 0.5)
                    {
                        for (int i = 0; i < pl.GetArrMal().Length; i++)
                        {
                            pl.GetArrMal()[i] = null;
                        }

                        pl.ExcesoMaldito = 0;
                        pl.RestoreHealth();
                        pl.RestoreMana();
                        Program.buffer.InsertText("¡Tu cuerpo se siente renacido!");
                        Program.buffer.InsertText("¡Has recuperado toda la vida!");
                        Program.buffer.InsertText("¡Has recuperado todo el maná!");
                        Program.buffer.InsertText("¡Todas las maldiciones se han desvanecido!");
                        hasEffect = false;
                    }
                } while (hasEffect);
            }
        }