public void PlayerDeterministicIterateDequeueAndUpdateAndEnqueue(int loopCount, decimal spd) { var sheets = TableSheetsImporter.ImportSheets(); TableSheets tableSheets = new TableSheets(sheets); Player[] players = new[] { new Player( 1, tableSheets.CharacterSheet, tableSheets.CharacterLevelSheet, tableSheets.EquipmentItemSetEffectSheet), new Player( 2, tableSheets.CharacterSheet, tableSheets.CharacterLevelSheet, tableSheets.EquipmentItemSetEffectSheet), new Player( 3, tableSheets.CharacterSheet, tableSheets.CharacterLevelSheet, tableSheets.EquipmentItemSetEffectSheet), }; List <Player> results1 = new List <Player>(); List <Player> results2 = new List <Player>(); for (int i = 0; i < 2; i++) { List <Player> targetResults = i == 0 ? results1 : results2; SimplePriorityQueue <Player, decimal> queue = new SimplePriorityQueue <Player, decimal>(); for (int j = 0; j < players.Length; j++) { queue.Enqueue(players[j], spd); } for (int j = 0; j < loopCount; j++) { Assert.True(queue.TryDequeue(out Player player)); targetResults.Add(player); foreach (Player otherPlayer in queue) { decimal priority = queue.GetPriority(otherPlayer); queue.UpdatePriority(otherPlayer, priority); } queue.Enqueue(player, spd); } } Assert.Equal(results1, results2); }
public EnemyPlayerDigestTest() { _tableSheets = new TableSheets(TableSheetsImporter.ImportSheets()); var avatarState = new AvatarState( new PrivateKey().ToAddress(), new PrivateKey().ToAddress(), 1234, _tableSheets.GetAvatarSheets(), new GameConfigState(), new PrivateKey().ToAddress(), "test" ); avatarState.hair = 2; avatarState.lens = 3; avatarState.ear = 4; avatarState.tail = 5; var costumeRow = _tableSheets.CostumeStatSheet.Values.First(r => r.StatType == StatType.ATK); var costume = (Costume)ItemFactory.CreateItem(_tableSheets.ItemSheet[costumeRow.CostumeId], new TestRandom()); costume.equipped = true; avatarState.inventory.AddItem(costume); var costume2Row = _tableSheets.CostumeStatSheet.Values.First(r => r.StatType == StatType.DEF); var costume2 = (Costume)ItemFactory.CreateItem(_tableSheets.ItemSheet[costume2Row.CostumeId], new TestRandom()); avatarState.inventory.AddItem(costume2); var weaponRow = _tableSheets.EquipmentItemSheet.Values.First(r => r.ItemSubType == ItemSubType.Weapon); var weapon = (Weapon)ItemFactory.CreateItem(_tableSheets.ItemSheet[weaponRow.Id], new TestRandom()); weapon.equipped = true; avatarState.inventory.AddItem(weapon); var armorRow = _tableSheets.EquipmentItemSheet.Values.First( r => r.ItemSubType == ItemSubType.Armor); var armor = (Armor)ItemFactory.CreateItem(_tableSheets.ItemSheet[armorRow.Id], new TestRandom()); avatarState.inventory.AddItem(armor); _avatarState = avatarState; }