/// <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 : マップ移動後イベントの実行に失敗");
        }
    }