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)); } }
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)); }
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; }
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 }
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; }