//////////////// public override bool PreAI() { if (PirateLogic.Instance.CheckAndValidateNegotiatorPresence(npc)) { this.UpdateHaggleState(this.npc); } else { PirateNegotiatorTownNPC.Exit(npc, false); return(false); } return(base.PreAI()); }
public static void AllDealingsFinished_FromServer(Player player, long offerTested, long offerAmount) { var logic = PirateLogic.Instance; if (player != null && offerAmount > 0) { logic.GiveFinalOffer(player, offerTested, offerAmount, true); } else { logic.GiveNoOffer(true); } logic.SetNextNegotiatorArrivalTime(logic.IsRaiding); int negotType = NPCType <PirateNegotiatorTownNPC>(); IEnumerable <NPC> negotiator = Main.npc.SafeWhere(n => n?.active == true && n.type == negotType); // Remove negotiator(s) foreach (NPC npc in negotiator) { PirateNegotiatorTownNPC.Exit(npc, false); } }