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); }
//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++; } } } }
TriangelItem getTriangelItemRayCat(List <RaycastResult> results) { foreach (RaycastResult result in results) { TriangelItem item = result.gameObject.GetComponent <TriangelItem>(); if (item != null) { return(item); } } return(null); }
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(); } }
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); } }