Beispiel #1
0
    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));
    }
Beispiel #2
0
    // 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));
    }
Beispiel #3
0
    // 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);
    }