public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_SetLeadership lordToil_Party = new LordToil_SetLeadership(this.spot); stateGraph.AddToil(lordToil_Party); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Party, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff())); transition.AddTrigger(new Trigger_PawnLostViolently()); transition.AddPreAction(new TransitionAction_Message("ElectionFail_Disaster".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false))); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(5000, 8000)); Transition transition2 = new Transition(lordToil_Party, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Message("ElectionFinished".Translate(), MessageTypeDefOf.PositiveEvent, new TargetInfo(this.spot, base.Map, false))); transition2.AddPreAction(new TransitionAction_Custom(new Action(delegate { this.Finished(); }))); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil startingToil = stateGraph.AttachSubgraph(new LordJob_Travel(this.siegeSpot).CreateGraph()).StartingToil; LordToil_Siege lordToil_Siege = new LordToil_Siege(this.siegeSpot, this.blueprintPoints); stateGraph.AddToil(lordToil_Siege); LordToil startingToil2 = stateGraph.AttachSubgraph(new LordJob_AssaultColony(this.faction, true, true, false, false, true).CreateGraph()).StartingToil; Transition transition = new Transition(startingToil, lordToil_Siege, false, true); transition.AddTrigger(new Trigger_Memo("TravelArrived")); transition.AddTrigger(new Trigger_TicksPassed(5000)); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_Siege, startingToil2, false, true); transition2.AddTrigger(new Trigger_Memo("NoBuilders")); transition2.AddTrigger(new Trigger_Memo("NoArtillery")); transition2.AddTrigger(new Trigger_PawnHarmed(0.08f, false, null)); transition2.AddTrigger(new Trigger_FractionPawnsLost(0.3f)); transition2.AddTrigger(new Trigger_TicksPassed((int)(60000f * Rand.Range(1.5f, 3f)))); transition2.AddPreAction(new TransitionAction_Message("MessageSiegersAssaulting".Translate(new object[] { this.faction.def.pawnsPlural, this.faction }), MessageTypeDefOf.ThreatBig, null, 1f)); transition2.AddPostAction(new TransitionAction_WakeAll()); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { var mainGraph = new StateGraph(); var toil_Attend = new LordToil_AttendShow(audienceRect, entertainer, entertainerSpot); mainGraph.AddToil(toil_Attend); var toil_End = new LordToil_End(); mainGraph.AddToil(toil_End); var trans_NormalEnd = new Transition(toil_Attend, toil_End); trans_NormalEnd.AddTrigger(new Trigger_Memo("StopEntertaining")); trans_NormalEnd.AddTrigger(new Trigger_TicksPassed(durationRange.RandomInRange)); trans_NormalEnd.AddPreAction(new TransitionAction_Message("ShowEnded".Translate(entertainer.LabelShort))); mainGraph.AddTransition(trans_NormalEnd); var trans_BadEnd = new Transition(toil_Attend, toil_End); trans_BadEnd.AddTrigger(new Trigger_Memo("DangerPresent")); trans_BadEnd.AddTrigger(new Trigger_TickCondition(() => ShouldBeCalledOff())); trans_BadEnd.AddTrigger(new Trigger_PawnLostViolently()); trans_BadEnd.AddPreAction(new TransitionAction_Message("ShowEndedBad".Translate(entertainer.LabelShort))); mainGraph.AddTransition(trans_BadEnd); return(mainGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil party = CreateGatheringToil(spot, organizer, gatheringDef); stateGraph.AddToil(party); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(party, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => ShouldBeCalledOff())); transition.AddTrigger(new Trigger_PawnKilled()); transition.AddTrigger(new Trigger_PawnLost(PawnLostCondition.LeftVoluntarily, organizer)); transition.AddPreAction(new TransitionAction_Custom((Action) delegate { ApplyOutcome((LordToil_Party)party); })); transition.AddPreAction(new TransitionAction_Message(gatheringDef.calledOffMessage, MessageTypeDefOf.NegativeEvent, new TargetInfo(spot, base.Map))); stateGraph.AddTransition(transition); timeoutTrigger = GetTimeoutTrigger(); Transition transition2 = new Transition(party, lordToil_End); transition2.AddTrigger(timeoutTrigger); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { ApplyOutcome((LordToil_Party)party); })); transition2.AddPreAction(new TransitionAction_Message(gatheringDef.finishedMessage, MessageTypeDefOf.SituationResolved, new TargetInfo(spot, base.Map))); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Funeral lordToil_Funeral = new LordToil_Funeral(this.spot); stateGraph.AddToil(lordToil_Funeral); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Funeral, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => !PartyUtility.AcceptableGameConditionsToContinueParty(base.Map))); transition.AddTrigger(new Trigger_PawnLostViolently()); transition.AddPreAction(new TransitionAction_Message("MessageFuneralCalledOff".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, this.Map, false))); stateGraph.AddTransition(transition); int length = Rand.RangeInclusive(GenDate.TicksPerHour, Mathf.RoundToInt(GenDate.TicksPerHour * 2.5f)); this.timeoutTrigger = new Trigger_TicksPassed(length); Transition transition2 = new Transition(lordToil_Funeral, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { this.Finished(); })); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_LoadShipCargo loadToil = new LordToil_LoadShipCargo(ship); stateGraph.AddToil(loadToil); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(loadToil, lordToil_End); transition.AddTrigger(new Trigger_PawnLost()); transition.AddPreAction(new TransitionAction_Message("MessageFailedToLoadTransportersBecauseColonistLost".Translate(), MessageSound.Negative)); transition.AddPreAction(new TransitionAction_Custom(new Action(this.CancelLoadingProcess))); stateGraph.AddTransition(transition); Transition endTransition = new Transition(loadToil, lordToil_End); endTransition.AddTrigger(new Trigger_TicksPassed(TimeOutTick)); endTransition.AddTrigger(new Trigger_PawnsExhausted()); endTransition.AddPreAction(new TransitionAction_Custom(new Action(delegate { Log.Message("Ending"); this.CancelLoadingProcess(); }))); stateGraph.AddTransition(endTransition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendAndExpandWomb lordToil_DefendAndExpandWomb = new LordToil_DefendAndExpandWomb(); lordToil_DefendAndExpandWomb.distToHiveToAttack = 10f; stateGraph.StartingToil = lordToil_DefendAndExpandWomb; LordToil_DefendAndExpandWomb lordToil_DefendAndExpandWomb2 = new LordToil_DefendAndExpandWomb(); lordToil_DefendAndExpandWomb2.distToHiveToAttack = 32f; stateGraph.AddToil(lordToil_DefendAndExpandWomb2); Transition transition = new Transition(lordToil_DefendAndExpandWomb, lordToil_DefendAndExpandWomb2); transition.AddTrigger(new Trigger_PawnHarmed()); transition.AddTrigger(new Trigger_Memo("HiveAttacked")); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_DefendAndExpandWomb, lordToil_DefendAndExpandWomb2); transition2.canMoveToSameState = true; transition2.AddSource(lordToil_DefendAndExpandWomb2); transition2.AddTrigger(new Trigger_Memo("HiveDestroyed")); stateGraph.AddTransition(transition2); Transition transition3 = new Transition(lordToil_DefendAndExpandWomb2, lordToil_DefendAndExpandWomb); transition3.AddTrigger(new Trigger_TicksPassedWithoutHarm(500)); stateGraph.AddTransition(transition3); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_AttendSermon lordToil_Sermon = new LordToil_AttendSermon(this.spot); stateGraph.AddToil(lordToil_Sermon); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Sermon, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff())); transition.AddTrigger(new Trigger_PawnLostViolently()); transition.AddAction(new TransitionAction_Message("MessagePartyCalledOff".Translate(), MessageSound.Negative, this.spot)); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(5000, 15000)); Transition transition2 = new Transition(lordToil_Sermon, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddAction(new TransitionAction_Message("MessagePartyFinished".Translate(), MessageSound.Negative, this.spot)); transition2.AddAction(new TransitionAction_Cus(delegate { this.Finished(); })); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil disco = CreateGatheringToil(spot, organizer, gatheringDef); stateGraph.AddToil(disco); LordToil_End lordToilEnd = new LordToil_End(); stateGraph.AddToil(lordToilEnd); Transition callOffTransition = new Transition(disco, lordToilEnd); callOffTransition.AddTrigger(new Trigger_TickCondition(this.ShouldBeCalledOff)); callOffTransition.AddTrigger(new Trigger_PawnKilled()); callOffTransition.AddTrigger(new Trigger_PawnLost(PawnLostCondition.LeftVoluntarily, this.organizer)); callOffTransition.AddPreAction(new TransitionAction_Custom(() => ApplyOutcome((LordToil_Disco)disco))); callOffTransition.AddPreAction(new TransitionAction_Message(this.gatheringDef.calledOffMessage, MessageTypeDefOf.NegativeEvent, new TargetInfo(spot, Map))); stateGraph.AddTransition(callOffTransition); timeoutTrigger = GetTimeoutTrigger(); Transition naturalEndTransition = new Transition(disco, lordToilEnd); naturalEndTransition.AddTrigger(this.timeoutTrigger); naturalEndTransition.AddPreAction(new TransitionAction_Custom(() => ApplyOutcome((LordToil_Disco)disco))); naturalEndTransition.AddPreAction(new TransitionAction_Message(gatheringDef.finishedMessage, MessageTypeDefOf.SituationResolved, new TargetInfo(spot, Map))); stateGraph.AddTransition(naturalEndTransition); Core.Log("Created disco state graph."); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_HangOut lordToil_HangOut = new LordToil_HangOut(new Pawn[] { initiator, recipient }); stateGraph.AddToil(lordToil_HangOut); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_HangOut, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff())); transition.AddTrigger(new Trigger_TickCondition(() => this.initiator.health.summaryHealth.SummaryHealthPercent < 1f || this.recipient.health.summaryHealth.SummaryHealthPercent < 1f)); transition.AddTrigger(new Trigger_TickCondition(() => this.initiator.Drafted || this.recipient.Drafted)); transition.AddTrigger(new Trigger_PawnLost()); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(GenDate.TicksPerHour * 4, GenDate.TicksPerHour * 6)); Transition transition2 = new Transition(lordToil_HangOut, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { this.Finished(); })); stateGraph.AddTransition(transition2); return(stateGraph); }
// Token: 0x06000005 RID: 5 RVA: 0x000020A0 File Offset: 0x000002A0 public override StateGraph CreateGraph() { var stateGraph = new StateGraph(); var lordToil_CParty = new LordToil_CParty(spot); stateGraph.AddToil(lordToil_CParty); var lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); var transition = new Transition(lordToil_CParty, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(ShouldBeCalledOff)); transition.AddTrigger(new Trigger_PawnKilled()); transition.AddPreAction(new TransitionAction_Message("MessagePartyCalledOff".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(spot, Map))); stateGraph.AddTransition(transition); timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(5000, 15000)); var transition2 = new Transition(lordToil_CParty, lordToil_End); transition2.AddTrigger(timeoutTrigger); transition2.AddPreAction(new TransitionAction_Message("MessagePartyFinished".Translate(), MessageTypeDefOf.SituationResolved, new TargetInfo(spot, Map))); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil lordToil = CreateGatheringToil(spot, organizer, gatheringDef); stateGraph.AddToil(lordToil); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); float speechDuration = 12500f; Transition transition = new Transition(lordToil, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(ShouldBeCalledOff)); transition.AddTrigger(new Trigger_PawnKilled()); transition.AddTrigger(new Trigger_PawnLost(PawnLostCondition.LeftVoluntarily, organizer)); transition.AddPreAction(new TransitionAction_Custom((Action) delegate { ApplyOutcome((float)lord.ticksInToil / speechDuration); })); stateGraph.AddTransition(transition); timeoutTrigger = new Trigger_TicksPassedAfterConditionMet((int)speechDuration, () => GatheringsUtility.InGatheringArea(organizer.Position, spot, organizer.Map), 60); Transition transition2 = new Transition(lordToil, lordToil_End); transition2.AddTrigger(timeoutTrigger); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { ApplyOutcome(1f); })); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Meeting lordToil_Meeting = new LordToil_Meeting(this.spot); stateGraph.AddToil(lordToil_Meeting); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Meeting, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff())); transition.AddTrigger(new Trigger_TickCondition(() => this.mayor.health.summaryHealth.SummaryHealthPercent < 1f || this.constituent.health.summaryHealth.SummaryHealthPercent < 1f)); transition.AddTrigger(new Trigger_TickCondition(() => this.mayor.Drafted || this.constituent.Drafted)); transition.AddTrigger(new Trigger_PawnLost()); stateGraph.AddTransition(transition); //Time of meeting is affected by the constituents' mood; meetings to complain can take longer than meetings to commend. this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(GenDate.TicksPerHour, Mathf.RoundToInt(GenDate.TicksPerHour / Mathf.Lerp(0.2f, 1f, constituent.needs.mood.CurLevel)))); Transition transition2 = new Transition(lordToil_Meeting, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { this.Finished(); })); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Election lordToil_Election = new LordToil_Election(this.spot); stateGraph.AddToil(lordToil_Election); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Election, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff())); transition.AddTrigger(new Trigger_TickCondition(() => this.candidates.Count == 0)); transition.AddTrigger(new Trigger_PawnLostViolently()); transition.AddPreAction(new TransitionAction_Message("MessageElectionCalledOff".Translate(this.baseName), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, this.Map, false))); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(GenDate.TicksPerHour * 4, GenDate.TicksPerHour * 8)); Transition transition2 = new Transition(lordToil_Election, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { this.Finished(); })); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_MillAboutCloseBy chillax = new LordToil_MillAboutCloseBy(locus); stateGraph.AddToil(chillax); LordToil_ExitMap leaveMap = new LordToil_ExitMap(LocomotionUrgency.Jog); Transition signalToLeave = new Transition(chillax, leaveMap); signalToLeave.AddTrigger(new Trigger_PawnRecruited()); signalToLeave.AddTrigger(new Trigger_Custom((signal) => signal.type == TriggerSignalType.FactionRelationsChanged)); signalToLeave.AddTrigger(new Trigger_FightWon()); signalToLeave.AddTrigger(new Trigger_Memo("SetFree")); //triggered by ThingComp_RescueMe //signalToLeave.AddPostAction(new TransitionAction_Message("prisoners leaving.")); <- in case you want to use that one instead, for added clarity (more generic than PrisonersFreedLGE) signalToLeave.AddPostAction(new TransitionAction_WakeAll()); signalToLeave.AddPostAction(new TransitionAction_Custom(() => { Find.World.worldObjects.SiteAt(lord.Map.Tile)?.GetComponent <PrisonerRescueQuestComp>()?.GiveRewardsAndSendLetter(); })); signalToLeave.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(signalToLeave); stateGraph.AddToil(leaveMap); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); #region LordToils LordToil_JoinPrayerService lordToil_JoinPrayerService = new LordToil_JoinPrayerService(organizer, spot); stateGraph.AddToil(lordToil_JoinPrayerService); LordToil_PrayerService lordToil_PrayerService = new LordToil_PrayerService(pulpit, organizer, spot, spectatorRect); stateGraph.AddToil(lordToil_PrayerService); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); #endregion #region Transition JoinPrayerService => Others { // 주최자가 방에 들어온 다음 일정틱 대기 후 다음 단계로 진행하도록 Transition transition_JoinPrayerService_to_PrayerService = new Transition(lordToil_JoinPrayerService, lordToil_PrayerService); transition_JoinPrayerService_to_PrayerService.AddTrigger(new Trigger_TicksPassedAfterConditionMet(ConstPriest.PrayerServicePreStageTicks, () => { if (organizer.GetRoom() == spot.GetRoom(organizer.Map)) { return(true); } return(false); }, checkEveryTicks: 250)); stateGraph.AddTransition(transition_JoinPrayerService_to_PrayerService); } { // 주최자가 피해를 입었거나, 취소될만한 상황이 될 경우 강제로 종료 Transition transition_JoinPrayerService_to_End = new Transition(lordToil_JoinPrayerService, lordToil_End); transition_JoinPrayerService_to_End.AddTrigger(new Trigger_TickCondition(IsAborted)); transition_JoinPrayerService_to_End.AddTrigger(new Trigger_PawnHarmed()); transition_JoinPrayerService_to_End.AddPreAction(new TransitionAction_Message("MessagePrayerServiceAborted".Translate(), MessageTypeDefOf.NeutralEvent)); stateGraph.AddTransition(transition_JoinPrayerService_to_End); } #endregion #region Transition_PrayerService => Others { // 일정틱 진행되었거나, 취소될만한 상황이 될 경우 강제로 종료 triggerProgress = new Trigger_TicksPassed(Rand.Range(ConstPriest.PrayerServiceOnStageTicksMin, ConstPriest.PrayerServiceOnStageTicksMax)); Transition transition_PrayerService_to_End = new Transition(lordToil_PrayerService, lordToil_End); transition_PrayerService_to_End.AddTrigger(triggerProgress); transition_PrayerService_to_End.AddTrigger(new Trigger_PawnHarmed()); transition_PrayerService_to_End.AddTrigger(new Trigger_TickCondition(IsAborted)); transition_PrayerService_to_End.AddPreAction(new TransitionAction_Message("MessagePrayerServiceEnded".Translate())); stateGraph.AddTransition(transition_PrayerService_to_End); } #endregion return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Party lordToil_Party = new LordToil_Party(this.spot, 2200); stateGraph.AddToil(lordToil_Party); LordToil_MarriageCeremony lordToil_MarriageCeremony = new LordToil_MarriageCeremony(this.firstPawn, this.secondPawn, this.spot); stateGraph.AddToil(lordToil_MarriageCeremony); LordToil_Party lordToil_Party2 = new LordToil_Party(this.spot, 2200); stateGraph.AddToil(lordToil_Party2); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Party, lordToil_MarriageCeremony, false, true); transition.AddTrigger(new Trigger_TickCondition(() => this.lord.ticksInToil >= 5000 && this.AreFiancesInPartyArea(), 1)); transition.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyStarts".Translate(this.firstPawn.LabelShort, this.secondPawn.LabelShort, this.firstPawn.Named("PAWN1"), this.secondPawn.Named("PAWN2")), MessageTypeDefOf.PositiveEvent, this.firstPawn, null, 1f)); stateGraph.AddTransition(transition, false); Transition transition2 = new Transition(lordToil_MarriageCeremony, lordToil_Party2, false, true); transition2.AddTrigger(new Trigger_TickCondition(() => this.firstPawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, this.secondPawn), 1)); transition2.AddPreAction(new TransitionAction_Message("MessageNewlyMarried".Translate(this.firstPawn.LabelShort, this.secondPawn.LabelShort, this.firstPawn.Named("PAWN1"), this.secondPawn.Named("PAWN2")), MessageTypeDefOf.PositiveEvent, new TargetInfo(this.spot, base.Map, false), null, 1f)); transition2.AddPreAction(new TransitionAction_Custom(delegate { this.AddAttendedWeddingThoughts(); })); stateGraph.AddTransition(transition2, false); Transition transition3 = new Transition(lordToil_Party2, lordToil_End, false, true); transition3.AddTrigger(new Trigger_TickCondition(() => this.ShouldAfterPartyBeCalledOff(), 1)); transition3.AddTrigger(new Trigger_PawnKilled()); transition3.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyCalledOff".Translate(this.firstPawn.LabelShort, this.secondPawn.LabelShort, this.firstPawn.Named("PAWN1"), this.secondPawn.Named("PAWN2")), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false), null, 1f)); stateGraph.AddTransition(transition3, false); this.afterPartyTimeoutTrigger = new Trigger_TicksPassed(7500); Transition transition4 = new Transition(lordToil_Party2, lordToil_End, false, true); transition4.AddTrigger(this.afterPartyTimeoutTrigger); transition4.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyAfterPartyFinished".Translate(this.firstPawn.LabelShort, this.secondPawn.LabelShort, this.firstPawn.Named("PAWN1"), this.secondPawn.Named("PAWN2")), MessageTypeDefOf.PositiveEvent, this.firstPawn, null, 1f)); stateGraph.AddTransition(transition4, false); Transition transition5 = new Transition(lordToil_MarriageCeremony, lordToil_End, false, true); transition5.AddSource(lordToil_Party); transition5.AddTrigger(new Trigger_TickCondition(() => this.lord.ticksInToil >= 120000 && (this.firstPawn.Drafted || this.secondPawn.Drafted || !this.firstPawn.Position.InHorDistOf(this.spot, 4f) || !this.secondPawn.Position.InHorDistOf(this.spot, 4f)), 1)); transition5.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyCalledOff".Translate(this.firstPawn.LabelShort, this.secondPawn.LabelShort, this.firstPawn.Named("PAWN1"), this.secondPawn.Named("PAWN2")), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false), null, 1f)); stateGraph.AddTransition(transition5, false); Transition transition6 = new Transition(lordToil_MarriageCeremony, lordToil_End, false, true); transition6.AddSource(lordToil_Party); transition6.AddTrigger(new Trigger_TickCondition(() => this.ShouldCeremonyBeCalledOff(), 1)); transition6.AddTrigger(new Trigger_PawnKilled()); transition6.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyCalledOff".Translate(this.firstPawn.LabelShort, this.secondPawn.LabelShort, this.firstPawn.Named("PAWN1"), this.secondPawn.Named("PAWN2")), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false), null, 1f)); stateGraph.AddTransition(transition6, false); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Party lordToil_Party = new LordToil_Party(spot, GatheringDefOf.Party); stateGraph.AddToil(lordToil_Party); LordToil_MarriageCeremony lordToil_MarriageCeremony = new LordToil_MarriageCeremony(firstPawn, secondPawn, spot); stateGraph.AddToil(lordToil_MarriageCeremony); LordToil_Party lordToil_Party2 = new LordToil_Party(spot, GatheringDefOf.Party); stateGraph.AddToil(lordToil_Party2); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Party, lordToil_MarriageCeremony); transition.AddTrigger(new Trigger_TickCondition(() => lord.ticksInToil >= 5000 && AreFiancesInPartyArea())); transition.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyStarts".Translate(firstPawn.LabelShort, secondPawn.LabelShort, firstPawn.Named("PAWN1"), secondPawn.Named("PAWN2")), MessageTypeDefOf.PositiveEvent, firstPawn)); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_MarriageCeremony, lordToil_Party2); transition2.AddTrigger(new Trigger_TickCondition(() => firstPawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, secondPawn))); transition2.AddPreAction(new TransitionAction_Message("MessageNewlyMarried".Translate(firstPawn.LabelShort, secondPawn.LabelShort, firstPawn.Named("PAWN1"), secondPawn.Named("PAWN2")), MessageTypeDefOf.PositiveEvent, new TargetInfo(spot, base.Map))); transition2.AddPreAction(new TransitionAction_Custom((Action) delegate { AddAttendedWeddingThoughts(); })); stateGraph.AddTransition(transition2); Transition transition3 = new Transition(lordToil_Party2, lordToil_End); transition3.AddTrigger(new Trigger_TickCondition(() => ShouldAfterPartyBeCalledOff())); transition3.AddTrigger(new Trigger_PawnKilled()); stateGraph.AddTransition(transition3); afterPartyTimeoutTrigger = new Trigger_TicksPassed(7500); Transition transition4 = new Transition(lordToil_Party2, lordToil_End); transition4.AddTrigger(afterPartyTimeoutTrigger); transition4.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyAfterPartyFinished".Translate(firstPawn.LabelShort, secondPawn.LabelShort, firstPawn.Named("PAWN1"), secondPawn.Named("PAWN2")), MessageTypeDefOf.PositiveEvent, firstPawn)); stateGraph.AddTransition(transition4); Transition transition5 = new Transition(lordToil_MarriageCeremony, lordToil_End); transition5.AddSource(lordToil_Party); transition5.AddTrigger(new Trigger_TickCondition(() => lord.ticksInToil >= 120000 && (firstPawn.Drafted || secondPawn.Drafted || !firstPawn.Position.InHorDistOf(spot, 4f) || !secondPawn.Position.InHorDistOf(spot, 4f)))); transition5.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyCalledOff".Translate(firstPawn.LabelShort, secondPawn.LabelShort, firstPawn.Named("PAWN1"), secondPawn.Named("PAWN2")), MessageTypeDefOf.NegativeEvent, new TargetInfo(spot, base.Map))); stateGraph.AddTransition(transition5); Transition transition6 = new Transition(lordToil_MarriageCeremony, lordToil_End); transition6.AddSource(lordToil_Party); transition6.AddTrigger(new Trigger_TickCondition(() => ShouldCeremonyBeCalledOff())); transition6.AddTrigger(new Trigger_PawnKilled()); transition6.AddPreAction(new TransitionAction_Message("MessageMarriageCeremonyCalledOff".Translate(firstPawn.LabelShort, secondPawn.LabelShort, firstPawn.Named("PAWN1"), secondPawn.Named("PAWN2")), MessageTypeDefOf.NegativeEvent, new TargetInfo(spot, base.Map))); stateGraph.AddTransition(transition6); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendAndExpandHive lordToil_DefendAndExpandHive = new LordToil_DefendAndExpandHive(); lordToil_DefendAndExpandHive.distToQueenToAttack = 16f; stateGraph.StartingToil = lordToil_DefendAndExpandHive; LordToil_AssaultColony lordToil_AssaultColony = new LordToil_AssaultColony(); stateGraph.AddToil(lordToil_AssaultColony); Transition transition = new Transition(lordToil_DefendAndExpandHive, lordToil_AssaultColony, false, true); transition.AddTrigger(new Trigger_Memo(Queen.MemoAttackedByEnemy)); transition.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition, false); LordToil_QueenKilled lordToil_QueenKilled = new LordToil_QueenKilled(); stateGraph.AddToil(lordToil_QueenKilled); Transition transition2 = new Transition(lordToil_DefendAndExpandHive, lordToil_QueenKilled); transition2.AddTrigger(new Trigger_Memo(Queen.MemoDestroyedNonRoofCollapse)); transition2.AddTrigger(new Trigger_Memo(Queen.MemoDeSpawned)); transition2.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition2); LordToil_HiveDefense lordToil_HiveDefense = new LordToil_HiveDefense(); stateGraph.AddToil(lordToil_HiveDefense); Transition transition3 = new Transition(lordToil_DefendAndExpandHive, lordToil_HiveDefense); transition3.AddTrigger(new Trigger_PawnHarmed(0.1f, false, Map.ParentFaction)); transition3.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition3); Transition transition4 = new Transition(lordToil_HiveDefense, lordToil_DefendAndExpandHive); transition4.AddTrigger(new Trigger_TicksPassedWithoutHarmOrMemos(1200, new string[] { Insect.MemoAttackedByEnemy })); transition4.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition4); Transition transition5 = new Transition(lordToil_AssaultColony, lordToil_DefendAndExpandHive); transition5.AddTrigger(new Trigger_TicksPassedWithoutHarmOrMemos(7500, new string[] { Queen.MemoAttackedByEnemy })); transition5.AddPostAction(new TransitionAction_EndAttackBuildingJobs()); stateGraph.AddTransition(transition5); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Travel lordToil_Travel = new LordToil_Travel(this.groupUpLoc); lordToil_Travel.maxDanger = Danger.Deadly; lordToil_Travel.avoidGridMode = AvoidGridMode.Smart; stateGraph.StartingToil = lordToil_Travel; LordToil_PrisonerEscape lordToil_PrisonerEscape = new LordToil_PrisonerEscape(this.exitPoint, this.sapperThingID); lordToil_PrisonerEscape.avoidGridMode = AvoidGridMode.Smart; stateGraph.AddToil(lordToil_PrisonerEscape); LordToil_ExitMap lordToil_ExitMap = new LordToil_ExitMap(LocomotionUrgency.Jog, false); lordToil_ExitMap.avoidGridMode = AvoidGridMode.Smart; stateGraph.AddToil(lordToil_ExitMap); LordToil_ExitMap lordToil_ExitMap2 = new LordToil_ExitMap(LocomotionUrgency.Jog, true); stateGraph.AddToil(lordToil_ExitMap2); Transition transition = new Transition(lordToil_Travel, lordToil_ExitMap2); transition.AddSources(new LordToil[] { lordToil_PrisonerEscape, lordToil_ExitMap }); transition.AddTrigger(new Trigger_PawnCannotReachMapEdge()); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_ExitMap2, lordToil_ExitMap); transition2.AddTrigger(new Trigger_PawnCanReachMapEdge()); transition2.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition2); Transition transition3 = new Transition(lordToil_Travel, lordToil_PrisonerEscape); transition3.AddTrigger(new Trigger_Memo("TravelArrived")); stateGraph.AddTransition(transition3); Transition transition4 = new Transition(lordToil_Travel, lordToil_PrisonerEscape); transition4.AddTrigger(new Trigger_PawnLost()); stateGraph.AddTransition(transition4); Transition transition5 = new Transition(lordToil_PrisonerEscape, lordToil_PrisonerEscape); transition5.canMoveToSameState = true; transition5.AddTrigger(new Trigger_PawnLost()); transition5.AddTrigger(new Trigger_PawnHarmed(1f, false)); stateGraph.AddTransition(transition5); Transition transition6 = new Transition(lordToil_PrisonerEscape, lordToil_ExitMap); transition6.AddTrigger(new Trigger_Memo("TravelArrived")); stateGraph.AddTransition(transition6); return(stateGraph); }
// Token: 0x060007C3 RID: 1987 RVA: 0x00043DC0 File Offset: 0x000421C0 public override StateGraph CreateGraph() { // Log.Message("LordJob_PawnsDefendShip CreateGraph "); StateGraph stateGraph = new StateGraph(); // Log.Message("LordJob_PawnsDefendShip CreateGraph 0"); if (!this.defSpot.IsValid) { Log.Warning("LordJob_PawnsDefendShip defSpot is invalid. Returning graph for LordJob_AssaultColony.", false); stateGraph.AttachSubgraph(new LordJob_AssaultColony(this.faction, true, true, false, false, true).CreateGraph()); return(stateGraph); } // Log.Message("LordJob_PawnsDefendShip CreateGraph 1"); // Log.Message("defspot "+ this.defSpot+" defradius "+ this.defendRadius); LordToil_DefendPoint lordToil_DefendPoint = new LordToil_DefendPoint(this.defSpot, this.defendRadius); stateGraph.StartingToil = lordToil_DefendPoint; LordToil_AssaultColony lordToil_AssaultColony = new LordToil_AssaultColony(false); stateGraph.AddToil(lordToil_AssaultColony); LordToil_AssaultColony lordToil_AssaultColony2 = new LordToil_AssaultColony(false); stateGraph.AddToil(lordToil_AssaultColony2); Transition transition = new Transition(lordToil_DefendPoint, lordToil_AssaultColony2, false, true); transition.AddSource(lordToil_AssaultColony); transition.AddTrigger(new Trigger_PawnCannotReachMapEdge()); stateGraph.AddTransition(transition, false); Transition transition2 = new Transition(lordToil_DefendPoint, lordToil_AssaultColony, false, true); transition2.AddTrigger(new Trigger_PawnHarmed(0.5f, true, null)); transition2.AddTrigger(new Trigger_PawnLostViolently(true)); transition2.AddTrigger(new Trigger_Memo(CompSpawnerOnDamaged.MemoDamaged)); transition2.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition2, false); Transition transition3 = new Transition(lordToil_AssaultColony, lordToil_DefendPoint, false, true); transition3.AddTrigger(new Trigger_TicksPassedWithoutHarmOrMemos(1380, new string[] { CompSpawnerOnDamaged.MemoDamaged })); transition3.AddPostAction(new TransitionAction_EndAttackBuildingJobs()); stateGraph.AddTransition(transition3, false); Transition transition4 = new Transition(lordToil_DefendPoint, lordToil_AssaultColony2, false, true); transition4.AddSource(lordToil_AssaultColony); transition4.AddTrigger(new Trigger_ThingDamageTaken(this.shipPart, 0.5f)); transition4.AddTrigger(new Trigger_Memo(HediffGiver_Heat.MemoPawnBurnedByAir)); stateGraph.AddTransition(transition4, false); return(stateGraph); }
// Token: 0x0600078D RID: 1933 RVA: 0x0003FC4C File Offset: 0x0003E04C public override StateGraph CreateGraph() { //StateGraph stateGraph = new StateGraph(); //LordToil_Gathering lordToil_Party = new LordToil_Gathering(this.spot, 600); //stateGraph.AddToil(lordToil_Party); //LordToil_End lordToil_End = new LordToil_End(); //stateGraph.AddToil(lordToil_End); //Transition transition = new Transition(lordToil_Party, lordToil_End); //transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff(), 1)); //transition.AddTrigger(new Trigger_PawnLostViolently()); //transition.AddPreAction(new TransitionAction_Message("Funeral called off.", MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false))); //stateGraph.AddTransition(transition); //this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(5000, 15000)); //Transition transition2 = new Transition(lordToil_Party, lordToil_End); //transition2.AddTrigger(this.timeoutTrigger); //transition2.AddPreAction(new TransitionAction_Message("Funeral finished.", MessageTypeDefOf.SituationResolved, new TargetInfo(this.spot, base.Map, false))); //stateGraph.AddTransition(transition2); //return stateGraph; StateGraph stateGraph = new StateGraph(); LordToil_Gathering lordToil_Party = new LordToil_Gathering(this.spot, 600); stateGraph.AddToil(lordToil_Party); //LordToil_MarriageCeremony lordToil_MarriageCeremony = new LordToil_MarriageCeremony(this.organizer, this.organizer, this.spot); //stateGraph.AddToil(lordToil_MarriageCeremony); LordToil_EndGathering lordToil_End = new LordToil_EndGathering(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(lordToil_Party, lordToil_End); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff(), 1)); transition.AddTrigger(new Trigger_PawnLostViolently()); //transition.AddPreAction(new TransitionAction_Message("Funeral called off.", MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false))); transition.AddPreAction(new TransitionAction_Message("FuneralCalledOff".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false))); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(5000, 15000)); Transition transition2 = new Transition(lordToil_Party, lordToil_End); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Message("FuneralFinished".Translate(), MessageTypeDefOf.SituationResolved, new TargetInfo(this.spot, base.Map, false))); //transition2.AddPreAction(new TransitionAction_Message("Funeral finished.", MessageTypeDefOf.SituationResolved, new TargetInfo(this.spot, base.Map, false))); stateGraph.AddTransition(transition2); return(stateGraph); }
//NewRatkin.LordJob_BombPlanting:LordJob public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil startingToil = stateGraph.AttachSubgraph(new LordJob_Travel(defendingSpot).CreateGraph()).StartingToil; //거점 방어 상태 LordToil_DefendBomb lordToil_Siege = new LordToil_DefendBomb(defendingSpot, eventPoint); stateGraph.AddToil(lordToil_Siege); //목적지 이동 트랜지션 Transition moveToDest = new Transition(startingToil, lordToil_Siege, false, true); moveToDest.AddTrigger(new Trigger_Memo("TravelArrived")); moveToDest.AddTrigger(new Trigger_TicksPassed(5000)); stateGraph.AddTransition(moveToDest, false); //정착지 공격 상태 LordToil noFleeAssaultColony = new LordToil_AssaultColony(false); noFleeAssaultColony.useAvoidGrid = true; stateGraph.AddToil(noFleeAssaultColony); //정착지 공격 트랜잭션 Transition assultColony = new Transition(lordToil_Siege, noFleeAssaultColony, false, true); assultColony.AddTrigger(new Trigger_Memo("NoBuilders")); assultColony.AddTrigger(new Trigger_Memo("NoBomb")); assultColony.AddTrigger(new Trigger_TicksPassed(15000)); FloatRange floatRange = new FloatRange(0.25f, 0.35f); float randomInRange = floatRange.RandomInRange; assultColony.AddPreAction(new TransitionAction_Message("MessageCommandoAssaulting".Translate(faction.def.pawnsPlural, faction), MessageTypeDefOf.ThreatBig, null, 1f)); assultColony.AddPostAction(new TransitionAction_WakeAll()); //퇴각 상태 LordToil_ExitMap lordToil_ExitMap = new LordToil_ExitMap(LocomotionUrgency.Jog, false); lordToil_ExitMap.useAvoidGrid = true; stateGraph.AddToil(lordToil_ExitMap); //퇴각 트랜지션 Transition exitMap = new Transition(noFleeAssaultColony, lordToil_ExitMap, false, true); exitMap.AddTrigger(new Trigger_FractionColonyDamageTaken(randomInRange, 1200)); exitMap.AddPreAction(new TransitionAction_Message("MessageRaidersSatisfiedLeaving".Translate(faction.def.pawnsPlural.CapitalizeFirst(), faction.Name), null, 1f)); stateGraph.AddTransition(assultColony, false); stateGraph.AddTransition(exitMap, false); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); if (!defSpot.IsValid) { Log.Warning("LordJob_MechanoidsDefendShip defSpot is invalid. Returning graph for LordJob_AssaultColony."); stateGraph.AttachSubgraph(new LordJob_AssaultColony(faction).CreateGraph()); return(stateGraph); } LordToil_DefendPoint lordToil_DefendPoint = (LordToil_DefendPoint)(stateGraph.StartingToil = new LordToil_DefendPoint(defSpot, defendRadius)); LordToil_AssaultColony lordToil_AssaultColony = new LordToil_AssaultColony(); stateGraph.AddToil(lordToil_AssaultColony); if (canAssaultColony) { LordToil_AssaultColony lordToil_AssaultColony2 = new LordToil_AssaultColony(); stateGraph.AddToil(lordToil_AssaultColony2); Transition transition = new Transition(lordToil_DefendPoint, lordToil_AssaultColony); transition.AddSource(lordToil_AssaultColony2); transition.AddTrigger(new Trigger_PawnCannotReachMapEdge()); stateGraph.AddTransition(transition); Transition transition2 = new Transition(lordToil_DefendPoint, lordToil_AssaultColony2); transition2.AddTrigger(new Trigger_PawnHarmed(0.5f, requireInstigatorWithFaction: true)); transition2.AddTrigger(new Trigger_PawnLostViolently()); transition2.AddTrigger(new Trigger_Memo(MemoDamaged)); transition2.AddPostAction(new TransitionAction_EndAllJobs()); stateGraph.AddTransition(transition2); Transition transition3 = new Transition(lordToil_AssaultColony2, lordToil_DefendPoint); transition3.AddTrigger(new Trigger_TicksPassedWithoutHarmOrMemos(1380, MemoDamaged)); transition3.AddPostAction(new TransitionAction_EndAttackBuildingJobs()); stateGraph.AddTransition(transition3); Transition transition4 = new Transition(lordToil_DefendPoint, lordToil_AssaultColony); transition4.AddSource(lordToil_AssaultColony2); transition4.AddTrigger(new Trigger_AnyThingDamageTaken(things, 0.5f)); transition4.AddTrigger(new Trigger_Memo(HediffGiver_Heat.MemoPawnBurnedByAir)); stateGraph.AddTransition(transition4); } Transition transition5 = new Transition(lordToil_DefendPoint, lordToil_AssaultColony); transition5.AddTrigger(new Trigger_ChanceOnSignal(TriggerSignalType.MechClusterDefeated, 1f)); stateGraph.AddTransition(transition5); if (!isMechCluster) { Transition transition6 = new Transition(lordToil_DefendPoint, lordToil_AssaultColony); transition6.AddTrigger(new Trigger_AnyThingDamageTaken(things, 1f)); stateGraph.AddTransition(transition6); } return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Stage firstSource = (LordToil_Stage)(stateGraph.StartingToil = new LordToil_Stage(this.stageLoc)); LordToil startingToil = stateGraph.AttachSubgraph(new LordJob_AssaultColony(this.faction, true, true, false, false, true).CreateGraph()).StartingToil; Transition transition = new Transition(firstSource, startingToil); transition.AddTrigger(new Trigger_TicksPassed(Rand.Range(5000, 15000))); transition.AddTrigger(new Trigger_FractionPawnsLost(0.3f)); transition.AddPreAction(new TransitionAction_Message("MessageRaidersBeginningAssault".Translate(this.faction.def.pawnsPlural.CapitalizeFirst(), this.faction.Name), MessageTypeDefOf.ThreatBig)); transition.AddPostAction(new TransitionAction_WakeAll()); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendTraderCaravan firstSource = (LordToil_DefendTraderCaravan)(stateGraph.StartingToil = new LordToil_DefendTraderCaravan(this.defendSpot)); LordToil_ExitMap lordToil_ExitMap = new LordToil_ExitMap(LocomotionUrgency.None, false); stateGraph.AddToil(lordToil_ExitMap); Transition transition = new Transition(firstSource, lordToil_ExitMap); transition.AddTrigger(new Trigger_BecameColonyAlly()); transition.AddTrigger(new Trigger_TraderAndAllTraderCaravanGuardsLost()); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendTraderCaravan firstSource = (LordToil_DefendTraderCaravan)(stateGraph.StartingToil = new LordToil_DefendTraderCaravan(defendSpot)); LordToil_ExitMap lordToil_ExitMap = new LordToil_ExitMap(); stateGraph.AddToil(lordToil_ExitMap); Transition transition = new Transition(firstSource, lordToil_ExitMap); transition.AddTrigger(new Trigger_BecameNonHostileToPlayer()); transition.AddTrigger(new Trigger_TraderAndAllTraderCaravanGuardsLost()); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Stage lordToil_Stage = new LordToil_Stage(this.stageLoc); stateGraph.StartingToil = lordToil_Stage; LordToil startingToil = stateGraph.AttachSubgraph(new LordJob_AssaultColony(this.faction, true, true, false, false, true).CreateGraph()).StartingToil; Transition transition = new Transition(lordToil_Stage, startingToil); transition.AddTrigger(new Trigger_TicksPassed(this.ticksUntilAssault)); transition.AddTrigger(new Trigger_FractionPawnsLost(0.3f)); transition.AddPreAction(new TransitionAction_WakeAll()); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_ActivityStage stageToil = new LordToil_ActivityStage(data); stateGraph.AddToil(stageToil); LordToil_End endToil = new LordToil_End(); stateGraph.AddToil(endToil); Transition transition = new Transition(stageToil, stageToil, true, true); transition.AddTrigger((Trigger) new Trigger_TickCondition((Func <bool>)(() => AllSignalsReceived && ShouldMoveNext))); transition.AddPreAction((TransitionAction) new TransitionAction_Custom((Action)(() => MoveNext()))); stateGraph.AddTransition(transition); Transition transition2 = new Transition(stageToil, endToil, false, true); transition2.AddTrigger((Trigger) new Trigger_TickCondition((Func <bool>)(() => AllSignalsReceived && ShouldEndActivity))); transition2.AddPreAction((TransitionAction) new TransitionAction_Custom((Action)(() => ActivityEnd()))); stateGraph.AddTransition(transition2); Transition transition3 = new Transition(stageToil, endToil, false, true); transition3.AddTrigger((Trigger) new Trigger_TickCondition((Func <bool>)(() => ShouldActivityBeCalledOff))); stateGraph.AddTransition(transition3); return(stateGraph); }
public override StateGraph CreateGraph() { var stateGraph = new StateGraph(); var baseGraph = base.CreateGraph(); var locpickerToil = new LordToil_AssaultColonyLockpicker { useAvoidGrid = true, }; if (lockpicker) { stateGraph.AddToil(locpickerToil); var assaultToil = sappers ? baseGraph.lordToils[1] : baseGraph.lordToils[0]; var lockpickToLockpick = new Transition(locpickerToil, locpickerToil, canMoveToSameState: true); lockpickToLockpick.AddTrigger(new Trigger_PawnLost()); stateGraph.AddTransition(lockpickToLockpick); var lockpickToAssault = new Transition(locpickerToil, assaultToil); lockpickToAssault.AddTrigger(new Trigger_NoFightingLockpickers()); stateGraph.AddTransition(lockpickToAssault); //foreach (var trans in baseGraph.transitions) // trans.AddSource(locpickerToil); } stateGraph.AttachSubgraph(baseGraph); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_DefendOutpost lordToil_Defend = new LordToil_DefendOutpost(this.rallyPoint); stateGraph.AddToil(lordToil_Defend); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); this.timeoutTrigger = new Trigger_TicksPassed(8000); Transition transition = new Transition(lordToil_Defend, lordToil_End); transition.AddTrigger(this.timeoutTrigger); //transition.AddPreAction(new TransitionAction_Message("Defend lord timeout.", MessageSound.Standard, this.rallyPoint)); stateGraph.AddTransition(transition); Trigger_Memo memoTrigger = new Trigger_Memo("ThreatIsFinished"); Transition transition2 = new Transition(lordToil_Defend, lordToil_End); transition2.AddTrigger(memoTrigger); //transition2.AddPreAction(new TransitionAction_Message("Defend lord threat is finished.", MessageSound.Standard, this.rallyPoint)); stateGraph.AddTransition(transition2); return stateGraph; }