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 bool AcceptableMapConditionsToStartElection(Map map) { if (!PartyUtility.AcceptableGameConditionsToContinueParty(map) || (!Position.Roofed(map) && !JoyUtility.EnjoyableOutsideNow(map, null))) { return(false); } if (GenLocalDate.HourInteger(map) < 8 || GenLocalDate.HourInteger(map) > 21) { return(false); } List <Lord> lords = map.lordManager.lords; for (int i = 0; i < lords.Count; i++) { if (lords[i].LordJob is LordJob_Joinable_Party || lords[i].LordJob is LordJob_Joinable_MarriageCeremony || lords[i].LordJob is LordJob_Joinable_LeaderElection) { return(false); } } if (map.dangerWatcher.DangerRating != StoryDanger.None) { return(false); } int num2 = Mathf.RoundToInt((float)map.mapPawns.FreeColonistsSpawnedCount * 0.65f); num2 = Mathf.Clamp(num2, 2, 10); int num3 = 0; foreach (Pawn current2 in map.mapPawns.FreeColonistsSpawned) { if (PartyUtility.ShouldPawnKeepPartying(current2)) { num3++; } } return(num3 >= num2); }
private bool ShouldBeCalledOff() { return(!PartyUtility.AcceptableGameConditionsToContinueParty(base.Map) || this.constituent.GetTimeAssignment() == TimeAssignmentDefOf.Work || this.mayor.GetTimeAssignment() == TimeAssignmentDefOf.Work || (!this.spot.Roofed(base.Map) && !JoyUtility.EnjoyableOutsideNow(base.Map, null))); }
private bool ShouldBeCalledOff() { return(!PartyUtility.AcceptableGameConditionsToContinueParty(base.Map) || this.initiator.GetTimeAssignment() == TimeAssignmentDefOf.Work || this.recipient.GetTimeAssignment() == TimeAssignmentDefOf.Work || this.initiator.needs.rest.CurLevel < 0.3f || this.recipient.needs.rest.CurLevel < 0.3f); }
private bool ShouldAfterPartyBeCalledOff() { return(this.firstPawn.Destroyed || this.secondPawn.Destroyed || (this.firstPawn.Downed || this.secondPawn.Downed) || (this.spot.GetDangerFor(this.firstPawn, base.Map) != Danger.None || this.spot.GetDangerFor(this.secondPawn, base.Map) != Danger.None) || !PartyUtility.AcceptableGameConditionsToContinueParty(base.Map)); }
private bool ShouldBeCalledOff() { return(!PartyUtility.AcceptableGameConditionsToContinueParty(Map) || (!_spot.Roofed(Map) && !JoyUtility.EnjoyableOutsideNow(Map))); }
private bool ShouldBeCalledOff() { return(!PartyUtility.AcceptableGameConditionsToContinueParty(base.Map) || candidates.Count < 1); }