Пример #1
0
        public void Initialize(SceneType scene)
        {
            endFlag = false;

            blurRate = 0.0f;

            store = new Store(gameManager, gameDevice);
            store.Initialize();

            Vector2 size = new Vector2(windowWidth / 2 - 128, windowHeight - 128);

            leftWindow = new Window(gameDevice, new Vector2(64, 64), size);
            leftWindow.Initialize();
            rightWindow = new Window(gameDevice, new Vector2(windowWidth / 2 + 64, 64), size);
            rightWindow.Initialize();
            messegeWindow = new Window(gameDevice, new Vector2(windowWidth / 2 - 160, 720 / 2 - 80), new Vector2(320, 160));
            messegeWindow.Initialize();

            buyButton  = new Button(new Vector2(windowWidth / 2 - 160, windowHeight / 2 + 80 + 32), 64, 32);
            sellButton = new Button(new Vector2(windowWidth / 2 + 160 - 64, 720 / 2 + 80 + 32), 64, 32);
            buyWindow  = new Window(gameDevice, new Vector2(windowWidth / 2 - 160, windowHeight / 2 + 80 + 32), new Vector2(64, 32));
            buyWindow.Initialize();
            sellWindow = new Window(gameDevice, new Vector2(windowWidth / 2 + 160 - 64, windowHeight / 2 + 80 + 32), new Vector2(64, 32));
            sellWindow.Initialize();

            mode         = ShopMode.select;
            isPop        = false;
            isMessegePop = false;
        }
Пример #2
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            ShopMode mode = (ShopMode)packet.ReadByte();

            switch (mode)
            {
            case ShopMode.Close:
                HandleClose(session);
                break;

            case ShopMode.Buy:
                HandleBuy(session, packet);
                break;

            case ShopMode.Sell:
                HandleSell(session, packet);
                break;

            case ShopMode.OpenViaItem:
                HandleOpenViaItem(session, packet);
                break;

            default:
                IPacketHandler <GameSession> .LogUnknownMode(mode);

                break;
            }
        }
Пример #3
0
        public static string WriteItemValue(Item item, int discount, ShopMode mode, bool showDetails = false)
        {
            var cost = new StringBuilder();

            cost.Append($"{Icons.IconOf(item.Currency)} ");

            if (item.Value == 0)
            {
                cost.Append("**Unknown Cost**");
                return(cost.ToString());
            }

            discount = Math.Clamp(discount, 0, 100);

            if (discount == 100)
            {
                cost.Append(mode == ShopMode.Buy ? "**Free**" : "**Worthless**");
                return(cost.ToString());
            }

            cost.Append($" **{GetCost(item.Value, discount):##,0}**");

            if (showDetails && discount > 0)
            {
                cost.Append($" (**{discount}**% {(mode == ShopMode.Buy ? "discount" : "deduction")})");
            }

            return(cost.ToString());
        }
Пример #4
0
    public void SwitchDisplayedInventory(ShopMode mode)
    {
        itemList.ClearList();
        filterList.ClearList();
        selectedItem = null;

        DisplayOtherList();

        shopMode = mode;

        if (mode == ShopMode.Selling)
        {
            filterList.AddButtonFavorite();
            filterList.AddButtonAll().SelectButton();

            DisplayListOfItems(player.PlayerInventory.Items);

            List <Item.ItemType> typeAlreadyHere = new List <Item.ItemType>();

            foreach (Item item in player.PlayerInventory.Items.Keys)
            {
                if (!typeAlreadyHere.Contains(item.EnumItemType))
                {
                    filterList.AddButtonFilter(item);

                    typeAlreadyHere.Add(item.EnumItemType);
                }
            }
        }
        else
        {
            DisplayInventory(player);
        }
        lowerBar.UpdateGoldLabel();
    }
Пример #5
0
    public void DisplayInventory(Player _player)
    {
        player    = _player;
        maxWeight = 50.0f + player.Characteristics.Strength * 2f;
        shopMode  = ShopMode.Buying;
        if (inventoryType == InterfaceType.OtherInventory || inventoryType == InterfaceType.Shop)
        {
            lowerBar.ShowTakeAllButton();
        }
        gameObject.SetActive(true);

        gold = player.PlayerInventory.Gold;

        filterList.AddButtonFavorite();
        filterList.AddButtonAll().SelectButton();
        DisplayAll();

        List <Item.ItemType> typeAlreadyHere = new List <Item.ItemType>();

        foreach (Item item in items.Keys)
        {
            if (!typeAlreadyHere.Contains(item.EnumItemType))
            {
                filterList.AddButtonFilter(item);

                typeAlreadyHere.Add(item.EnumItemType);
            }
        }
        lowerBar.UpdateGoldLabel();
    }
Пример #6
0
    //アイテムを買う処理へ遷移 「買う」ボタンを押した時
    public void OpenBuyWindow()
    {
        //モード変更
        shopMode = ShopMode.BUY;

        //ウィンドウを開く
        detailWindow.SetActive(true);
        OpenWindow("BuyWindow");
    }
Пример #7
0
    //アイテムを売る処理へ遷移 「売るボタンを押した時」
    public void OpenSaleWindow()
    {
        //モード変更
        shopMode = ShopMode.SALE;

        initSaleWindow();

        //売却時はボタンを押されたタイミングでPrefubをロードする
        detailWindow.SetActive(true);
        //ウィンドウを開く
        OpenWindow("SaleWindow");
    }
Пример #8
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            byte     unk  = packet.ReadByte(); // Looks like it's always 0x0A
            ShopMode mode = (ShopMode)packet.ReadByte();

            switch (mode)
            {
            case ShopMode.Open:
                HandleOpen(session, packet);
                break;

            default:
                IPacketHandler <GameSession> .LogUnknownMode(mode);

                break;
            }
        }
Пример #9
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            ShopMode mode = (ShopMode)packet.ReadByte();

            switch (mode)
            {
            case ShopMode.ViaItem:
                HandleViaItem(session, packet);
                break;

            case ShopMode.Arena:
                HandleMapleArenaShop(session, packet);
                break;

            default:
                IPacketHandler <GameSession> .LogUnknownMode(mode);

                break;
            }
        }
Пример #10
0
 /// <summary>
 /// Linked to UI Sell button.
 /// </summary>
 void SetSellMode()
 {
     Mode = ShopMode.Sell;
 }
Пример #11
0
 /// <summary>
 /// Linked to UI Buy button.
 /// </summary>
 void SetBuyMode()
 {
     Mode = ShopMode.Buy;
 }
Пример #12
0
        public void Update(GameTime gameTime)
        {
            store.Update();

            leftWindow.Update();
            rightWindow.Update();
            messegeWindow.Update();
            buyWindow.Update();
            sellWindow.Update();

            Point mousePos = new Point(
                (int)input.GetMousePosition().X,
                (int)input.GetMousePosition().Y);

            if (mode == ShopMode.select)
            {
                if (backRect.Contains(mousePos) && input.IsLeftClick())
                {
                    endFlag = true;
                }

                if (!isMessegePop)
                {
                    messegeWindow.Switch();
                    buyWindow.Switch();
                    sellWindow.Switch();
                    isMessegePop = true;
                }
                if (buyButton.IsClick(mousePos) && input.IsLeftClick())
                {
                    mode = ShopMode.buy;
                    store.Initialize();
                    store.Buy();
                    messegeWindow.Switch();
                    buyWindow.Switch();
                    sellWindow.Switch();
                    isMessegePop = false;
                }
                else if (sellButton.IsClick(mousePos) && input.IsLeftClick())
                {
                    mode = ShopMode.sell;
                    store.Initialize();
                    store.Sell();
                    messegeWindow.Switch();
                    buyWindow.Switch();
                    sellWindow.Switch();
                    isMessegePop = false;
                }
            }
            else
            {
                if (!isPop)
                {
                    leftWindow.Switch();
                    rightWindow.Switch();
                    isPop = true;
                }

                if (backRect.Contains(mousePos) && input.IsLeftClick())
                {
                    mode = ShopMode.select;
                    leftWindow.Switch();
                    rightWindow.Switch();
                    isPop = false;
                }
            }

            UpdateBlurRate();
            blurEffect.Update(blurRate);
        }
Пример #13
0
 public ValueInfo(CurrencyType currency, long value, ShopMode mode = ShopMode.Any)
 {
     Currency     = currency;
     Value        = value;
     AllowedModes = mode;
 }
Пример #14
0
 internal void HandleShopItemPressed(int index)
 {
     switch (CurrentShopMode)
     {
         case ShopMode.InCategory:
         {
             ShopItem[0].Content.material = BackMaterial;
             switch (index)
             {
                 case 0:
                 {
                     CurrentShopMode = ShopMode.InBase;
                     for (int i = 1; i < 5; i++)
                     {
                         ShopItem[i].Content.material = BaseMaterial[i - 1];
                     }
                 }
                 break;
                 case 1:
                 {
                     CurrentShopMode = ShopMode.InBody;
                     for (int i = 1; i < 5; i++)
                     {
                         ShopItem[i].Content.material = BodyMaterial[i - 1];
                     }
                 }
                 break;
                 case 2:
                 {
                     CurrentShopMode = ShopMode.InTurret;
                     for (int i = 1; i < 5; i++)
                     {
                         ShopItem[i].Content.material = TurretMaterial[i - 1];
                     }
                 }
                 break;
                 case 3:
                 {
                     CurrentShopMode = ShopMode.InInner;
                     for (int i = 1; i < 5; i++)
                     {
                         ShopItem[i].Content.material = InnerAccessoryMaterial[i - 1];
                     }
                 }
                 break;
                 case 4:
                 {
                     CurrentShopMode = ShopMode.InOuter;
                     for (int i = 1; i < 5; i++)
                     {
                         ShopItem[i].Content.material = OuterAccessoryMaterial[i - 1];
                     }
                 }
                 break;
             }
         }
         break;
         case ShopMode.InBase:
         {
             switch(index)
             {
                 case 0:
                 {
                         ResetShopItems();
                 }
                 break;
                 case 1:
                 {
                     ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBaseTo(Color.black);
                     ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBaseTo(Color.black);
                 }
                 break;
                 case 2:
                 {
                     ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBaseTo(Color.green);
                     ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBaseTo(Color.green);
                 }
                 break;
                 case 3:
                 {
                     ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBaseTo(Color.red);
                     ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBaseTo(Color.red);
                 }
                 break;
                 case 4:
                 {
                     ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBaseTo(Color.cyan);
                     ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBaseTo(Color.cyan);
                 }
                 break;
             }
         }
         break;
         case ShopMode.InBody:
         {
             switch (index)
             {
                 case 0:
                     {
                         ResetShopItems();
                     }
                     break;
                 case 1:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBodyTo(Color.black);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBodyTo(Color.black);
                     }
                     break;
                 case 2:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBodyTo(Color.green);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBodyTo(Color.green);
                     }
                     break;
                 case 3:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBodyTo(Color.red);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBodyTo(Color.red);
                     }
                     break;
                 case 4:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeBodyTo(Color.cyan);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeBodyTo(Color.cyan);
                     }
                     break;
             }
         }
         break;
         case ShopMode.InTurret:
         {
             switch (index)
             {
                 case 0:
                     {
                         ResetShopItems();
                     }
                     break;
                 case 1:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeTurretTo(Color.black);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeTurretTo(Color.black);
                     }
                     break;
                 case 2:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeTurretTo(Color.green);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeTurretTo(Color.green);
                     }
                     break;
                 case 3:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeTurretTo(Color.red);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeTurretTo(Color.red);
                     }
                     break;
                 case 4:
                     {
                         ShopSlots.ShopItemsHookedTo.SlotContent.GetComponent<Tower>().ChangeTurretTo(Color.cyan);
                         ShopSlots.ShopItemsHookedTo.ActualTower.GetComponent<Tower>().ChangeTurretTo(Color.cyan);
                     }
                     break;
             }
         }
         break;
         default:
         {
             if (index == 0)
             {
                 ResetShopItems();
             }
         }
         break;
     }
 }
Пример #15
0
 internal void ResetShopItems()
 {
     CurrentShopMode = ShopMode.InCategory;
     ShopItem[0].Content.material = BaseMaterial[0];
     ShopItem[1].Content.material = BodyMaterial[0];
     ShopItem[2].Content.material = TurretMaterial[0];
     ShopItem[3].Content.material = InnerAccessoryMaterial[0];
     ShopItem[4].Content.material = OuterAccessoryMaterial[0];
 }