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; } }