public override void Notify_WarIsStarted(War war) { base.Notify_WarIsStarted(war); if (WarUtility.WarWithPlayer(war)) { EndComp(); } }
public override void DoAction(FactionInteraction interaction, Pawn speaker, Pawn defendant) { if (WarUtility.FirstWarWithPlayer(interaction) != null) { Messages.Message("CommOption_InviteToAlliance_InWar".Translate(), MessageTypeDefOf.NeutralEvent); return; } if (interaction.Faction.RelationKindWith(Faction.OfPlayer) == FactionRelationKind.Hostile) { Messages.Message("CommOption_InviteToAlliance_NeedAAlly".Translate(), MessageTypeDefOf.NeutralEvent); return; } if (interaction.Trust < TrustMinNeed) { Messages.Message("CommOption_InviteToAlliance_NeedTrust".Translate(TrustMinNeed), MessageTypeDefOf.NeutralEvent); return; } if (blocked) { int waitTicks = (lastUseTicks - Find.TickManager.TicksGame) / 60000; Messages.Message("CommOption_InviteToAlliance_Wait".Translate(waitTicks.ToString("f2")), MessageTypeDefOf.NeutralEvent); return; } if (Alliance == null) { Messages.Message("CommOption_InviteToAlliance_NoAlliance".Translate(), MessageTypeDefOf.NeutralEvent); return; } if (interaction.InAnyAlliance()) { Messages.Message("CommOption_InviteToAlliance_AlreadyInAlliance".Translate(), MessageTypeDefOf.NeutralEvent); return; } if (Alliance.Factions.Any(x => x.Faction.HostileTo(interaction.Faction))) { Messages.Message("CommOption_InviteToAlliance_AnyHostileInAlliance".Translate(), MessageTypeDefOf.NeutralEvent); return; } defendantFaction = interaction; Dialog dia = new Dialog(DialogDef, speaker, defendantFaction.Faction.leader); dia.Init(); dia.CloseAction = CheckAnswer; Find.WindowStack.Add(dia); }
public void Notify_WarIsStarted(War war) { if (!InWars.Contains(war)) { InWars.Add(war); QuestsManager.Communications.Components.ForEach(x => x.Notify_WarIsStarted(war)); if (WarUtility.WarWithPlayer(war)) { var nonAgressive = GetOption <CommOption_NonAgressionPact>(); if (nonAgressive != null) { nonAgressive.Signed = false; } } } }