/// <summary>引数のRootEventが必要とするAIをジャック(ジャックに失敗した場合はfalse)</summary> public bool jackRequared(MapEventRoot aRoot) { //Invokerジャック if (aRoot.mJackInvoker) { if (!jack("invoker")) { return(false); } } //Invokedジャック if (aRoot.mJackInvoked) { if (!jack("invoked")) { return(false); } } //その他のキャラジャック foreach (string tName in aRoot.mRequareAi) { if (!jack(tName)) { return(false); } } return(true); }
/// <summary> /// エンカウント発火 /// </summary> /// <returns>イベントの実行ができたらtrue</returns> /// <param name="aEncountKey">エンカウントKey</param> public bool encount(string aEncountKey) { MapEventEncount tEncount = new MapEventEncount(mWorld.mMapName, aEncountKey); MapEventRoot tRoot = new MapEventRoot(new List <string>(), true, false, tEncount); Operator tOperator = new Operator(this, tRoot); tOperator.mInvoker = mWorld.getPlayer(); return(addOperator(tOperator)); }
/// <summary> /// マップ移動イベントの移動後のイベント処理実行 /// </summary> /// <param name="aEvent">マップ移動イベント</param> public void addMoveMapEventEndSide(MapEventMoveMapEndSide aEvent, MapCharacter aInvoker) { MapEventRoot tRoot = new MapEventRoot(new List <string>(), true, false, aEvent); Operator tOperator = new Operator(this, aEvent); tOperator.mInvoker = aInvoker; if (addOperator(tOperator)) { runWaitingEvents(); } else { throw new System.Exception("MapEventSystem : マップ移動後イベントの実行に失敗"); } }