Esempio n. 1
0
    void OnEnable()
    {
        CManagerRandomTable <SMonster> pRandomTable = CManagerRandomTable <SMonster> .instance;

        Debug.Log("초보자 몬스터 존 시작");
        for (int i = 0; i < 5; i++)
        {
            SMonster sMonster = pRandomTable.GetRandomItem((int)EMonsterRank.C);
            Debug.Log(string.Format("{0}랭크 {1}등장!", sMonster.eGrade, sMonster.strName));
        }

        Debug.Log("좀 쎈 몬스터 존 시작");
        for (int i = 0; i < 5; i++)
        {
            SMonster sMonster = pRandomTable.GetRandomItem((int)EMonsterRank.B);
            Debug.Log(string.Format("{0}랭크 {1}등장!", sMonster.eGrade, sMonster.strName));
        }


        Debug.Log("드래곤 둥지 시작!!");
        for (int i = 0; i < 5; i++)
        {
            SMonster sMonster = pRandomTable.GetRandomItem((int)EMonsterRank.S);
            Debug.Log(string.Format("{0}랭크 {1}등장!", sMonster.eGrade, sMonster.strName));
        }
    }
Esempio n. 2
0
    void Awake()
    {
        _pRandomItemTable = CManagerRandomTable <SItemData> .instance;
        _pRandomItemTable.DoSetRandomMode(CManagerRandomTable <SItemData> .ERandomGetMode.Delete);

        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 장갑", 20));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 신발", 20));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 장갑", 20));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 신발", 20));

        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 장갑", 20));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 신발", 20));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 장갑", 20));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 신발", 20));


        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 장갑", 15));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 신발", 15));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 장갑", 15));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 신발", 15));

        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Unique, "특별한 장갑", 10));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Unique, "특별한 신발", 10));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Legend, "전설의 장갑", 4));
        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Legend, "전설의 신발", 4));

        _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Named, "유일무이한 신발", 2));
    }
Esempio n. 3
0
    public IEnumerator Test_RandomItem_Peek()
    {
        HashSet <SItemData>             setGetItem       = new HashSet <SItemData>();
        CManagerRandomTable <SItemData> pRandomItemTable = CManagerRandomTable <SItemData> .instance;

        CManagerRandomTable <SItemData> .instance.DoClearRandomItemTable();

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

        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 < 100; i++)
        {
            setGetItem.Add(pRandomItemTable.GetRandomItem());
        }

        UnityEngine.Assertions.Assert.IsTrue(setGetItem.Count > 1); // 종류가 1가지 이상 뽑혔는지

        var pIterNamed = setGetItem.Where(x => x.eGrade == EItemGrade.Named);

        if (pIterNamed != null)                                             // 한개도 없으면 null이다.
        {
            UnityEngine.Assertions.Assert.IsTrue(pIterNamed.Count() <= 10); // 네임드 퍼센트가 1%인데 100번중 10개 이하로 뽑혔는지
        }
        yield break;
    }
    /* protected - [Event] Function
     * 자식 객체가 호출(For Child class call)		*/

    /* protected - Override & Unity API         */

    protected override void OnAwake()
    {
        base.OnAwake();

        Class_Spawner[] arrSpanwer = GetComponentsInChildren <Class_Spawner>(true);
        _mapSpawner.DoAddItem(arrSpanwer);

        _pManagerRandomTable = CManagerRandomTable <Data_Spawn> .instance;
    }
Esempio n. 5
0
 void Awake()
 {
     _pRandomItemTable = CManagerRandomTable <SItemData> .instance;
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 장갑", 20));          // Total
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Common, "평범한 신발", 20));          // 40
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 장갑", 15));
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Rare, "드문 신발", 15));             // 70
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Unique, "특별한 장갑", 10));
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Unique, "특별한 신발", 10));          // 90
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Legend, "전설의 장갑", 4));
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Legend, "전설의 신발", 4));           // 98
     _pRandomItemTable.DoAddRandomItem(new SItemData(EItemGrade.Named, "유일무이한 신발", 2));          // 100
 }
Esempio n. 6
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;
    }