public AIGoalDescriptor(float priority, float tenacityMultiplier = 1.0f, AIGoalType type = AIGoalType.Scripted, AIGoalStatus status = AIGoalStatus.Pending) { this.priority = priority; this.tenacityMultiplier = tenacityMultiplier; this.type = type; this.status = status; }
// public AIGoalPrioritizer prioritizer; //might be a string lookup // public AIGoalTargetSelector targetSelector; //might be a string lookup //todo introduce AIGoalStatus.Valid|Invalid. //use case would be target list but some have not entered battle yet public AIGoal(AIGoalDescriptor descriptor) { this.status = descriptor.status; this.type = descriptor.type; this.priority = descriptor.priority; this.tenacityMultiplier = descriptor.tenacityMultiplier; if (this.status == AIGoalStatus.Pending) { OnActivate(); } }