상점 초기화하는 기능에서 구매한 장비 아이템이 나오거나 동일한 아이템이 중복해서 나오는 이슈가 있었다.
public void ShopItemReset() // 상점 아이템 초기화
{
List<EquipItem> equipItems = EquipItemDB.FindAll(obj => obj.ItemRank != EItemRank.EPIC && obj.IsSell == false);
ShopEquipItems.Clear();
for (int i = 0; i < ShopEquipItemCount; i++)
{
// 5.3 J => 남아 있는 장비 아이템이 ShopEquipItemCount보다 낮을 수 도 있기 때문에 추가
if (equipItems.Count <= i)
{
break;
}
// 5.3 J => 장비 아이템 중복 등장 버그 해결
EquipItem equipItem = GetRandomEquipItem(equipItems);
if (!ShopEquipItems.Contains(equipItem))
{
ShopEquipItems.Add(equipItem);
}
else
{
i--;
}
}
}
// 리스트에서 아이템 랜덤으로 하나 리턴
public EquipItem GetRandomEquipItem(List<EquipItem> equipItemList)
{
int itemnum = rand.Next(0, equipItemList.Count);
return equipItemList[itemnum];
}
for문 안에 Contains를 이용하여 상점 장비 리스트에 이미 존재하는 장비라면 다시 뽑는 방식으로 코드를 수정했다.