/// <summary> /// Calculates the score for this qualifier given the provided context. /// </summary> /// <param name="context">The context.</param> /// <returns> /// The score. /// </returns> public virtual float Score(IAIContext context) { var score = _qualifier.Score(context); this.lastScore = score; ICustomVisualizer customVisualizer; if (VisualizationManager.TryGetVisualizerFor(_qualifier.GetType(), out customVisualizer)) { customVisualizer.EntityUpdate(_qualifier, context, _parent.parent.id); } return(score); }
/// <summary> /// Debugs the client info. /// </summary> /// <returns>The client info.</returns> /// <param name="taskNetwork">Task network.</param> public static string ClientStateInfo(TaskNetworkComponent taskNetwork) { string clientInfo = ""; foreach (UtilityAIClient client in taskNetwork.clients) { clientInfo = client.ai + " | State: " + client.state + "\n"; foreach (KeyValuePair <IQualifier, float> item in client.selectorResults) { IQualifier qualifier = item.Key; float score = item.Value; var action = qualifier.action; var actionName = action.GetType().Name; if (action is ActionWithOptions <Vector3> ) { var _action = action as ActionWithOptions <Vector3>; action = _action; //actionName = _action.name; } if (client.currentAction == action) { clientInfo += string.Format(" <b>Qualifier:</b> {0} | <b>Score:</b>: <color=lime>{1}</color>\n <b>Action:</b>: <color=lime>{2}</color>\n", qualifier.GetType().Name, score, actionName); } else { clientInfo += string.Format(" <b>Qualifier:</b> {0} | <b>Score:</b>: {1}\n <b>Action:</b>: {2}\n", qualifier.GetType().Name, score, actionName); } } } return(clientInfo); }