// 「補給」コマンドを終了 private void FinishSupplyCommand() { GUI.LockGUI(); GUI.OpenMessageForm(SelectedTarget, SelectedUnit); var currentUnit = SelectedUnit; // 選択内容を変更 Event.SelectedUnitForEvent = SelectedUnit; Event.SelectedTargetForEvent = SelectedTarget; // 補給メッセージ&特殊効果 if (currentUnit.IsMessageDefined("補給")) { currentUnit.PilotMessage("補給", msg_mode: ""); } if (currentUnit.IsAnimationDefined("補給", currentUnit.FeatureName("補給装置"))) { currentUnit.PlayAnimation("補給", currentUnit.FeatureName("補給装置")); } else { currentUnit.SpecialEffect("補給", currentUnit.FeatureName("補給装置")); } GUI.DisplaySysMessage(currentUnit.Nickname + "は" + SelectedTarget.Nickname + "に" + currentUnit.FeatureName("補給装置") + "を使った。"); // 補給を実施 SelectedTarget.FullSupply(); SelectedTarget.IncreaseMorale(-10); if (Information.IsNumeric(GeneralLib.LIndex(currentUnit.FeatureData("補給装置"), 2))) { currentUnit.EN = currentUnit.EN - Conversions.ToInteger(GeneralLib.LIndex(currentUnit.FeatureData("補給装置"), 2)); } GUI.UpdateMessageForm(SelectedTarget, SelectedUnit); GUI.DisplaySysMessage(SelectedTarget.Nickname + "の弾数と" + Expression.Term("EN", SelectedTarget) + "が全快した。"); // 経験値を獲得 currentUnit.GetExp(SelectedTarget, "補給", exp_mode: ""); if (GUI.MessageWait < 10000) { GUI.Sleep(GUI.MessageWait); } // 形態変化のチェック SelectedTarget.Update(); SelectedTarget.CurrentForm().CheckAutoHyperMode(); SelectedTarget.CurrentForm().CheckAutoNormalMode(); GUI.CloseMessageForm(); // 行動終了 WaitCommand(); }