コード例 #1
0
        protected override bool TryExecuteWorker(IncidentParms parms)
        {
            Log.Message(parms.ToString());


            if (!base.TryResolveParms(parms) || !CanFireNowSub(parms) || parms.faction.HostileTo(Faction.OfPlayer))
            {
                Log.Warning("Can't fire: CanFireNow " + CanFireNowSub(parms).ToString() + " Try Resolve: " + TryResolveParms(parms).ToString() + " " + parms.faction.HostileTo(Faction.OfPlayer).ToString()); return(false);
            }

            Map         map    = (Map)parms.target;
            List <Pawn> guests = base.SpawnPawns(parms);

            if (guests.Count == 0)
            {
                return(false);
            }

            Log.Message(parms.spawnCenter.ToString());
            if (parms.spawnCenter == IntVec3.Invalid)
            {
                parms.spawnCenter = DropCellFinder.TradeDropSpot(map);
            }

            for (int i = 0; i < guests.Count; i++)
            {
                if (guests[i].needs?.food != null)
                {
                    guests[i].needs.food.CurLevel = guests[i].needs.food.MaxLevel;
                }
            }
            //Find.LetterStack.ReceiveLetter(def.letterLabel, "Wedding guests arrived", LetterDefOf.PositiveEvent, guests[0], parms.faction, null);
            RCellFinder.TryFindRandomSpotJustOutsideColony(guests[0], out IntVec3 chillSpot);

            Lord lord = map.lordManager.lords.Find(x => x.LordJob is LordJob_NonVoluntaryJoinable_MarriageCeremony);

            foreach (Pawn guest in guests)
            {
                if (lord != null)
                {
                    lord.AddPawn(guest);
                }
                else
                {
                    Log.Warning("no lord");
                    break;
                }
            }

            //LordJob_TradeWithColony lordJob = new LordJob_TradeWithColony(parms.faction, chillSpot);
            //LordMaker.MakeNewLord(parms.faction, lordJob, map, guests);
            return(true);
        }
コード例 #2
0
        public override bool IsPossible()
        {
            ToolkitPatchLogger.Log(incidentDef.defName, "Checking if possible..");
            worker     = Activator.CreateInstance <T>();
            worker.def = incidentDef;

            parms        = StorytellerUtility.DefaultParmsNow(category, target);
            parms.forced = shouldForceFire;

            bool success = worker.CanFireNow(parms);

            if (!success)
            {
                WorkerCanFireCheck.CheckDefaultFireNowConditions(worker, parms, incidentDef);
            }

            ToolkitPatchLogger.Log(incidentDef.defName, $"Can fire with params '{parms.ToString()}' on worker {worker.ToString()}? {success}");

            return(success);
        }
コード例 #3
0
 /// <summary>
 /// Lt.Bob - Unifies debug information to central command (__instance)
 /// </summary>
 /// <param name="parms"></param>
 /// <param name="IncDef"></param>
 public static void DebugParms(IncidentParms parms, IncidentDef IncDef = null)
 {
     Log.Message("   PS=- parms= " + parms.ToString(), false);
     if (parms.quest != null)
     {
         Log.Message("   PS=- parms.quest= " + parms.quest.ToString(), false);
         Log.Message("   PS=- parms.quest.PartsListForReading= " + parms.quest.PartsListForReading, false);
     }
     else
     {
         Log.Message("   PS=- parms.quest= NULL", false);
     }
     if (parms.questTag != null)
     {
         Log.Message("   PS=- parms.questTag= " + parms.questTag.ToString(), false);
     }
     else
     {
         Log.Message("   PS=- parms.questTag= NULL", false);
     }
     if (parms.questScriptDef != null)
     {
         Log.Message("   PS=- parms.questScriptDef= " + parms.questScriptDef.ToString(), false);
     }
     else
     {
         Log.Message("   PS=- parms.questScriptDef= NULL", false);
     }
     if (IncDef == null)
     {
         Log.Message("   PS=- IncidentDef= NULL", false);
         return;
     }
     Log.Message("   PS=- IncidentDef= " + IncDef.ToString(), false);
     if (IncDef.defName != null)
     {
         Log.Message("   PS=- IncidentDef.defName= " + IncDef.defName, false);
         return;
     }
     Log.Message("   PS=- IncidentDef.defName= NULL", false);
 }
コード例 #4
0
        public override bool IsPossible()
        {
            ToolkitPatchLogger.Log(incidentDef.defName, "Checking if possible..");
            worker     = GetWorker();
            worker.def = incidentDef;

            if (target != null)
            {
                parms        = StorytellerUtility.DefaultParmsNow(incidentCategoryDef, target);
                parms.forced = shouldForceFire;

                bool success = worker.CanFireNow(parms);
                if (!success)
                {
                    WorkerCanFireCheck.CheckDefaultFireNowConditions(worker, parms, incidentDef);
                }
                ToolkitPatchLogger.Log(incidentDef.defName, $"Can fire with params '{parms.ToString()}' on worker {worker.ToString()}? {success}");
                return(success);
            }

            ToolkitPatchLogger.ErrorLog(incidentDef.defName, $"Failed to get target. Cannot fire");
            return(false);
        }