public void EndAgreement(AllianceAgreementComp allianceAgreementComp, AgreementEndReason agreementEndReason) { if (AllianceAgreements.Contains(allianceAgreementComp)) { allianceAgreementComp.End(agreementEndReason); AllianceAgreements.Remove(allianceAgreementComp); } }
public bool AddAgreement(AllianceAgreementDef allianceAgreementDef, FactionInteraction signedFaction, int endTicks) { if (!CanSignAgreement(allianceAgreementDef, out string reason)) { Messages.Message("Alliance_AddAgreement_False".Translate(reason), MessageTypeDefOf.NeutralEvent); return(false); } AllianceAgreementComp allianceAgreementComp = (AllianceAgreementComp)Activator.CreateInstance(allianceAgreementDef.Comp.compClass); allianceAgreementComp.AllianceAgreementDef = allianceAgreementDef; allianceAgreementComp.SignedFaction = signedFaction; allianceAgreementComp.OwnerFaction = QuestsManager.Communications.FactionManager.GetInteraction(FactionOwner); allianceAgreementComp.EndTicks = Find.TickManager.TicksGame + endTicks; allianceAgreementComp.SignTicks = Find.TickManager.TicksGame; allianceAgreementComp.Alliance = this; AllianceAgreements.Add(allianceAgreementComp); return(true); }
public AllianceAgreementComp GetAgreement(AllianceAgreementDef allianceAgreementDef) { return(AllianceAgreements.FirstOrDefault(x => x.AllianceAgreementDef == allianceAgreementDef)); }
public bool AgreementActive(AllianceAgreementDef allianceAgreementDef) { return(AllianceAgreements.Any(x => x.AllianceAgreementDef == allianceAgreementDef)); }
public bool AddAgreement(AllianceAgreementComp allianceAgreementComp) { AllianceAgreements.Add(allianceAgreementComp); return(true); }