Exemplo n.º 1
0
    public void OnUseHammerClick(PointerEventData eventData, SkillPanel skillPanel, int coins)
    {
        if (this.isCanHammer == false)
        {
            return;
        }
        List <RaycastResult> results = new List <RaycastResult>();

        EventSystem.current.RaycastAll(eventData, results);
        TriangelItem triangel = getTriangelItemRayCat(results);

        if (triangel != null)
        {
            if (this._mapData[triangel.Row, triangel.Col].Color == ColorType.NONE)
            {
                this.CancelHammer();
            }
            else
            {
                this.CancelHammer();
                //////oogleAnalyticsV4.getInstance().LogEvent("SKILL", "Use Skill Hammer Success", string.Empty, 0L);

                UserProfile.Instance.ReduceDiamond(coins);
                this._mapData[triangel.Row, triangel.Col].Color = ColorType.NONE;
                this._mapUI[triangel.Row, triangel.Col].ClearPatternTriangle();
                SoundManager.Instance.PlaySfx(SFX.Clear);
            }
        }
        else
        {
            this.CancelHammer();
        }
        skillPanel.callbackUseSkill = null;
        skillPanel.gameObject.SetActive(false);
    }
Exemplo n.º 2
0
    //vẽ ra màn hình
    public void DrawMap()
    {
        int num = 0;

        for (int i = 0; i < this._Row; i++)
        {
            for (int j = 0; j < this._Col; j++)
            {
                CellType type = this._mapData[i, j].Type;
                if (type != CellType.NONE)
                {
                    GameObject gameObject = Instantiate <GameObject>(Resources.Load <GameObject>("Prefabs/TriangeItem"));
                    gameObject.transform.SetParent(this.transform);// this._layerTriangle);
                    gameObject.transform.localScale = Vector3.one;
                    gameObject.name = num.ToString();
                    this.SetPositionTriangle(gameObject.transform, i, j, type);
                    TriangelItem item = gameObject.GetComponent <TriangelItem>();
                    if (item != null)
                    {
                        item.SetData(i, j, type);
                        this._mapUI[i, j] = item;
                    }
                    num++;
                }
            }
        }
    }
Exemplo n.º 3
0
 TriangelItem getTriangelItemRayCat(List <RaycastResult> results)
 {
     foreach (RaycastResult result in results)
     {
         TriangelItem item = result.gameObject.GetComponent <TriangelItem>();
         if (item != null)
         {
             return(item);
         }
     }
     return(null);
 }
Exemplo n.º 4
0
    public void OnPatternDrag(PointerEventData eventData, HexaPattern pattern)
    {
        Vector3 pos = Camera.main.ScreenToWorldPoint(new Vector3(eventData.position.x, eventData.position.y));

        Vector2 position2 = pattern.transform.parent.InverseTransformPoint(pos);

        pattern.UpdatePosDrag(position2);

        List <RaycastResult> results = new List <RaycastResult>();
        Vector2 posCenter            = pattern.GetPositionTriangleCenter();
        Vector2 posInverse           = Camera.main.WorldToScreenPoint(posCenter);

        eventData.position = posInverse;
        EventSystem.current.RaycastAll(eventData, results);

        if (results.Count != 0)
        {
            TriangelItem triangel = getTriangelItemRayCat(results);
            if (triangel != null)
            {
                int row = triangel.Row;
                int col = triangel.Col;

                this._listMapping = pattern.GetListMapping(row, col);

                bool isAllow = this.CheckAllowAddPattern(this._listMapping, pattern.Color);
                if (isAllow)
                {
                    this.ClearHint();
                    this.GetListHint(this._listMapping);
                    this.ShowHint(pattern.Color);
                }
                else
                {
                    this.ClearHint();
                }
            }
            else
            {
                this.ClearHint();
            }
        }
        else
        {
            this.ClearHint();
        }
    }
Exemplo n.º 5
0
    public void OnPatternEndDrag(PointerEventData eventData, HexaPattern pattern)
    {
        List <RaycastResult> results = new List <RaycastResult>();
        Vector2 posCenter            = pattern.GetPositionTriangleCenter();
        Vector2 posInverse           = Camera.main.WorldToScreenPoint(posCenter);

        eventData.position = posInverse;
        EventSystem.current.RaycastAll(eventData, results);

        this.ClearHint();
        if (results.Count != 0)
        {
            TriangelItem triangel = getTriangelItemRayCat(results);
            if (triangel != null)
            {
                int row = triangel.Row;
                int col = triangel.Col;

                this._listMapping = pattern.GetListMapping(row, col);
                //DebugLisMapping(this._listMapping);
                bool isAllow = this.CheckAllowAddPattern(this._listMapping, pattern.Color);
                if (isAllow)
                {
                    SoundManager.Instance.PlaySfx(SFX.Take);
                    this.GetListHint(this._listMapping);
                    this.ShowPatternTriangle(pattern.Color, this._listHint);
                    List <PosMap> lists     = AlgorithmCheckHexa.Instance.CheckHexa(this._listHint, this._mapData, pattern.TypePattern);
                    bool          getDouble = false;
                    int           num       = this.CaculateScore(pattern.NumberTriangle, lists.Count, pattern.Color, ref getDouble);
                    if (lists.Count > 0)
                    {
                        Debug.Log("Pos map " + lists.Count);
                        StartCoroutine(ClearPatternTriangle(lists));
                        //CreateExplosionEffect(pattern.transform.position);
                    }
                    this.PlayEffectGetScore(num, pattern.transform.position, pattern.Color);
                    this.CheckTransferColor();
                    this.btHammer.interactable = true;
                    //tao mơi thằng Pattern mới
                    GameObject gameObject = this.InitDataPattern(pattern.IndexInPanel, false);
                    gameObject.transform.position = this.listPosPattern[pattern.IndexInPanel].position;
                    pattern.DestroyPattern();
                    this.listPattern.Remove(pattern);

                    StartCoroutine(CoutingCheckOutOfMove());
                    //this.AddNewPattern(pattern.IndexInPanel, false);
                    //tinh diem o day
                }
                else
                {
                    this.ResetPosPattern(pattern);
                }
            }
            else
            {
                this.ResetPosPattern(pattern);
            }
        }
        else
        {
            this.ResetPosPattern(pattern);
        }
    }