Beispiel #1
0
    public static Color getPalette(ORB_VALUE o, bool primary)
    {
        switch (o)
        {
        case ORB_VALUE.ZERO: return(primary ? color_palette.GetPixel(12, 1) : color_palette.GetPixel(14, 1));

        case ORB_VALUE.ONE: return(primary ? color_palette.GetPixel(1, 1) : color_palette.GetPixel(0, 1));

        case ORB_VALUE.TWO: return(primary ? color_palette.GetPixel(5, 3) : color_palette.GetPixel(4, 3));

        case ORB_VALUE.THREE: return(primary ? color_palette.GetPixel(11, 2) : color_palette.GetPixel(9, 2));

        case ORB_VALUE.FOUR: return(primary ? color_palette.GetPixel(3, 3) : color_palette.GetPixel(2, 3));

        case ORB_VALUE.FIVE: return(primary ? color_palette.GetPixel(3, 1) : color_palette.GetPixel(2, 1));

        case ORB_VALUE.SIX: return(primary ? color_palette.GetPixel(14, 3) : color_palette.GetPixel(13, 3));

        case ORB_VALUE.SEVEN: return(primary ? color_palette.GetPixel(8, 1) : color_palette.GetPixel(15, 2));

        case ORB_VALUE.EIGHT: return(primary ? color_palette.GetPixel(2, 3) : color_palette.GetPixel(6, 3));

        case ORB_VALUE.NINE: return(primary ? color_palette.GetPixel(5, 2) : color_palette.GetPixel(4, 2));

        default: return(color_palette.GetPixel(0, 0));
        }
    }
    public static Orb Create(Vector3 spawnGridPos, int fallDist, ORB_VALUE val)
    {
        Orb orb = (Instantiate(Resources.Load <GameObject>(PREFAB_PATH), spawnGridPos, Quaternion.identity, OrbPool.Instance.transform)).GetComponent <Orb>();

        orb.setInitValues(spawnGridPos, fallDist, val);
        return(orb);
    }
    public static TitleOrb Create(Vector3 spawnPos, bool fallDir, ORB_VALUE val)
    {
        TitleOrb orb = (Instantiate(Resources.Load <GameObject>(PREFAB_PATH), Vector3.zero, Quaternion.identity, TitleOrbPool.Instance.transform)).GetComponent <TitleOrb>();

        orb.setInitValues(spawnPos, fallDir, val);
        return(orb);
    }
    public void incrementValue(int offset)
    {
        ORB_VALUE newVal = isDigit() ? (ORB_VALUE)Mathf.Clamp(getIntValue() + offset, 0, 9) : currState.value;

        if (newVal != currState.value)
        {
            Vector3 deltaNumSpawn = new Vector3(trans.position.x * 5 - 55f, trans.position.y * 5, 2f);
            HPDeltaNum.Create(deltaNumSpawn, offset);
            changeValue(newVal);
        }
    }
    private void setLoadColor()
    {
        ORB_VALUE orbVal        = (ORB_VALUE)PlayerPrefs.GetInt("TitlePalette", Random.Range(0, 9));
        Color     loadPrimary   = ColorPalette.getPalette(orbVal, true);
        Color     loadSecondary = ColorPalette.getPalette(orbVal, false);

        loadNum.color  = loadPrimary;
        loadNum.text   = "" + (int)orbVal;
        loadText.color = loadSecondary;
        bg.color       = Color.black;
    }
 public void setInitValues(Vector3 spawnPos, bool fallDir, ORB_VALUE val)
 {
     bgSpr.transform.localScale    = Vector3.zero;
     pulseSpr.transform.localScale = Vector3.zero;
     spr.sprite        = orbSprites[(int)val * 2 + 1];
     name              = val.ToString();
     orbTrans.position = spawnPos;
     velocity          = (fallDir ? Vector3.left : Vector3.right) * 0.5f;
     bounced           = false;
     timer             = 0f;
     setColor(val);
 }
    void spawnTitleOrb()
    {
        ORB_VALUE  randOrb  = (ORB_VALUE)Random.Range(0, 9);
        bool       fallDir  = Random.value <= 0.5f;
        Vector3    orbSpawn = new Vector3((fallDir ? 1 : -1) * Random.Range(280f, 320f), Random.Range(240f, 400f));
        GameObject newOrb   = TitleOrbPool.Instance.GetPooledOrb(orbSpawn, fallDir, randOrb);

        visibleOrbs.Add(newOrb);
        if (visibleOrbs.Count > MAX_ORBS)
        {
            TitleOrbPool.Instance.ReturnToPool(visibleOrbs[0]);
            visibleOrbs.RemoveAt(0);
        }
    }
    public void setInitValues(Vector3 spawnGridPos, int fallDist, ORB_VALUE val)
    {
        Vector2Int prevGridPos = new Vector2Int((int)spawnGridPos.x, (int)spawnGridPos.y);

        currGridPos    = new Vector2Int(prevGridPos.x, prevGridPos.y - fallDist);
        trans.position = Board.convertGridToWorldPos(prevGridPos);  // TO-DO: SUS when changing resolutions

        isSelected       = false;
        isHighlighted    = false;
        prevOrbDir       = nextOrbDir = Vector2Int.zero;
        sprWhite.color   = Color.clear;
        sprMarker.sprite = null;

        changeValue(val);
        currState.isMarkedBy = new List <string>();
        updateMarkerSprite();
        updateConnectors();
    }
Beispiel #9
0
    public GameObject GetPooledOrb(Vector3 spawnPos, int fallDist, ORB_VALUE val)
    {
        foreach (GameObject o in pooledOrbs)
        {
            if (!o.activeInHierarchy)
            {
                Orb orb = isOrb(o);
                o.SetActive(true);
                orb.setInitValues(spawnPos, fallDist, val);
                return(o);
            }
        }

        GameObject obj = Orb.Create(spawnPos, fallDist, val).gameObject;

        pooledOrbs.Add(obj);
        return(obj);
    }
    public GameObject GetPooledOrb(Vector3 spawnPos, bool fallDir, ORB_VALUE val)
    {
        foreach (GameObject o in pooledOrbs)
        {
            if (!o.activeInHierarchy)
            {
                TitleOrb orb = isTitleOrb(o);
                o.SetActive(true);
                o.transform.SetAsLastSibling();
                orb.setInitValues(spawnPos, fallDir, val);
                return(o);
            }
        }

        GameObject obj = TitleOrb.Create(spawnPos, fallDir, val).gameObject;

        pooledOrbs.Add(obj);
        obj.transform.SetAsLastSibling();
        return(obj);
    }
    // Setting orbs
    public IEnumerator setAllMarkedOrbsBy(string skillID, Func <Orb, ORB_VALUE> getVal, float delay, List <Vector2Int> order)
    {
        List <Orb> toSet = getAllMarkedOrbsBy(skillID, order);

        foreach (Orb orb in toSet)
        {
            orb.toggleOrbHighlight(false);
            orb.toggleOrbMarker(skillID, false);
            ORB_VALUE newVal = getVal(orb);
            if (orb.getOrbValue() != newVal)
            {
                orb.changeValue(newVal);
                orb.toggleOrbHighlight(true);
                if (delay != 0)
                {
                    yield return(new WaitForSeconds(delay));
                }
                orb.toggleOrbHighlight(false);
            }
        }
    }
    private Orb spawnRandomOrb(int column, int row, int fallDist)
    {
        int total = 0;

        foreach (OrbSpawnRate osr in orbSpawnRates)
        {
            total += (int)osr;
        }
        float     rand   = RNG.Next(total);
        ORB_VALUE newOrb = ORB_VALUE.ZERO;

        foreach (OrbSpawnRate osr in orbSpawnRates)
        {
            rand -= (int)osr;
            if (rand < 0)
            {
                break;
            }
            newOrb++;
        }
        return(spawnOrb(newOrb, column, row, fallDist));
    }
    public void changeValue(ORB_VALUE val)
    {
        if (currState.value == val && name == currState.value.ToString())
        {
            return;
        }
        currState.value = val;
        spr.sprite      = orbSprites[getIntValue() * 2 + 1];
        name            = currState.value.ToString();
        switch (currState.value)
        {
        case ORB_VALUE.ZERO: sprWhiteColor = ColorPalette.getColor(12, 1); break;

        case ORB_VALUE.POISON: sprWhiteColor = ColorPalette.getColor(1, 1); break;

        case ORB_VALUE.EMPTY: sprWhiteColor = ColorPalette.getColor(2, 2); break;

        case ORB_VALUE.NULLIFY: sprWhiteColor = ColorPalette.getColor(3, 1); break;

        case ORB_VALUE.STOP: sprWhiteColor = ColorPalette.getColor(0, 2); break;

        default: sprWhiteColor = Color.white; break;
        }
    }
 private Orb spawnOrb(ORB_VALUE value, int column, int row, int fallDist) => OrbPool.Instance.GetPooledOrb(new Vector2(column, row + fallDist), fallDist, value).GetComponent <Orb>();
 private void setColor(ORB_VALUE val)
 {
     bgSpr.color    = ColorPalette.getPalette(val, true);
     pulseSpr.color = ColorPalette.getPalette(val, false);
 }