예제 #1
0
 // 取的甜點數量,供Fungus使用
 public void SetFungusDessert(Item.ItemName dessertName)
 {
     // 要輸進去的甜點
     talkFlowChart = GameObject.Find("FungusData").GetComponent <Flowchart>();
     // talkFlowChart.SetIntegerVariable(dessertName, SystemController.Instance.GetDesert(dessertName);
     //Debug.Log(dessertName + talkFlowChart.GetIntegerVariable(dessertName));
 }
예제 #2
0
    public void RemoveItem(Item.ItemName itemName)
    {
        Item currentItem = _items.Find(i => itemName == i.Name);

        _items.Remove(currentItem);
        HideItem(currentItem);
    }
예제 #3
0
        public void AddItem(Item item)
        {
            // 甜點增加

            bool itemExist = false;

            foreach (Item iL in GetInventory(item))
            {
                //Debug.Log("判斷甜點數" + item.itemName + item.quantity);
                if (item.itemName == iL.itemName)
                {
                    itemExist = true;
                    //Debug.Log("甜點數增加" + item.itemName + item.quantity);
                    Item.ItemName iN = item.itemName;
                    FindItem(new Item(iN, 0)).quantity += item.quantity;
                    //FindItem(item).quantity += item.quantity;
                    //iL.quantity += item.quantity;
                    //Debug.Log("引入的ithem甜點數變成" + item.itemName + item.quantity);
                    //Debug.Log("甜點數變成" + iL.itemName + iL.quantity);
                }
            }

            if (!itemExist)
            {
                //Debug.Log("甜點" + item.itemName + item.quantity);
                GetInventory(item).Add(item);
            }

            // 顯示目前甜點
            ShowItem();
        }
예제 #4
0
    public void selectSummonItem(Item item)
    {
        if (item.amount > 0)
        {
            foreach (Transform child in fireLocation)
            {
                Item selectedItem = Players.playersList[Players.getSelectedPlayer()].inventory.getItemByName(lastItemSelected);
                selectedItem.amount++;
                Destroy(child.gameObject);
            }

            GameObject fireInUsePrefabObj = Instantiate(fireInUsePrefab, fireLocation);
            fireInUsePrefabObj.GetComponent <FireInUsePrefabUi>().setSprite(item.sprite);
            lastItemSelected      = item.itemName;
            flag_lastItemSelected = true;

            item.amount--;
            gachaUiHandler.refreshGacha();
            Debug.Log("Pode inserir a chama");
        }
        else
        {
            Debug.Log("Chama insuficiente");
        }
    }
예제 #5
0
    public Item getItemByName(Item.ItemName itemName)
    {
        List <Item> items = this.getItemList();

        foreach (Item item in items)
        {
            if (item.itemName == itemName)
            {
                return(item);
            }
        }

        return(null);
    }
예제 #6
0
 public void buyFireSummonButton(Item.ItemName itemName)
 {
     if (Currency.gold > commonFireCost)
     {
         Currency.gold -= commonFireCost;
         Debug.Log("Item name on battleSystem " + itemName);
         Item item = Items.getItemByName(itemName);
         item.amount = 1;
         Players.playersList[Players.getSelectedPlayer()].inventory.addItem(item);
     }
     else
     {
         Debug.Log("Não tem gold para comprar");
     }
 }
예제 #7
0
    public Hero summonHero(Item.ItemName summonItem, int randomNumber)
    {
        Hero gachaHero = new Hero();

        if (randomNumber >= 0 && randomNumber <= 10)
        {
            List <Hero> heroList = Heroes.getHeroByRank(Hero.HeroRank.nat5);
            Debug.Log("Legendary");

            gachaHero = rollHero(heroList);
        }

        if (randomNumber >= 11 && randomNumber <= 60)
        {
            List <Hero> heroList = Heroes.getHeroByRank(Hero.HeroRank.nat4);
            Debug.Log("Epic");

            gachaHero = rollHero(heroList);
        }

        if (randomNumber >= 61 && randomNumber <= 200)
        {
            List <Hero> heroList = Heroes.getHeroByRank(Hero.HeroRank.nat3);
            Debug.Log("Rare");

            gachaHero = rollHero(heroList);
        }

        if (randomNumber >= 201 && randomNumber <= 500)
        {
            List <Hero> heroList = Heroes.getHeroByRank(Hero.HeroRank.nat2);
            Debug.Log("Uncommon");

            gachaHero = rollHero(heroList);
        }

        if (randomNumber >= 501 && randomNumber <= 1000)
        {
            List <Hero> heroList = Heroes.getHeroByRank(Hero.HeroRank.nat1);
            Debug.Log("Common");

            gachaHero = rollHero(heroList);
        }

        return(gachaHero);
    }
예제 #8
0
    public static Item getItemByName(Item.ItemName itemName)
    {
        itemClass = new Item();

        switch (itemName)
        {
        default: return(null);

        case Item.ItemName.shovel:
            itemClass.itemName = Item.ItemName.shovel;
            itemClass.itemType = Item.ItemType.equipable;
            itemClass.amount   = 0;
            itemClass.sprite   = "shovel";
            itemClass.price    = 0;
            return(itemClass);

        case Item.ItemName.jerryHairBall:
            itemClass.itemName = Item.ItemName.jerryHairBall;
            itemClass.itemType = Item.ItemType.material;
            itemClass.amount   = 0;
            itemClass.sprite   = "jerryHairBall";
            itemClass.price    = 0;
            return(itemClass);

        case Item.ItemName.ironOre:
            itemClass.itemName = Item.ItemName.ironOre;
            itemClass.itemType = Item.ItemType.material;
            itemClass.amount   = 0;
            itemClass.sprite   = "ironOre";
            itemClass.price    = 0;
            return(itemClass);

        case Item.ItemName.skull:
            itemClass.itemName = Item.ItemName.skull;
            itemClass.itemType = Item.ItemType.material;
            itemClass.amount   = 0;
            itemClass.sprite   = "skull";
            itemClass.price    = 0;
            return(itemClass);

        case Item.ItemName.commonFire:
            itemClass.itemName = Item.ItemName.commonFire;
            itemClass.itemType = Item.ItemType.gacha;
            itemClass.amount   = 0;
            itemClass.sprite   = "commonFire";
            itemClass.price    = 10;
            return(itemClass);

        case Item.ItemName.uncommonFire:
            itemClass.itemName = Item.ItemName.uncommonFire;
            itemClass.itemType = Item.ItemType.gacha;
            itemClass.amount   = 0;
            itemClass.sprite   = "uncommonFire";
            itemClass.price    = 25;
            return(itemClass);

        case Item.ItemName.rareFire:
            itemClass.itemName = Item.ItemName.rareFire;
            itemClass.itemType = Item.ItemType.gacha;
            itemClass.amount   = 0;
            itemClass.sprite   = "rareFire";
            itemClass.price    = 100;
            return(itemClass);

        case Item.ItemName.epicFire:
            itemClass.itemName = Item.ItemName.epicFire;
            itemClass.itemType = Item.ItemType.gacha;
            itemClass.amount   = 0;
            itemClass.sprite   = "epicFire";
            itemClass.price    = 500;
            return(itemClass);

        case Item.ItemName.legendaryFire:
            itemClass.itemName = Item.ItemName.legendaryFire;
            itemClass.itemType = Item.ItemType.gacha;
            itemClass.amount   = 0;
            itemClass.sprite   = "legendaryFire";
            itemClass.price    = 1000;
            return(itemClass);
        }
    }
예제 #9
0
 public bool ContainsItem(Item.ItemName itemName)
 {
     return(_items.Exists(item => itemName == item.Name));
 }
예제 #10
0
        public override void Update(GameTime gameTime)
        {
            // Check Autosave
            timeSinceLastSave += gameTime.ElapsedGameTime;
            if (timeSinceLastSave >= TimeSpan.FromMinutes(5.0))
            {
                SaveMap();
                timeSinceLastSave = TimeSpan.Zero;
                modifiedTiles.Clear();
            }

            if (InputHandler.KeyDown(Keys.F2))
            {
                this.Visible = false;
                this.Enabled = false;
            }

            if (InputHandler.KeyPressed(Keys.D1))
            {
                currentMode = Mode.Tile;
                Console.WriteLine("Tile Mode.\n");
            }

            if (InputHandler.KeyPressed(Keys.D2))
            {
                currentMode = Mode.Item;
                Console.WriteLine("Item Mode.\n");
                Console.WriteLine("Current Item: " + CurrentItem.ToString() + "\n");
            }

            if (InputHandler.KeyPressed(Keys.D3))
            {
                currentMode = Mode.Nest;
                Console.WriteLine("Nest Mode.\n");

                Console.WriteLine("Creature ID for this nest: ");
                currentCreatureID = Convert.ToInt16(Console.ReadLine());
            }

            if (InputHandler.KeyPressed(Keys.D4))
            {
                currentMode = Mode.Attribute;
                Console.WriteLine("Atrribute Mode. \n");
                Console.WriteLine("Current Attribute: " + currentAttribute.ToString());
            }

            if (InputHandler.KeyPressed(Keys.D5))
            {
                currentMode = Mode.Sign;
                Console.WriteLine("Sign Mode.\n");
                Console.Write("Enter a string for this sign (# for newline): ");
                currentSignText = Console.ReadLine().Replace('#','\n');
            }

            if (InputHandler.KeyPressed(Keys.B) && currentMode == Mode.Tile)
                renderCollisionLayer = !renderCollisionLayer;

            if (InputHandler.KeyPressed(Keys.T))
                if (currentMode == Mode.Tile)
                    renderTileSet = !renderTileSet;

            if(InputHandler.KeyPressed(Keys.Z) || InputHandler.KeyPressed(Keys.X))
            {
                switch(currentMode)
                {
                    case Mode.Item:
                        if (InputHandler.KeyPressed(Keys.X) || InputHandler.KeyPressed(Keys.Z))
                        {
                            if (InputHandler.KeyPressed(Keys.X))
                            {
                                if ((int)CurrentItem != Enum.GetValues(typeof(Item.ItemName)).Length)
                                    CurrentItem++;
                                else
                                    CurrentItem = (Item.ItemName)1;
                            }
                            if (InputHandler.KeyPressed(Keys.Z))
                            {
                                if ((int)CurrentItem != 1)
                                    CurrentItem--;
                                else
                                    CurrentItem = (Item.ItemName)Enum.GetValues(typeof(Item.ItemName)).Length;
                            }
                            Console.WriteLine("Current Item: " + CurrentItem.ToString() + "\n");
                        }
                        break;
                    case Mode.Nest:
                        break;
                    case Mode.Attribute:
                        if (InputHandler.KeyPressed(Keys.X) || InputHandler.KeyPressed(Keys.Z))
                        {
                            if (InputHandler.KeyPressed(Keys.X))
                            {
                                if ((int)currentAttribute < 3)
                                    currentAttribute++;
                                else
                                    currentAttribute = (Attributes)1;
                            }
                            if (InputHandler.KeyPressed(Keys.Z))
                            {
                                if ((int)currentAttribute > 1)
                                    currentAttribute--;
                                else
                                    currentAttribute = (Attributes)3;
                            }
                            Console.WriteLine("Current Attribute: " + currentAttribute.ToString());
                        }
                        break;
                }
            }

            if ((InputHandler.LeftClickDown || InputHandler.RightClickPressed) && Configuration.Bounds.Contains(new Point(InputHandler.MouseX, InputHandler.MouseY)))
            {
                Vector2 MousePos = InputHandler.MouseWorldCoords;

                MousePos.X /= GameHandler.TileMap.TileWidth;
                MousePos.Y /= GameHandler.TileMap.TileHeight;

                Vector2 MousePosPixels = new Vector2((int)MousePos.X * GameHandler.TileMap.TileWidth, ((int)MousePos.Y * GameHandler.TileMap.TileHeight));

                switch(currentMode)
                {
                    case Mode.Tile:
                        if (InputHandler.LeftClickDown)
                        {
                            if (tileSetRenderRect.Contains(new Point(InputHandler.MouseX, InputHandler.MouseY)) && renderTileSet)
                            {
                                currentTile = new Point(((InputHandler.MouseX - (int)tileSetRenderDrawOffset.X) / GameHandler.TileMap.TileWidth),
                                                        ((InputHandler.MouseY - (int)tileSetRenderDrawOffset.Y) / GameHandler.TileMap.TileHeight));
                                tiles[currentTile.X, currentTile.Y].GetData<Color>(selectedTileData);
                            }
                            else
                            {
                                GameHandler.TileMap.Map.SetData<Color>(0, new Rectangle((int)MousePosPixels.X, (int)MousePosPixels.Y, tiles[currentTile.X, currentTile.Y].Width,
                                    tiles[currentTile.X, currentTile.Y].Height), selectedTileData, 0, selectedTileData.Length);
                                GameHandler.TileMap.SetTile(new Point((int)MousePos.X, (int)MousePos.Y), currentTile);
                            }
                        }
                        else if (InputHandler.RightClickPressed)
                            GameHandler.TileMap.TogglePassable(new Point((int)MousePos.X, (int)MousePos.Y));
                        break;
                    case Mode.Item:
                        if (InputHandler.LeftClickPressed)
                        {
                            if(GameHandler.CheckItem(new Point((int)MousePos.X, (int)MousePos.Y)) != null)
                            {
                                ItemEntity i = GameHandler.CheckItem(new Point((int)MousePosPixels.X, (int)MousePosPixels.Y));
                                    GameHandler.RemoveItem(i);
                            }
                            if(GameHandler.CheckItem(new Point((int)MousePos.X, (int)MousePos.Y)) == null)
                                GameHandler.AddItem(new ItemEntity(new Vector2(MousePosPixels.X, MousePosPixels.Y), (int)CurrentItem, Game.Content));
                        }
                        if (InputHandler.RightClickPressed)
                        {
                            ItemEntity i = GameHandler.CheckItem(new Point((int)MousePosPixels.X, (int)MousePosPixels.Y));
                            if (i != null)
                                GameHandler.RemoveItem(i);
                        }
                        break;
                    case Mode.Nest:
                        if (InputHandler.LeftClickPressed)
                            GameHandler.AddNest(new Nest(Game.Content.Load<Texture2D>("Sprites\\Nest"), Game.Content,
                                new Point((int)MousePos.X * GameHandler.TileMap.TileWidth, (int)MousePos.Y * GameHandler.TileMap.TileHeight), currentCreatureID,
                                new Point(GameHandler.TileMap.TileWidth, GameHandler.TileMap.TileHeight), new Point(GameHandler.TileMap.TileWidth, GameHandler.TileMap.TileHeight),
                                new Point((int)GameHandler.TileMap.PlayerSpawn.X, (int)GameHandler.TileMap.PlayerSpawn.Y), GameHandler.TileMap.Passable));
                        if (InputHandler.RightClickPressed)
                        {
                            Nest n = GameHandler.CheckNests(new Point((int)MousePos.X * GameHandler.TileMap.TileWidth, (int)MousePos.Y * GameHandler.TileMap.TileHeight));
                            if(n != null)
                                GameHandler.RemoveNest(n);
                        }
                        break;
                    case Mode.Sign:
                        if (InputHandler.LeftClickPressed)
                            GameHandler.AddSign(new Sign(Game.Content.Load<Texture2D>("Sprites/Sign"),
                                new Vector2((int)MousePos.X * GameHandler.TileMap.TileWidth, (int)MousePos.Y * GameHandler.TileMap.TileHeight), currentSignText));
                        if (InputHandler.RightClickPressed)
                        {
                            Sign s = GameHandler.CheckSign(new Point((int)MousePos.X * GameHandler.TileMap.TileWidth, (int)MousePos.Y * GameHandler.TileMap.TileHeight));
                            if (s != null)
                                GameHandler.RemoveSign(s);
                        }
                        break;
                    case Mode.Attribute:
                        if (InputHandler.LeftClickPressed)
                            GameHandler.TileMap.SetAttribute(new Point((int)MousePos.X, (int)MousePos.Y), currentAttribute);
                        if (InputHandler.RightClickPressed)
                            GameHandler.TileMap.SetAttribute(new Point((int)MousePos.X, (int)MousePos.Y), Attributes.None);

                    break;
                }
                AddModifiedTile(new Point((int)MousePos.X, (int)MousePos.Y)); // Add the tile to the modified list
            }

            base.Update(gameTime);
        }
예제 #11
0
        public override void Initialize()
        {
            workingDirectory = Directory.GetCurrentDirectory().Replace("Build", "Code\\Content\\Maps\\");
            currentMode = Mode.Tile;
            CurrentItem = Item.ItemName.Apple;

            base.Initialize();
        }
예제 #12
0
 public void setUseButton(StoreController storeController, Item.ItemName itemName)
 {
     button.onClick.AddListener(delegate {
         storeController.buyFireSummonButton(itemName);
     });
 }