public StageSimulatorSheets( MaterialItemSheet materialItemSheet, SkillSheet skillSheet, SkillBuffSheet skillBuffSheet, BuffSheet buffSheet, CharacterSheet characterSheet, CharacterLevelSheet characterLevelSheet, EquipmentItemSetEffectSheet equipmentItemSetEffectSheet, StageSheet stageSheet, StageWaveSheet stageWaveSheet, EnemySkillSheet enemySkillSheet ) : base( materialItemSheet, skillSheet, skillBuffSheet, buffSheet, characterSheet, characterLevelSheet, equipmentItemSetEffectSheet ) { StageSheet = stageSheet; StageWaveSheet = stageWaveSheet; EnemySkillSheet = enemySkillSheet; }
/// <summary> /// Do not use anymore since v100025. /// </summary> public StageSimulator( IRandom random, AvatarState avatarState, List <Guid> foods, int worldId, int stageId, StageSimulatorSheets stageSimulatorSheets ) : base( random, avatarState, foods, stageSimulatorSheets ) { _waves = new List <Wave>(); WorldId = worldId; StageId = stageId; IsCleared = avatarState.worldInformation.IsStageCleared(StageId); EnemySkillSheet = stageSimulatorSheets.EnemySkillSheet; var stageSheet = stageSimulatorSheets.StageSheet; if (!stageSheet.TryGetValue(StageId, out var stageRow)) { throw new SheetRowNotFoundException(nameof(stageSheet), StageId); } var stageWaveSheet = stageSimulatorSheets.StageWaveSheet; if (!stageWaveSheet.TryGetValue(StageId, out var stageWaveRow)) { throw new SheetRowNotFoundException(nameof(stageWaveSheet), StageId); } Exp = StageRewardExpHelper.GetExp(avatarState.level, stageId); TurnLimit = stageRow.TurnLimit; SetWave(stageRow, stageWaveRow); var itemSelector = SetItemSelector(stageRow, Random); _waveRewards = SetReward( itemSelector, Random.Next(stageRow.DropItemMin, stageRow.DropItemMax + 1), Random, stageSimulatorSheets.MaterialItemSheet ); }
public StageSimulator( IRandom random, AvatarState avatarState, List <Guid> foods, int worldId, int stageId, StageSimulatorSheets stageSimulatorSheets, int constructorVersion, int playCount ) : base( random, avatarState, foods, stageSimulatorSheets ) { _waves = new List <Wave>(); WorldId = worldId; StageId = stageId; IsCleared = avatarState.worldInformation.IsStageCleared(StageId); EnemySkillSheet = stageSimulatorSheets.EnemySkillSheet; var stageSheet = stageSimulatorSheets.StageSheet; if (!stageSheet.TryGetValue(StageId, out var stageRow)) { throw new SheetRowNotFoundException(nameof(stageSheet), StageId); } var stageWaveSheet = stageSimulatorSheets.StageWaveSheet; if (!stageWaveSheet.TryGetValue(StageId, out var stageWaveRow)) { throw new SheetRowNotFoundException(nameof(stageWaveSheet), StageId); } Exp = StageRewardExpHelper.GetExp(avatarState.level, stageId); TurnLimit = stageRow.TurnLimit; SetWave(stageRow, stageWaveRow); var itemSelector = SetItemSelector(stageRow, Random); var maxCount = Random.Next(stageRow.DropItemMin, stageRow.DropItemMax + 1); switch (constructorVersion) { case ConstructorVersionDefault: _waveRewards = SetReward( itemSelector, maxCount, random, MaterialItemSheet ); break; case ConstructorVersionV100025: _waveRewards = SetRewardV2( itemSelector, maxCount, Random, MaterialItemSheet ); break; case ConstructorVersionV100080: _waveRewards = new List <ItemBase>(); for (var i = 0; i < playCount; i++) { itemSelector = SetItemSelector(stageRow, Random); var rewards = SetRewardV2( itemSelector, maxCount, Random, MaterialItemSheet ); foreach (var reward in rewards) { _waveRewards.Add(reward); } } break; } }