void IDropHandler.OnDrop(PointerEventData eventData) { if (!cardData.hasTag(player1["targetTag"] as string)) { return; } if (eventData.pointerDrag != null) { CardReceptor rc = eventData.pointerDrag.GetComponent <CardReceptor>(); if (rc != null && cardData.hasTag(player1["aimTag"] as string)) { // this is ability resolution player1["AIMED"] = cardData; Debug.Log(rc); rc.DropOccurred(); return; } if (rc != null && cardData.hasTag(player1["targetTag"] as string)) { player1["TARGETED"] = cardData; Debug.Log(rc); rc.DropOccurred(); return; } } }
void IDropHandler.OnDrop (PointerEventData eventData) { if(eventData.pointerDrag!=null) { CardControl card=eventData.pointerDrag.GetComponent<CardControl>(); if(card!=null) { if(data!=null&&data.hasTag(data["|-.Player1.targetTag"] as string)) { lock(SingleGame.gameLock) { SingleGame.GameManager.self._GameData["Player1.TARGETED"]=data;//card.cardData; //Debug.Log(player1["TARGETED"]); } //Debug.Log(card); /*RectTransform cardrt=card.gameObject.GetComponent<RectTransform>(); cardrt.SetParent(gameObject.transform,false); cardrt.anchorMin=Vector2.zero; cardrt.anchorMax=Vector2.one; cardrt.offsetMax=Vector2.zero; cardrt.offsetMin=Vector2.zero; cardrt.localScale=new Vector3(1,1,1);*/ if(!card.cardData.hasTag("ABILITY")) card.registerDropSuccess(false); else { Debug.Log("ssss"); Vector2 ops= card.getOPos(); RectTransform ctp=card.gameObject.GetComponent<RectTransform>(); Vector2 sv=ctp.anchoredPosition; ctp.anchoredPosition=ops; ops=ctp.getPivotInCanvas(); ctp.anchoredPosition=sv; Vector2 dest=(transform as RectTransform).getPivotInCanvas(); GameObject go=Instantiate(arrow) as GameObject; ArrowPointer pnt=go.GetComponent<ArrowPointer>(); RectTransform rt=go.GetComponent<RectTransform>(); RectTransform self=transform as RectTransform; rt.SetParent(self.RootCanvasTransform(),false); rt.SetAsLastSibling(); Debug.Log(ops); pnt.drawArrow(ops,dest); to=pnt; card.registerDropSuccess(false); } } else card.registerDropSuccess(false); } else { CardReceptor rc=eventData.pointerDrag.GetComponent<CardReceptor>(); if(cardData.hasTag("DISMISS_AREA")&&rc!=null&& rc.cardData.hasTag(player1["dismissableTag"] as string)) { rc.cardData.setTag("DESELECT"); rc.cardData.setTag("DISMISS_MARK"); return; } if(rc!=null&&cardData.hasTag(player1["aimTag"] as string)) { // this is ability resolution player1["AIMED"]=cardData; Debug.Log(rc); rc.DropOccurred(); return; } if(rc!=null&&cardData.hasTag(player1["targetTag"] as string)) { player1["TARGETED"]=cardData; Debug.Log(rc); rc.DropOccurred(); return; } } } }
IEnumerator trans() { Debug.Log("trans"); SingleGame.Conditional castCard = _game.hookData["castSource"] as SingleGame.Conditional; //SingleGame.Conditional targetCard=_game.hookData["castTarget"] as SingleGame.Conditional; if (castCard != null) { if (castCard["_Owner"] != player1) { hooks.Remove("transformation"); SingleGame.GameManager.endHook(); yield break; } int handnum = -1; for (int i = 0; i < handCards.Count; i++) { if (castCard == handCards[i].cardData) { handnum = i; break; } } if (handnum == -1) { Debug.Log("Some error"); } else { CardControl toMove = handCards[handnum]; RectTransform original = toMove.GetComponent <RectTransform>(); RectTransform canv = original.RootCanvasTransform(); Vector4 posvec = canv.getAnchorsFromCanvasRect(original.RootCanvasRect()); handCards.Remove(toMove); List <IAnimInterface> anims = new List <IAnimInterface>(); for (int j = 0; j < mpBody.Count; j++) { CardReceptor cr = mpBody[j]; if (castCard.hasTag(cr.validTag)) { GameObject crd = Instantiate(card) as GameObject; CardControl crc = crd.GetComponent <CardControl>(); crc.cardData = castCard; crc.playerID = castCard["_Owner.playerID"] as string; SpawnCardAnim todel = crd.GetComponent <SpawnCardAnim>(); Destroy(todel as Component); CardFlip flp = crd.GetComponent <CardFlip>(); flp.Flip(); RectTransform ctr = crd.GetComponent <RectTransform>(); ctr.SetParent(canv, false); ctr.SetAsLastSibling(); ctr.assignRectAnchors(posvec); RectTransform targpos = cr.gameObject.GetComponent <RectTransform>(); IAnimInterface an = RectTransfer.Apply(crd, targpos, shiftdur); an.Run(); anims.Add(an); cr.cardData = castCard; } } Destroy(toMove.gameObject); bool done = false; while (!done) { done = true; foreach (IAnimInterface anim in anims) { done = (done & anim.isDone); } yield return(null); } foreach (IAnimInterface anim in anims) { RectTransfer rt = anim as RectTransfer; Destroy(rt.gameObject); } } } hooks.Remove("transformation"); SingleGame.GameManager.endHook(); yield break; }