public override void PerformSetup(Context context, IState previousState) { base.PerformSetup(context, previousState); _partyDataWrapper = context.Get <PartyDataWrapper>(); EnemyDefinitionsById = CombatSettings.Enemies.ToDictionary( x => x.Id, x => HackUtil.GetDefinition <EnemyDefinition>(x.Class.Id)); PlayerController = new PlayerCharacterController(_partyDataWrapper); PlayerController.CombatCompleteSignal.Listen(OnCombatComplete); PlayerController.GameStateUpdatedSignal.Listen(OnGameStateUpdated); PlayerController.ActiveCharacterChanged += OnActiveCharacterChanged; List <IParty> partiesInCombat = new List <IParty>(2); partiesInCombat.Add(new Party( PlayerController.PartyId, PlayerController, _partyDataWrapper.Characters)); foreach (var partyGroup in CombatSettings.Enemies.GroupBy(x => x.Party)) { partiesInCombat.Add(new Party( partyGroup.Key, CombatSettings.AI, partyGroup.ToArray())); } _combatManager = new CombatManager( partiesInCombat, PlayerController.GameStateUpdatedSignal, PlayerController.CombatCompleteSignal); }
public override void PerformSetup(Context context, IState previousState) { base.PerformSetup(context, previousState); Party = context.Get <PartyDataWrapper>(); _stateMachine = context.Get <IStateMachine>(); // Check for Time/Day Increment if (!(previousState is StartupState)) { HandleDayTimeIncrement(); } // Determine Event Options DetermineEventOptions(); }
public override void PerformSetup(Context context, IState previousState) { PartyDataWrapper party = context.Get <PartyDataWrapper>(); FirebaseWrapper fbWrapper = context.Get <FirebaseWrapper>(); PlayerDataWrapper playerData = context.Get <PlayerDataWrapper>(); playerData.SetActiveParty(0u); fbWrapper.WriteData(playerData.GetDataPath(fbWrapper.UserId), playerData); _context.Clear <PartyDataWrapper>(); Calamity = party.Calamity; SurvivingCharacters = party.Characters.FindAll(x => x.IsAlive()); FallenCharacters = party.Characters.FindAll(x => !x.IsAlive()); }