private double CalcShrineApproval(MapComponent_AncestorTicker ancestorDriver) { if (ancestorDriver.CurrentSpawner == null) { if (this.previousShrineStatus != ShrineStatus.none) { this.previousShrineStatus = ShrineStatus.none; // TODO: Not hardcoded strings! Find.LetterStack.ReceiveLetter("No Shrines!", "Your Ancestors are displeased that you have no " + "shrines! You will lose approval with them until you build a shrine.", LetterType.BadNonUrgent); } return(NoShrinesLossPerInterval); } else if (ancestorDriver.NumSpawners > 1) { if (this.previousShrineStatus != ShrineStatus.many) { this.previousShrineStatus = ShrineStatus.many; // TODO: Not hardcoded strings! Find.LetterStack.ReceiveLetter("Too many Shrines!", "Your Ancestors are displeased that you have " + "too many shrines! You should have one shrine, and one shrine only! You will lose approval with " + "them until you demolish the extras.", LetterType.BadNonUrgent); } return(ManyShrinesLossPerInterval); } else { this.previousShrineStatus = ShrineStatus.one; return(0); } }
public void ApprovalTrackerTickInterval(MapComponent_AncestorTicker ancestorDriver) { double approvalDelta = 0; if (Find.TickManager.TicksGame > ShrineLossDelayTicks) { approvalDelta += this.CalcShrineApproval(ancestorDriver); } this.UpdateHistory(approvalDelta); }