//////////////// public bool GiveOffer(long offerAmount) { var logic = PirateLogic.Instance; if (this.OfferTested == -1) { this.OfferTested = offerAmount; HaggleAmount replyType = PirateLogic.GaugeOffer(logic.ComputedDemand, offerAmount); Main.npcChatText = PirateNegotiatorTownNPC.HaggleReplies[replyType]; } else { HaggleAmount replyType = PirateLogic.GaugeOffer(logic.ComputedDemand, offerAmount); Main.npcChatText = PirateNegotiatorTownNPC.OfferReplies[replyType]; if (this.OfferTested > offerAmount) { Main.npcChatText += "\n " + PirateNegotiatorTownNPC.OfferReduceReply; } this.OfferAmount = offerAmount; } return(this.OfferAmount > 0); }
public void GiveFinalOffer(Player player, long offerTested, long offerAmount, bool syncFromServer) { HaggleAmount measure = PirateLogic.GaugeOffer(this.ComputedDemand, offerAmount); // Testing for lower amounts lowers negotiator's patience if (offerTested > offerAmount) { if (measure != HaggleAmount.VeryHigh && measure != HaggleAmount.High) { switch (this.Patience) { case PirateMood.Normal: this.Patience = PirateMood.Impatient; break; case PirateMood.Impatient: this.Patience = PirateMood.Menacing; break; case PirateMood.Menacing: //this.BeginRaid( syncFromServer ); break; } } } switch (measure) { case HaggleAmount.VeryHigh: case HaggleAmount.High: switch (this.Patience) { case PirateMood.Impatient: this.Patience = PirateMood.Normal; break; case PirateMood.Menacing: this.Patience = PirateMood.Impatient; break; } this.GiveGoodOffer(player, offerAmount, syncFromServer); break; case HaggleAmount.Good: this.GiveGoodOffer(player, offerAmount, syncFromServer); break; case HaggleAmount.Low: switch (this.Patience) { case PirateMood.Normal: this.Patience = PirateMood.Impatient; this.GiveLowOffer(player, offerAmount, syncFromServer); break; case PirateMood.Impatient: this.Patience = PirateMood.Menacing; this.GiveLowOffer(player, offerAmount, syncFromServer); break; case PirateMood.Menacing: this.Patience = PirateMood.Normal; this.BeginRaid(syncFromServer); break; } break; case HaggleAmount.TooLow: this.BeginRaid(syncFromServer); break; } }