private IEnumerator ProcessAllNewGemsMovements (Action onFinished)
    {
        var gemsBoard = GemsManager.GetGemsBoard ();
        var width = gemsBoard.GetLength (0);
        var height = gemsBoard.GetLength (1);
        var gemsToMove = new List<Gem> (width * height);

        for (int x = 0; x < width; x++)
        {
            for (int y = 0; y < height; y++)
                gemsToMove.Add (gemsBoard[x, y]);
        }

        while (gemsToMove.Count > 0)
        {
            for (int i = gemsToMove.Count - 1; i >= 0; i--)
            {
                if (!gemsToMove[i].ProcessMovement ())
                    gemsToMove.RemoveAt (i);
            }

            yield return null;
        }

        onFinished.Invoke ();
    }
Exemplo n.º 2
0
    public bool ProcessMovement()
    {
        if (Mathf.Abs(TargetPosition.x - transform.position.x) > 0.1f)
        {
            transform.position = Vector2.Lerp(transform.position, new Vector2(TargetPosition.x, transform.position.y), 0.4f);
            isHorizontalMoving = true;
        }
        else if (isHorizontalMoving)
        {
            transform.position = new Vector2(TargetPosition.x, transform.position.y);
            GemsManager.GetGemsBoard()[Column, Row] = this;
            isHorizontalMoving = false;
        }

        if (Mathf.Abs(TargetPosition.y - transform.position.y) > 0.1f)
        {
            transform.position = Vector2.Lerp(transform.position, new Vector2(transform.position.x, TargetPosition.y), 0.4f);
            isVerticalMoving   = true;
        }
        else if (isVerticalMoving)
        {
            transform.position = new Vector2(transform.position.x, TargetPosition.y);
            GemsManager.GetGemsBoard()[Column, Row] = this;
            isVerticalMoving = false;
        }

        return(isHorizontalMoving || isVerticalMoving);
    }
Exemplo n.º 3
0
 void EditorUpdate()
 {
     if (isDirty)
     {
         if (isPreviewOn)
         {
             ((GemsManager)target).CreateBoard(1337);
         }
         else
         {
             ((GemsManager)target).DeleteBoard();
         }
         isDirty = false;
     }
     else if (isPreviewOn)
     {
         GemsManager manager = (GemsManager)target;
         if (manager.EditorIsDirty)
         {
             manager.DeleteBoard();
             manager.CreateBoard(1337);
             manager.EditorIsDirty = false;
         }
     }
 }
Exemplo n.º 4
0
 // Use this for initialization
 void Start()
 {
     gemsManager = GameObject.Find("gems-manager").GetComponent <GemsManager> ();
     renderer    = GetComponent <Renderer> ();
     audio       = GetComponent <AudioSource>();
     collider    = GetComponent <BoxCollider2D> ();
 }
    private Gem GetHorizontalNeighboar (Gem currentGem, int dir)
    {
        if (currentGem.Column + dir < 0 || currentGem.Column + dir >= gemsManager.BoardWidth)
            return null;

        var NeighboarGem = GemsManager.GetGemsBoard () [currentGem.Column + dir, currentGem.Row];
        if (NeighboarGem == null)
            return null;

        NeighboarGem.LastColumn = NeighboarGem.Column;
        NeighboarGem.Column -= dir;

        currentGem.LastColumn = currentGem.Column;
        currentGem.Column += dir;

        return NeighboarGem;
    }
    private Gem GetVerticalNeighboar (Gem currentGem, int dir)
    {
        if (currentGem.Row + dir < 0 || currentGem.Row + dir >= gemsManager.BoardHeight)
            return null;

        var NeighboarGem = GemsManager.GetGemsBoard () [currentGem.Column, currentGem.Row + dir];
        if (NeighboarGem == null)
            return null;

        NeighboarGem.LastRow = NeighboarGem.Row;
        NeighboarGem.Row -= dir;

        currentGem.LastRow = currentGem.Row;
        currentGem.Row += dir;

        return NeighboarGem;
    }
Exemplo n.º 7
0
    public Equipment(EquipInfo rt, EquipData config, GemsManager gemsMana)
    {
        Utils.Assert(rt == null, "Invalidate Equip Data from Server.");
        Utils.Assert(config == null, "Invalidate Equip Data from config file.");

        RtEquip     = rt;
        ConfigEquip = config;
        equipped    = false;
        isNew       = true;

        if (RtEquip.slot != null)
        {
            foreach (EquipSlot es in RtEquip.slot)
            {
                if (es != null)
                {
                    es.mGem = gemsMana.equipGems(es.id);
                }
            }
        }
    }
 private void Start ()
 {
     gemsManager = GemsManager.Instance;
 }
Exemplo n.º 9
0
 public void UpdateGemBoard()
 {
     GemsManager.GetGemsBoard()[Column, Row] = this;
 }
Exemplo n.º 10
0
    // --------- Game Events ---------

    public void OnSceneLoaded(GemsManager gemsManager)
    {
        this.gemsManager = gemsManager;
        this.gemsManager.StartGame(_randomSeed, _isMyTurn);
    }
Exemplo n.º 11
0
    public void OnShow(SecretShopDataStruct data)
    {
        if (data == null)
        {
            gameObject.SetActive(false);
            return;
        }
        else
        {
            gameObject.SetActive(true);
        }

        mdata = data;

        mItemIcon.gameObject.SetActive(true);
        mItemNum.gameObject.SetActive(true);
        mItemName.gameObject.SetActive(true);
        mChoose.gameObject.SetActive(true);

        GetObject(data.num);

        SetItemStatus();
        SetItemPrice();

        titleObj.SetActive(true);

        if (mdata.type == 1)
        {
            spDiscountTitle.spriteName = "sc_msz_dz";
        }
        else if (mdata.type == 2)
        {
            spDiscountTitle.spriteName = "sc_msz_dj1";
        }
        else if (mdata.type == 0)
        {
            titleObj.SetActive(false);
        }

        mChoose.gameObject.SetActive(false);

        mItemName.text = str;

        mSoulIcon.gameObject.SetActive(false);
        mItemNum.text = ItemNumLogic.setItemNum(mdata.count, mItemNum, mItemNum.gameObject.transform.parent.gameObject.GetComponent <UISprite>());
        ConfigDataType datatype = DataCore.getDataType(data.num);

        if (datatype == ConfigDataType.Monster)
        {
            AtlasMgr.mInstance.SetHeadSprite(mItemIcon, data.num.ToString());
            mItemIcon.MakePixelPerfect();
            return;
        }
        else if (datatype == ConfigDataType.Equip)
        {
            mItemIcon.atlas = AtlasMgr.mInstance.equipAtlas;
        }
        else if (datatype == ConfigDataType.Gems)
        {
            mItemIcon.atlas = AtlasMgr.mInstance.commonAtlas;
        }
        else if (datatype == ConfigDataType.Item)
        {
            mItemIcon.atlas = AtlasMgr.mInstance.itemAtlas;
        }
        else if (datatype == ConfigDataType.Frag)
        {
            SoulInfo info = new SoulInfo(0, data.num, data.count);
            Soul     soul = new Soul();
            soul.m_config = Core.Data.soulManager.GetSoulConfigByNum(info.num);
            soul.m_RTData = info;
            if (soul.m_config.type == (int)ItemType.Monster_Frage)
            {
                MonsterData mon = Core.Data.monManager.getMonsterByNum(soul.m_config.updateId);
                if (mon != null)
                {
                    mSoulIcon.gameObject.SetActive(true);
                    AtlasMgr.mInstance.SetHeadSprite(mItemIcon, mon.ID.ToString());
                    mItemIcon.MakePixelPerfect();
                    mSoulIcon.spriteName = "bag-0003";
                }
            }
            else if (soul.m_config.type == (int)ItemType.Equip_Frage)
            {
                EquipData equip = Core.Data.EquipManager.getEquipConfig(soul.m_config.updateId);
                if (equip != null)
                {
                    mSoulIcon.gameObject.SetActive(true);
                    mItemIcon.atlas      = AtlasMgr.mInstance.equipAtlas;
                    mItemIcon.spriteName = soul.m_config.updateId.ToString();
                    mItemIcon.MakePixelPerfect();
                    mSoulIcon.spriteName = "sui";
                }
            }
            else
            {
                mItemIcon.atlas      = AtlasMgr.mInstance.itemAtlas;
                mItemIcon.spriteName = soul.m_RTData.num.ToString();
            }
            return;
        }
        else
        {
            RED.LogWarning("unknow reward type");
        }

        if (datatype == ConfigDataType.Gems)
        {
            GemsManager gemsMgr = Core.Data.gemsManager;
            if (gemsMgr != null)
            {
                GemData Gdata = gemsMgr.getGemData(mdata.num);
                if (Gdata != null)
                {
                    mItemIcon.spriteName = Gdata.anime2D;
                }
            }
        }
        else if (datatype == ConfigDataType.Item)
        {
            ItemData item = Core.Data.itemManager.getItemData(mdata.num);
            if (item != null)
            {
                mItemIcon.spriteName = item.iconID.ToString();
            }
        }
        else
        {
            mItemIcon.spriteName = mdata.num.ToString();
        }

        mItemIcon.MakePixelPerfect();
    }