Jump to content

Photo

Dead Enclaves

breakdown lifeline

19 replies to this topic

#11
pasmon79

pasmon79

    Enthusiast

  • Members
  • PipPip
  • 224 posts

Thanks, I discovered their locations(Change State).



#12
pasmon79

pasmon79

    Enthusiast

  • Members
  • PipPip
  • 224 posts

I have noted one more thing of interest that  "<State Alertness="Relax" Id="Sandbox_Core">" runs parallel to all other "States corresponding to Defending".



#13
pasmon79

pasmon79

    Enthusiast

  • Members
  • PipPip
  • 224 posts

I could not figure out the real purpose of  relocate command accomplish in Enclaves? It happens after you play for one full day in story-mode and seems to displace one of NPC enclave to a new place.

<Action ActionFlags="WaitForNoMission, Repeats" ActionId="Relocate"

 


 



#14
qmjs

qmjs

    Faithful poster

  • Members
  • PipPipPipPip
  • 1,764 posts

Nothing at all. It is a generic event included in all enclaves, in story mode, breakdown, and Lifeline. I don't think it is ever used, but was probably just a holdover from an early enclave template.



#15
pasmon79

pasmon79

    Enthusiast

  • Members
  • PipPip
  • 224 posts

"Status.DailySummary.TimePlayedToday"  reaches the cutoff point required to block "dailyreset" in "SandboxCore" after 10 seconds of gametime each time after it is reset by "Dailyreset"  and is updated continuously till 17hrs. 

 

 

Does it and all other variables(not protected by outputdauration) get reset to the value defined by "rtsdata" everytime we exit and reload the game, otherwise there is no second mechanism for resetting it to allow "DailyReset"  after it is initialized at the start of level?

 

In the following code, Dailyreset plays only if Alt fails.

 <Action ActionFlags="" ActionId="DailyResetIfPlayedYesterday" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
          <RTSActionIcon Name="" Id="" />
          <NameText Flags="" Notes="" Text="" />
          <Actors />
          <Alts>
            <Alt AltId="IncrementDaysOffline" AltOdds="100.0" />
          </Alts>
          <Effects />
          <Inputs />
          <Outputs>
            <EventTrigger Event="SandboxEvent_Home_DailyReset" />
          </Outputs>
        </Action>
        <Action ActionFlags="Alt" ActionId="IncrementDaysOffline" ActionType="Action.Passive" ExecuteTimeStandard="0.0" OutputDelayTime="0.0" PauseWhenOffline="">
          <RTSActionIcon Name="" Id="" />
          <NameText Flags="" Notes="" Text="" />
          <Actors />
          <Alts />
          <Effects />
          <Inputs>
           <Check InputAmount="10" InputFlags="" InputId="!Status.DailySummary.TimePlayedToday" />
          </Inputs>
          <Outputs>
            <EventTrigger Event="fsEvent.Home_IncrementDaysOffline" />
          </Outputs>
        </Action>


Edited by pasmon79, 01 November 2020 - 01:04 PM.


#16
qmjs

qmjs

    Faithful poster

  • Members
  • PipPipPipPip
  • 1,764 posts

Most variables are not reset when exiting and restarting the game, but a few things are. Fatecards timers restart at 0, hordes events are all removed and restarted, and zombie densities are recalculated.

 

The actual daily reset is called by the <OnNextDay> process found at the beginning of the enclave state module.

IncrementDaysOffline is used to check to see if the daily reset processes one day or two (maximum), with the action CallNextDayEvent starting EventTrigger Event="SandboxEvent_Home_DailyReset".

The <Check InputAmount="10" InputFlags="" InputId="Status.DailySummary.TimePlayedToday" /> baiscally is simply used to initiate the process when starting the game, so it is the first thing that occurs.

 

After the reset runs, ClearCounters sets these to 0:
          <RTSStat_Set DurationCancellable="" OutputAmount="0" OutputDuration="" OutputId="Status.DailySummary.TimePlayedToday" PauseWhenOffline="" />
          <RTSStat_Set DurationCancellable="" OutputAmount="0" OutputDuration="" OutputId="Status.DailySummary.DaysOffline" PauseWhenOffline="" />

 

If the reset is not yet ready, this runs repeatedly:
      <Action ActionFlags="Hidden, Repeats" ActionId="UpdatePlayedToday" ActionType="Action.Passive" ExecuteTimeStandard="1s" OutputDelayTime="0.0" PauseWhenOffline="True">
        <RTSActionIcon Name="" Id="" />
        <NameText Flags="" Notes="" Text="" />
        <Actors />
        <Alts />
        <Effects />
        <Inputs />
        <Outputs>
          <EventTrigger Event="fsEvent.UpdatePlayedToday" />
        </Outputs>
      </Action>

 

Which does this:
        <Inputs>
          <Check InputAmount="&lt;60000" InputFlags="" InputId="Status.DailySummary.TimePlayedToday" />
        </Inputs>
        <Outputs>
          <RTSStat_Add DurationCancellable="" OutputAmount="1" OutputDuration="" OutputId="Status.DailySummary.TimePlayedToday" PauseWhenOffline="" />
        </Outputs>

 

The actual daily reset itself is a 14 hour cycle (rtsdata       <Value Default="50400" Name="NextDayTime">)

 

So essentially this is the process:
New game, time is set to 0, or when the daily reset is done, the time is set to 0. This value is saved when exiting. (It is also calculated from the save game time difference.)
You may enter and exit the game any number of times before Status.DailySummary.TimePlayedToday reaches 50400 or more and it will be the same day.
If you are playing and it counts up to 60000, the time stops counting. Continuing to count up is essentially pointless, for the next reason. As long as you continue to play, the next game process doesn't run.
When loading a game, if the timer is 50400 or more, OR if the actual save game date/time difference is over 50400, the next day process is initiated upon loading. 

 

A couple of observations: you could reset the 50400 to a different value as long as the 60000 is a larger number. The way it is set up now, you will only get one daily reset per day no matter how much you are playing.

In the original game (one of the first patch changes made) the game did not stop counting days offline at 2. You could go a week without playing and come back to a total mess... everyone sick or dead, all resources used up, and so on.


Edited by qmjs, 01 November 2020 - 02:37 PM.


#17
pasmon79

pasmon79

    Enthusiast

  • Members
  • PipPip
  • 224 posts

Thanks. I misunderstood

            <Check InputAmount="10" InputFlags="" InputId="!Status.DailySummary.TimePlayedToday" />

NextDayTime is used nowhere in game(probably by exe).

 

So the game actually stores the result of our manipulation of the variable defined by rtsdata.xml.



#18
qmjs

qmjs

    Faithful poster

  • Members
  • PipPipPipPip
  • 1,764 posts

Yes, it does. 

 

The exe monitors the TimePlayedToday and triggers the <OnNextDay> condition during game load.



#19
pasmon79

pasmon79

    Enthusiast

  • Members
  • PipPip
  • 224 posts

So in "Breakdown" "nextday" events and their limit of counting days offline  is strictly handled by "exe" via calculating the time difference of "savegame" date and time difference".

 

I have checked that Lifeline has its own way of running nextday events, which are not controllable and are called by "Lifeline.AdvanceAfterSiege" and "Lifeline.NextDayEventOnly"

 

Further In "Lifeline",  <OnNextDay> at the start of "Siege State"  is totally irrelevant as it applies to "Enclave.Home_Sandbox", which does not exist in the game.


Edited by pasmon79, 17 July 2021 - 02:49 PM.


#20
qmjs

qmjs

    Faithful poster

  • Members
  • PipPipPipPip
  • 1,764 posts

Yeah, there is a lot of stuff in each mode that doesn't need to be there... Breakdown has a massive amount of holdover junk from the story mode, and Lifeline has holdover stuff from story and Breakdown.

 

If I recall correctly, the tactics option with Thin the Herd affects the time between seiges, so you may find some more information in there.





Reply to this topic



  



Also tagged with one or more of these keywords: breakdown, lifeline

IPB skins by Skinbox
Page loaded in: 1.273 seconds