using System; public class DialogRequirementHasTask : BaseDialogRequirement { // // public override bool CheckRequirement(EntityPlayer player, EntityNPC talkingTo) { var entityId = 0; if (player.Buffs.HasCustomVar("CurrentNPC")) entityId = (int)player.Buffs.GetCustomVar("CurrentNPC"); var myEntity = player.world.GetEntity(entityId) as EntityAlive; if (myEntity == null) return false; bool useAIPackages = EntityClass.list[myEntity.entityClass].UseAIPackages; if (!useAIPackages) return false; var result = false; // Check if we want a reverse condition var package = Value; if (package.StartsWith("!")) package = package.Replace("!", ""); // Go through all the foreach (var availablePackage in myEntity.AIPackages) { if (UAI.UAIBase.AIPackages.ContainsKey(availablePackage)) { foreach (var item in UAI.UAIBase.AIPackages[availablePackage].GetActions()) { if (item.Name.ToLower() == Value.ToLower()) { result = true; break; } } } if (result) break; } // Flip the results if (Value.Contains("!")) return !result; return result; } }