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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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)));
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 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));
 }
Exemplo n.º 6
0
 private bool ShouldBeCalledOff()
 {
     return(!PartyUtility.AcceptableGameConditionsToContinueParty(Map) || (!_spot.Roofed(Map) && !JoyUtility.EnjoyableOutsideNow(Map)));
 }
Exemplo n.º 7
0
 private bool ShouldBeCalledOff()
 {
     return(!PartyUtility.AcceptableGameConditionsToContinueParty(base.Map) || candidates.Count < 1);
 }