public NumberInputWindow(Node parent, int id, int money, Common.Parameter.Quality quality) : base(parent)
        {
            _id      = id;
            _money   = money;
            _quority = quality;

            createWindow(id, money);
        }
示例#2
0
        public ShopListButton(Texture2D texture, int id, int money, Common.Parameter.Quality quality) : base()
        {
            _id      = id;
            _money   = money;
            _type    = Type.Food;
            _quolity = quality;

            createButton(texture);

            _text.Text = Function.SearchItemById(id).name + "(品質:" + Function.Quolity2String(quality) + "):" + money.ToString() + "G";
        }
示例#3
0
        public void OnClick(Vector2F position)
        {
            if (_dialog != null && _dialog.IsShow)
            {
                Function.PlaySoundOK();
                if (_isLevelup)
                {
                    _dialog.UpdateText(
                        "経営レベルが上がりました\n(" + GameData.PlayerData.ManagementLevel.ToString() + ")"
                        );
                    _isLevelup = false;
                    return;
                }
                _dialog.RemoveNode(_parentNode);
                _confirmWindow.Hide();
                return;
            }

            if (_confirmWindow != null && _confirmWindow.IsShow())
            {
                _confirmWindow.OnClick(position);
                return;
            }

            foreach (var column in requestColumns)
            {
                if (column.DeliveryButton.Click(position))
                {
                    Function.PlaySoundOK();
                    _confirmWindow = new ConfirmWindow(_parentNode,
                                                       column.Label.GetText() + "\n" +
                                                       "納品しますか?\n" +
                                                       "(品質の高いものから使用されます)",
                                                       () =>
                    {
                        var request = column.GetRequest();
                        int num     = request.Num;
                        int quolity = 0;
                        for (int q = 0; q < Common.Parameter.QuolityMaxNum; q++)
                        {
                            if (GameData.PlayerData.Item[request.ItemId, q] < num)
                            {
                                quolity += Function.Quolity2Value(q) * GameData.PlayerData.Item[request.ItemId, q];
                                num     -= GameData.PlayerData.Item[request.ItemId, q];
                                GameData.PlayerData.Item[request.ItemId, q] = 0;
                            }
                            else
                            {
                                quolity += Function.Quolity2Value(q) * num;
                                GameData.PlayerData.Item[request.ItemId, q] -= num;
                                break;
                            }
                        }
                        Common.Parameter.Quality averageQuolity = Function.QualityByValue(quolity / request.Num);
                        float bonus = Function.Quolity2Bonus(averageQuolity);
                        GameData.PlayerData.Money += (int)(request.Money * bonus);
                        _dialog = new Dialog();
                        _dialog.SetNode("納品しました\n" +
                                        "(品質" + Function.Quolity2String(averageQuolity) + ")\n" +
                                        "(+" + (request.Money * bonus).ToString() + "G)", _parentNode);
                        column.DeleteRequest();
                        //納品出来なくなったリクエストはロックする
                        foreach (var column2 in requestColumns)
                        {
                            column2.ButtonUpdate();
                        }
                        GameData.PlayerData.ManagementExperience += column.Exp;
                        if (GameData.PlayerData.ManagementExperience >= GameData.PlayerData.ManagementLevel * 25)
                        {
                            GameData.PlayerData.ManagementExperience -= GameData.PlayerData.ManagementLevel * 25;
                            GameData.PlayerData.ManagementLevel++;
                            GameData.PlayerData.MaxPower++;
                            _isLevelup = true;
                        }
                    });
                    _confirmWindow.Show();
                    return;
                }
                if (column.DestructionButton.Click(position))
                {
                    Function.PlaySoundOK();
                    _confirmWindow = new ConfirmWindow(_parentNode,
                                                       column.Label.GetText() +
                                                       "\n破棄しますか?",
                                                       () =>
                    {
                        _dialog = new Dialog();
                        _dialog.SetNode("破棄しました", _parentNode);
                        column.DeleteRequest();
                    });
                    _confirmWindow.Show();
                    return;
                }
            }
        }