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 graph = new StateGraph(); LordToil_ControlMechanoid sdToil = new LordToil_ControlMechanoid(); graph.AddToil(sdToil); LordToil_End endToil = new LordToil_End(); Transition endTransition = new Transition(sdToil, endToil); endTransition.AddTrigger(new Trigger_Custom(delegate { Pawn pawn = this.lord.ownedPawns[0]; Pawn mech = pawn.RemoteControlLink(); bool shouldEnd = (mech == null || !mech.Spawned || mech.Dead || mech.Downed || pawn.UnableToControl()); if (shouldEnd) { if (mech != null) { ExtendedPawnData mechData = Base.Instance.GetExtendedDataStorage().GetExtendedDataFor(mech); mechData.remoteControlLink = null; } ExtendedPawnData pawnData = Base.Instance.GetExtendedDataStorage().GetExtendedDataFor(pawn); pawnData.remoteControlLink = null; } return(shouldEnd); })); graph.AddToil(endToil); graph.AddTransition(endTransition); return(graph); }
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(), MessageTypeDefOf.NegativeEvent)); 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 { this.CancelLoadingProcess(); }))); stateGraph.AddTransition(endTransition); 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); }
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_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); }
// 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_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() { var stateGraph = new StateGraph(); LordToil lordToil = CreateGatheringToil(spot, organizer, gatheringDef); stateGraph.AddToil(lordToil); var lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); var speechDuration = 12500f; var 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(lord.ticksInToil / speechDuration); })); stateGraph.AddTransition(transition); timeoutTrigger = new Trigger_TicksPassedAfterConditionMet((int)speechDuration, () => GatheringsUtility.InGatheringArea(organizer.Position, spot, organizer.Map), 60); var 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_Arson fireToil = new LordToil_Arson(FireSpot); stateGraph.StartingToil = fireToil; LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); LordToil startingToil2 = stateGraph.AttachSubgraph(new LordJob_AssaultColony(Faction).CreateGraph()).StartingToil; Transition transition2 = new Transition(fireToil, startingToil2); transition2.AddTrigger(new Trigger_FractionPawnsLost(0.1f)); stateGraph.AddTransition(transition2); timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(25000, 50000)); Transition transition3 = new Transition(fireToil, lordToil_End); transition3.AddTrigger(timeoutTrigger); transition3.AddPreAction(new TransitionAction_Message("ArsonOut".Translate(), MessageTypeDefOf.SituationResolved)); stateGraph.AddTransition(transition3); 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_PawnLostViolently()); 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_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_TickCondition(() => this.initiator.Map == null || this.recipient.Map == null)); transition.AddTrigger(new Trigger_PawnLost()); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(GenDate.TicksPerHour * 3, GenDate.TicksPerHour * 5)); 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); }
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_LoadAndEnterTransporters lordToil_LoadAndEnterTransporters = (LordToil_LoadAndEnterTransporters)(stateGraph.StartingToil = new LordToil_LoadAndEnterTransporters(transportersGroup)); LordToil_End toil = new LordToil_End(); stateGraph.AddToil(toil); 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(); #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(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_LoadAndEnterPit startingToil = new LordToil_LoadAndEnterPit(this.transportersGroup); stateGraph.StartingToil = startingToil; LordToil_End toil = new LordToil_End(); stateGraph.AddToil(toil); return(stateGraph); }
// Token: 0x06000042 RID: 66 RVA: 0x0000338C File Offset: 0x0000158C public override StateGraph CreateGraph() { var stateGraph = new StateGraph(); var lordToilFightingMatch = new LordToil_FightingMatch(spot, bell); stateGraph.AddToil(lordToilFightingMatch); var lordToilEnd = new LordToil_End(); stateGraph.AddToil(lordToilEnd); var transition = new Transition(lordToilFightingMatch, lordToilEnd); transition.AddTrigger(new Trigger_TickCondition(() => bell.currentState == Building_Bell.State.rest)); stateGraph.AddTransition(transition); return(stateGraph); }
// Token: 0x06000042 RID: 66 RVA: 0x0000338C File Offset: 0x0000158C public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_FightingMatch lordToilFightingMatch = new LordToil_FightingMatch(this.spot, this.bell); stateGraph.AddToil(lordToilFightingMatch); LordToil_End lordToilEnd = new LordToil_End(); stateGraph.AddToil(lordToilEnd); Transition transition = new Transition(lordToilFightingMatch, lordToilEnd, false, true); transition.AddTrigger(new Trigger_TickCondition(() => this.bell.currentState == Building_Bell.State.rest, 1)); stateGraph.AddTransition(transition, false); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_LoadAndEnterTransporters firstSource = (LordToil_LoadAndEnterTransporters)(stateGraph.StartingToil = new LordToil_LoadAndEnterTransporters(this.transportersGroup)); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition transition = new Transition(firstSource, lordToil_End); transition.AddTrigger(new Trigger_PawnLost()); transition.AddPreAction(new TransitionAction_Message("MessageFailedToLoadTransportersBecauseColonistLost".Translate(), MessageTypeDefOf.NegativeEvent)); transition.AddPreAction(new TransitionAction_Custom(this.CancelLoadingProcess)); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); Lord_Toil_Execution lordToilExecution = new Lord_Toil_Execution(spot, SpotE); stateGraph.AddToil(lordToilExecution); LordToil_End lordToilEnd = new LordToil_End(); stateGraph.AddToil(lordToilEnd); Transition transition = new Transition(lordToilExecution, lordToilEnd, false, true); transition.AddTrigger(new Trigger_TickCondition(() => this.SpotE.currentState == Building_SpotExecution.State.rest, 1)); transition.AddTrigger(new Trigger_TickCondition(() => this.SpotE.currentState == Building_SpotExecution.State.preparation || this.SpotE.currentState == Building_SpotExecution.State.inMotion, 9000)); stateGraph.AddTransition(transition, false); return(stateGraph); }
public override StateGraph CreateGraph() { var stateGraph = new StateGraph(); var lordToil_LoadAndEnterTransporters = new LordToil_LoadAndEnterTransportersPawn(transportersGroup); stateGraph.StartingToil = lordToil_LoadAndEnterTransporters; var lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); var transition = new Transition(lordToil_LoadAndEnterTransporters, lordToil_End); transition.AddTrigger(new Trigger_PawnLost()); //transition.AddPreAction(new TransitionAction_Message("MessageFailedToLoadTransportersBecauseColonistLost".Translate(), MessageTypeDefOf.NegativeEvent)); transition.AddPreAction(new TransitionAction_Custom(CancelLoadingProcess)); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph graph = new StateGraph(); LordToil_SearchAndDestroy sdToil = new LordToil_SearchAndDestroy(); graph.AddToil(sdToil); LordToil_End endToil = new LordToil_End(); graph.AddToil(endToil); Transition endTransition = new Transition(sdToil, endToil); //TODO: revise this endTransition.AddTrigger(new Trigger_TicksPassedWithoutHarm(900)); endTransition.AddTrigger(new Trigger_Custom(delegate { return(!this.lord.ownedPawns[0].IsActivated()); })); return(graph); }
public override StateGraph CreateGraph() { StateGraph graph = new StateGraph(); LordToil_SearchAndDestroy sdToil = new LordToil_SearchAndDestroy(); graph.AddToil(sdToil); LordToil_End endToil = new LordToil_End(); graph.AddToil(endToil); Transition endTransition = new Transition(sdToil, endToil); endTransition.AddTrigger(new Trigger_Custom(delegate { Pawn pawn = this.lord.ownedPawns[0]; bool result = !pawn.IsActivated(); return(result); })); graph.AddTransition(endTransition); return(graph); }
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.AddTrigger(new Trigger_TicksPassed(7500)); transition.AddPreAction(new TransitionAction_Message("MessageFailedToLoadTransportersBecauseColonistLost".Translate(), MessageSound.Negative)); transition.AddPreAction(new TransitionAction_Custom(new Action(this.CancelLoadingProcess))); stateGraph.AddTransition(transition); return(stateGraph); }
public override StateGraph CreateGraph() { string message = "StartedSermonMessage".Translate(new object[] { this.Preacher.Name, this.MorningPrayerString, this.altar.RoomName }); Messages.Message(message, this.altar, MessageSound.Negative); StateGraph stateGraph = new StateGraph(); LordToil startingToil = stateGraph.AttachSubgraph(new LordJob_Travel(this.initialPosition).CreateGraph()).StartingToil; stateGraph.StartingToil = startingToil; LordToil_StartSermom sermonToil = new LordToil_StartSermom(this.Preacher, this.altar); stateGraph.AddToil(sermonToil); Transition startSermonTransition = new Transition(startingToil, sermonToil); startSermonTransition.AddTrigger(new Trigger_Memo("TravelArrived")); stateGraph.AddTransition(startSermonTransition); LordToil_End lordToil_End = new LordToil_End(); stateGraph.AddToil(lordToil_End); Transition failedTransition = new Transition(startingToil, lordToil_End); failedTransition.AddSource(sermonToil); failedTransition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff())); failedTransition.AddTrigger(new Trigger_PawnLostViolently()); failedTransition.AddPreAction(new TransitionAction_Message("MessageSermonInterrupted".Translate(), MessageSound.Negative, new TargetInfo(this.altar.Position, base.Map, false))); stateGraph.AddTransition(failedTransition); Transition transition2 = new Transition(sermonToil, lordToil_End); transition2.AddTrigger(new Trigger_TickCondition(() => !this.altar.activeSermon)); transition2.AddPreAction(new TransitionAction_Message("MessageSermonFinished".Translate(), MessageSound.Negative, new TargetInfo(this.altar.Position, base.Map, false))); stateGraph.AddTransition(transition2); 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; }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Party lordToil_Party = new LordToil_Party(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, false, true); transition.AddTrigger(new Trigger_TickCondition(() => this.ShouldBeCalledOff(), 1)); transition.AddTrigger(new Trigger_PawnKilled()); transition.AddPreAction(new TransitionAction_Message("MessagePartyCalledOff".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(this.spot, base.Map, false), null, 1f)); stateGraph.AddTransition(transition); this.timeoutTrigger = new Trigger_TicksPassed(Rand.RangeInclusive(5000, 15000)); Transition transition2 = new Transition(lordToil_Party, lordToil_End, false, true); transition2.AddTrigger(this.timeoutTrigger); transition2.AddPreAction(new TransitionAction_Message("MessagePartyFinished".Translate(), MessageTypeDefOf.SituationResolved, new TargetInfo(this.spot, base.Map, false), null, 1f)); stateGraph.AddTransition(transition2); return(stateGraph); }
public override StateGraph CreateGraph() { StateGraph stateGraph = new StateGraph(); LordToil_Party lordToilParty = new LordToil_Party(_spot); stateGraph.AddToil(lordToilParty); LordToil_End lordToilEnd = new LordToil_End(); stateGraph.AddToil(lordToilEnd); Transition transition = new Transition(lordToilParty, lordToilEnd); transition.AddTrigger(new Trigger_TickCondition(ShouldBeCalledOff)); transition.AddTrigger(new Trigger_PawnLostViolently()); transition.AddPreAction(new TransitionAction_Message("MessagePartyCalledOff".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(_spot, Map))); stateGraph.AddTransition(transition); _timeoutTrigger = new Trigger_TicksPassed(GetRandomPartyLength()); Transition transition2 = new Transition(lordToilParty, lordToilEnd); transition2.AddTrigger(_timeoutTrigger); transition2.AddPreAction(new TransitionAction_Message("MessagePartyFinished".Translate(), MessageTypeDefOf.NegativeEvent, new TargetInfo(_spot, Map))); stateGraph.AddTransition(transition2); return(stateGraph); }