Ejemplo n.º 1
0
 public override void GameComponentTick()
 {
     if (Find.TickManager.TicksGame % 2000 != 0 || !Rand.Chance(0.05f))
     {
         return;
     }
     if (this.sendAICoreRequestReminder)
     {
         if (ResearchProjectTagDefOf.ShipRelated.CompletedProjects() < 2)
         {
             return;
         }
         if (PlayerItemAccessibilityUtility.PlayerOrQuestRewardHas(ThingDefOf.AIPersonaCore) || PlayerItemAccessibilityUtility.PlayerOrQuestRewardHas(ThingDefOf.Ship_ComputerCore))
         {
             return;
         }
         Faction faction = Find.FactionManager.RandomNonHostileFaction(false, false, true, TechLevel.Undefined);
         if (faction == null || faction.leader == null)
         {
             return;
         }
         Find.LetterStack.ReceiveLetter("LetterLabelAICoreOffer".Translate(), "LetterAICoreOffer".Translate(faction.leader.LabelDefinite(), faction.Name, faction.leader.Named("PAWN")).CapitalizeFirst(), LetterDefOf.NeutralEvent, GlobalTargetInfo.Invalid, faction, null);
         this.sendAICoreRequestReminder = false;
     }
 }
        static bool Prefix(ref GameComponent_OnetimeNotification __instance)
        {
            if (Find.TickManager.TicksGame % 2000 > RefcellRespeedConfig.currentTimeMultiplier - 1 ||
                !Rand.Chance(0.05f) || (!__instance.sendAICoreRequestReminder ||
                                        ResearchProjectTagDefOf.ShipRelated.CompletedProjects() < 2) ||
                (PlayerItemAccessibilityUtility.PlayerOrQuestRewardHas(ThingDefOf.AIPersonaCore) ||
                 PlayerItemAccessibilityUtility.PlayerOrQuestRewardHas(ThingDefOf.Ship_ComputerCore)))
            {
                return(false);
            }
            Faction relatedFaction = Find.FactionManager.RandomNonHostileFaction();

            if (relatedFaction == null || relatedFaction.leader == null)
            {
                return(false);
            }
            Find.LetterStack.ReceiveLetter(
                "LetterLabelAICoreOffer".Translate(),
                "LetterAICoreOffer".Translate((NamedArgument)relatedFaction.leader.LabelDefinite(),
                                              (NamedArgument)relatedFaction.Name, relatedFaction.leader.Named("PAWN")).CapitalizeFirst(),
                LetterDefOf.NeutralEvent, (LookTargets)GlobalTargetInfo.Invalid, relatedFaction);
            __instance.sendAICoreRequestReminder = false;
            return(false);
        }
Ejemplo n.º 3
0
 public override void GameComponentTick()
 {
     if (Find.TickManager.TicksGame % 2000 == 0 && Rand.Chance(0.05f) && sendAICoreRequestReminder && ResearchProjectTagDefOf.ShipRelated.CompletedProjects() >= 2 && !PlayerItemAccessibilityUtility.PlayerOrQuestRewardHas(ThingDefOf.AIPersonaCore) && !PlayerItemAccessibilityUtility.PlayerOrQuestRewardHas(ThingDefOf.Ship_ComputerCore))
     {
         Faction faction = Find.FactionManager.RandomNonHostileFaction();
         if (faction != null && faction.leader != null)
         {
             Find.LetterStack.ReceiveLetter("LetterLabelAICoreOffer".Translate(), "LetterAICoreOffer".Translate(faction.leader.LabelDefinite(), faction.Name, faction.leader.Named("PAWN")).CapitalizeFirst(), LetterDefOf.NeutralEvent, GlobalTargetInfo.Invalid, faction);
             sendAICoreRequestReminder = false;
         }
     }
 }