Exemplo n.º 1
0
    public IEnumerator Test_RandomItem_Delete()
    {
        HashSet <SItemData>             setGetItem       = new HashSet <SItemData>();
        CManagerRandomTable <SItemData> pRandomItemTable = CManagerRandomTable <SItemData> .instance;

        CManagerRandomTable <SItemData> .instance.DoClearRandomItemTable();

        pRandomItemTable.DoSetRandomMode(CManagerRandomTable <SItemData> .ERandomGetMode.Delete);

        pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 장갑", 40));  // Total
        pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 신발", 40));  // 80
        pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 장갑", 19));     // 95
        pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Named, "네임드 신발", 1));    // 100

        for (int i = 0; i < 4; i++)
        {
            setGetItem.Add(pRandomItemTable.GetRandomItem());
        }

        UnityEngine.Assertions.Assert.IsTrue(setGetItem.Count >= 4); // 딜리트 모드는 모든 아이템이 뽑혀야 한다.

        Assert.IsNull(pRandomItemTable.GetRandomItem());             // 다 뽑으면 Null이 나온다.

        // 다시 한번 반복
        setGetItem.Clear();
        pRandomItemTable.DoReset_OnDeleteMode();

        for (int i = 0; i < 4; i++)
        {
            setGetItem.Add(pRandomItemTable.GetRandomItem());
        }

        UnityEngine.Assertions.Assert.IsTrue(setGetItem.Count >= 4); // 딜리트 모드는 모든 아이템이 뽑혀야 한다.
        Assert.IsNull(pRandomItemTable.GetRandomItem());             // 다 뽑으면 Null이 나온다.

        yield break;
    }
Exemplo n.º 2
0
    void OnEnable()
    {
        Debug.LogWarning("아이템은 17개 넣었는데, 뽑기 요청은 20개를 하여 for문 한번 돌때마다 3번씩 아이템이 없다 뜰것입니다");

        for (int i = 0; i < 20; i++)
        {
            SItemData sItem = _pRandomItemTable.GetRandomItem();

            if (sItem == null)
            {
                Debug.Log("아이템이 없다..");
            }
            else
            {
                Debug.Log(string.Format("당첨!! 확률{0}%로 {1}획득!", sItem.iPercent, sItem.strName));
            }
        }


        _pRandomItemTable.DoReset_OnDeleteMode();
        Debug.LogWarning("리셋!!");

        for (int i = 0; i < 20; i++)
        {
            SItemData sItem = _pRandomItemTable.GetRandomItem();

            if (sItem == null)
            {
                Debug.Log("아이템이 없다..");
            }
            else
            {
                Debug.Log(string.Format("당첨!! 확률{0}%로 {1}획득!", sItem.iPercent, sItem.strName));
            }
        }
    }