示例#1
0
 /// <summary>
 /// Checks if a character currently has an order to perform.
 /// </summary>
 /// <param name="id">ID of the character</param>
 /// <returns>True if an order exists, false otherwise</returns>
 public static bool HasOrderForCharacter(int id)
 {
     lock (Orders)
     {
         AI_Order order = (AI_Order)Orders[id];
         return(order != null);
     }
 }
示例#2
0
 /// <summary>
 /// Retrieves the current order for a character. The order is then consumed.
 /// </summary>
 /// <param name="id">ID of the character</param>
 /// <returns>Order to perform</returns>
 public static AI_Order GetOrderForCharacter(int id)
 {
     lock (Orders)
     {
         AI_Order order = (AI_Order)Orders[id];
         Orders[id] = null;
         return(order);
     }
 }
示例#3
0
 /// <summary>
 /// Gives a new order to a character. Previous orders that were not consumed are overriden.
 /// </summary>
 /// <param name="id"></param>
 /// <param name="code">Action code</param>
 /// <param name="direction">Target direction of the action (optional)</param>
 /// <param name="position">Target position of the action (optional)</param>
 /// <returns>Order to perform</returns>
 public static AI_Order SetOrderForCharacter(int id, EActionCode code, Vector3 position, Vector3 direction)
 {
     lock (Orders)
     {
         AI_Order order = new AI_Order(id, code, position, direction);
         Orders[id] = order;
         return(order);
     }
 }
示例#4
0
    public void Update()
    {
        AI_Params.PushCharacter(AI_Params.PlayerID, ECharacterType.CharacterTypePlayer, Vector3.zero, Vector3.zero, Vector3.zero, true);
        //AI_Params.PushEvent(EEventType.EventTypeActionStarted, AI_Params.PlayerID, AI_Params.UnknownID, EActionCode.ActionCodeAttackLight);
        //if (Time.time > 2.0) AI_Params.PushEvent(EEventType.EventTypeGameEnd);
        AI_Params.Send(Time.time);
        AI_Order order = AI_Orders.GetOrderForCharacter(AI_Params.PlayerID);

        if (order != null)
        {
            Debug.Log("[Game] Order received (id: " + order.CharacterID + ", code: " + order.ActionCode + ").");
        }
    }