public static Block CreateUniformRandom(Vector3 pos, int maxHP) { int n = UnityEngine.Random.Range(0, (int)ItemType.EType.TOTAL); ItemType.EType type = (ItemType.EType)n; return(Block.Create(pos, maxHP, type)); }
// depreated : Only test public static Block CreateRandom(Vector3 pos, int maxHP) { int v = UnityEngine.Random.Range(0, 100); ItemType.EType type = ItemType.EType.BLOCK; // 75 block, 20 ball, 10 tri, 5 turret if (v < 5) { type = ItemType.EType.TURRET; } /* * else if (v < 15) * type = ItemType.EType.TRI; * else if (v < 35) * type = ItemType.EType.ROTATION_TRI; */ else if (v < 45) { type = ItemType.EType.BALL; } return(Block.Create(pos, maxHP, type)); }
// call by play manager. (self create) public static Block Create(Vector3 pos, int maxHP, ItemType.EType type) { GameObject go = null; Block block = null; switch (type) { case ItemType.EType.BLOCK: go = GPoolManager.Inst.Add("Prefab/Game/Block", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.SetBlock(maxHP); break; case ItemType.EType.BALL: go = GPoolManager.Inst.Add("Prefab/Game/ItemBall", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.SetItemBall(); break; case ItemType.EType.TRI: { go = GPoolManager.Inst.Add("Prefab/Game/ItemTri", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.SetItemOnlyTurn(); ItemTri tri = go.GetComponent <ItemTri> (); // tri.RotateClock90 (UnityEngine.Random.Range (1, 4)); tri.ResetAngle(); } break; case ItemType.EType.ROTATION_TRI: { go = GPoolManager.Inst.Add("Prefab/Game/ItemTriRot", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.SetItemOnlyTurn(); ItemTriRot triRot = go.GetComponent <ItemTriRot> (); triRot.ResetAngle(); } break; case ItemType.EType.TURRET: go = GPoolManager.Inst.Add("Prefab/Game/ItemTurret", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.SetItemOnlyTurn(); break; case ItemType.EType.ERASER: go = GPoolManager.Inst.Add("Prefab/Game/ItemEraser", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.SetItemOnlyTurn(); ItemEraser item = go.GetComponent <ItemEraser> (); item.Init(UnityEngine.Random.Range(0, 2) == 0); break; default: go = GPoolManager.Inst.Add("Prefab/Game/Block", GameManager.Inst.tmGameRoot); block = go.GetComponent <Block> (); block.ResetMaxHP(maxHP); block.isBlock = true; break; } block.tm.localPosition = pos; block.type = type; block.dissolve.Reset(); block.fsm.Reset(); block.state = Block.E_STATE.Idle; go.SetActive(true); return(block); }