コード例 #1
0
    protected override void normalAction()
    {
        ItemInventory targetinv = WindowOwner.Parameter.Inventory;
        // 使う
        if (SelectedObject is UsableItemBasis)
        {

            MenuContoller.doDisableAllMenu();
            UsableItemBasis item = SelectedObject as UsableItemBasis;
            if (Window.SelectedText.Equals(item.UseTimeLabel)) {
                if (CurrentMode == InventoryMode.FIELD && !SelectedObject.canPickUp())
                {
                    return;
                }
                GameController.ActCommandController.registerCommand(new CMD_UseItem((WindowOwner as PlayerController), item, CurrentMode));//item.doUse(WindowOwner, WindowOwner.gameObject);
            }
            //WindowOwner.acted();
        }
        switch (Window.SelectedText)
        {
            case trade:
                // 交換
                MenuContoller.doDisableAllMenu();
                switch (CurrentMode) {
                    case InventoryMode.PLYAER:
                        //(WindowOwner as PlayerController).tradeItem(SelectedObject, targetinv);
                        GameController.ActCommandController.registerCommand( new CMD_TradeItem(WindowOwner as PlayerController,SelectedObject, targetinv));
                        WindowOwner.acted();
                        break;
                    case InventoryMode.FIELD:
                        if (SelectedObject.canPickUp()) {
                            var invmenu = new ItemInventoryMenu(this.WindowOwner);
                            invmenu.SubmitAct = delegate
                            {
                                MenuContoller.doDisableAllMenu();
                                GameController.ActCommandController.registerCommand(new CMD_TradeItem(WindowOwner as PlayerController, invmenu.SelectedItem, targetinv));
                                //(WindowOwner as PlayerController).tradeItem(invmenu.SelectedItem, targetinv);
                                WindowOwner.acted();
                            };
                            invmenu.open();
                        }
                        break;
                }

                break;
            case put:
                // 置く
                MenuContoller.doDisableAllMenu();
                GameController.ActCommandController.registerCommand(new CMD_PutItem((WindowOwner as PlayerController), SelectedObject, targetinv));
                WindowOwner.acted();
                break;
            case equip:
                // 装備
                MenuContoller.doDisableAllMenu();
                GameController.ActCommandController.registerCommand(new CMD_EquipItem(WindowOwner as PlayerController, SelectedObject as EquipmentItemBasis));
                //(WindowOwner as PlayerController).equip(SelectedObject as EquipmentItemBasis);
                if(!(SelectedObject is ShotItemBasis)) WindowOwner.acted();
                break;
            case remove:
                // 外す
                MenuContoller.doDisableAllMenu();
                GameController.ActCommandController.registerCommand(new CMD_RemovaEqipment(WindowOwner as PlayerController, SelectedObject as EquipmentItemBasis));
                //(WindowOwner as PlayerController).removeEquipment(SelectedObject.Code);
                if (!(SelectedObject is ShotItemBasis)) WindowOwner.acted();
                break;
            case term:
                // 名前
                naming();
                break;
            case description:
                // 説明
                DescriptionMenu.open(SelectedObject);
                //MenuContoller.doEnableMenu(DescriptionMenu);
                break;
            case lookinside:
                // 見る
                (SelectedObject as PotBasis).openInventory(WindowOwner,CurrentMode);
                break;
            case throwitem:
                // 投げる
                MenuContoller.doDisableAllMenu();
                if (CurrentMode == InventoryMode.FIELD) {
                    if(!SelectedObject.canPickUp()) return;
                    targetinv = null;
                }
                GameController.ActCommandController.registerCommand(new CMD_ThrowItem((WindowOwner as PlayerController),SelectedObject,targetinv));
                //WindowOwner.throwItem(SelectedObject,targetinv);
                WindowOwner.acted();
                break;
            case shot:
                MenuContoller.doDisableAllMenu();
                GameController.ActCommandController.registerCommand(new CMD_Shot((WindowOwner as PlayerController), SelectedObject as ShotItemBasis));
                //(SelectedObject as ShotItemBasis).shot(WindowOwner);
                WindowOwner.acted();
                break;
            case pickup:
                MenuContoller.doDisableAllMenu();
                GameController.ActCommandController.registerCommand(new CMD_PickUpItem((WindowOwner as PlayerController),SelectedObject));
                WindowOwner.acted();
                break;
            default:
                ISpecialUseActionItem spitem = SelectedObject as ISpecialUseActionItem;
                if (spitem != null) {
                    MenuContoller.doDisableAllMenu();
                    spitem.specialUseAction(WindowOwner);
                }
                break;
        }
    }