public void InitialArray() { deck = new List <DuelCard> [playerNum]; extra = new List <DuelCard> [playerNum]; grave = new List <DuelCard> [playerNum]; except = new List <DuelCard> [playerNum]; handcard = new List <DuelCard> [playerNum]; monster = new DuelCard[playerNum][]; magictrap = new DuelCard[playerNum][]; normalsummon = new int[playerNum]; activatelimit = new List <ActivateLimit> [playerNum]; for (int i = 0; i < playerNum; i++) { deck[i] = new List <DuelCard>(); extra[i] = new List <DuelCard>(); grave[i] = new List <DuelCard>(); except[i] = new List <DuelCard>(); handcard[i] = new List <DuelCard>(); monster[i] = new DuelCard[areaNum]; magictrap[i] = new DuelCard[areaNum]; activatelimit[i] = new List <ActivateLimit>(); } LP = new int[2]; fieldcard = new DuelCard[2]; setmonster = new bool[2]; for (int i = 0; i < 2; i++) { LP[i] = 0; setmonster[i] = true; } }
public void AddHandCard(DuelCard duelcard) { GameObject handcard = Instantiate(card, handcardlist); handcard.GetComponent <Image>().sprite = Duel.spriteManager.GetCardSprite(duelcard.id, false); StartCoroutine(ChangeHandCardPosition(false)); }
public int Remove(ref DuelCard card) { int removeIndex = PlayerHand.IndexOf(card); PlayerHand.Remove(card); return(removeIndex); }
/// <summary> /// 把这张卡特殊召唤 /// </summary> /// <param name="duelcard"></param> public void SpecialSummon(DuelCard duelcard) { if (precheck) { if (!duel.SpecialSummonCheck()) { activatable = false; } if (duelcard.position == CardPosition.handcard && duelcard.Equals(thiscard) && thiseffect.effectType == EffectType.cantrigger) { thiseffect.SetLimit(-1, LimitType.specialsummonself, 1); if (!duel.LimitCheck(thiscard, thiseffect.effect, LimitType.specialsummonself)) { activatable = false; } } return; } EventData eData = new EventData { oplayer = duelData.opWho, gameEvent = GameEvent.specialsummon, data = new Dictionary <string, object> { { "monstercard", duelcard }, } }; duelData.eventDate.Add(eData); }
public IEnumerator MagicTrapShow(DuelCard duelcard, bool activateCover) { if (activateCover) { if (duel.IsPlayerOwn(duelcard.controller)) { yield return(magictrapOwn.ShowCoverCard(duelcard)); } else { yield return(magictrapOps.ShowCoverCard(duelcard)); } } else { if (duel.IsPlayerOwn(duelcard.controller)) { yield return(magictrapOwn.ShowMagicTrapCard(duelcard)); } else { yield return(magictrapOps.ShowMagicTrapCard(duelcard)); } } }
public IEnumerator ShowMagicTrapCard(DuelCard duelcard) { Transform mgttrans = GetChildCard(duelcard.index); Sprite sprite = Duel.spriteManager.GetCardSprite(duelcard.id, false); if (duelcard.mean == CardMean.faceupmgt) {//表侧表示 mgttrans.localPosition = new Vector3(0, 0.53f, -0.43f); mgttrans.rotation = Quaternion.Euler(0, 0, 180); } if (duelcard.mean == CardMean.facedownmgt) {//里侧表示 mgttrans.rotation = Quaternion.Euler(90, 180, 0); } if (sprite == null) { mgttrans.GetComponent <Renderer>().material.mainTexture = null; } else { mgttrans.GetComponent <Renderer>().material.mainTexture = sprite.texture; } mgttrans.gameObject.SetActive(true); yield return(null); }
static int ChangeMean(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2) { DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); DuelCard arg0 = (DuelCard)ToLua.CheckObject <DuelCard>(L, 2); obj.ChangeMean(arg0); return(0); } else if (count == 3) { DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); DuelCard arg0 = (DuelCard)ToLua.CheckObject <DuelCard>(L, 2); int arg1 = (int)LuaDLL.luaL_checknumber(L, 3); obj.ChangeMean(arg0, arg1); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: DuelEvent.ChangeMean")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int SpecialSummon(IntPtr L) { try { int count = LuaDLL.lua_gettop(L); if (count == 2 && TypeChecker.CheckTypes <DuelCard>(L, 2)) { DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); DuelCard arg0 = (DuelCard)ToLua.ToObject(L, 2); obj.SpecialSummon(arg0); return(0); } else if (count == 2 && TypeChecker.CheckTypes <System.Collections.Generic.List <DuelCard> >(L, 2)) { DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); System.Collections.Generic.List <DuelCard> arg0 = (System.Collections.Generic.List <DuelCard>)ToLua.ToObject(L, 2); obj.SpecialSummon(arg0); return(0); } else { return(LuaDLL.luaL_throw(L, "invalid arguments to method: DuelEvent.SpecialSummon")); } } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public DuelCard GetClickCard(Transform cardtrans, int position, int side) { DuelCard duelcard = null; if (position == CardPosition.magictrap) { if (side == PlayerSide.own) { int index = magictrapOwn.GetChildIndex(cardtrans); duelcard = duelData.magictrap[0][index]; } if (side == PlayerSide.ops) { int index = magictrapOps.GetChildIndex(cardtrans); duelcard = duelData.magictrap[1][index]; } } if (position == CardPosition.monster) { if (side == PlayerSide.own) { int index = monserOwn.GetChildIndex(cardtrans); duelcard = duelData.monster[0][index]; } if (side == PlayerSide.ops) { int index = monserOps.GetChildIndex(cardtrans); duelcard = duelData.monster[1][index]; } } return(duelcard); }
public void ShowMonsterCard(DuelCard duelcard) { Transform montrans = GetChildCard(duelcard.index); Sprite sprite = Duel.spriteManager.GetCardSprite(duelcard.id, false); if (duelcard.mean == CardMean.faceupatk) {//表侧攻击表示 montrans.rotation = Quaternion.Euler(270, 180, 0); } if (duelcard.mean == CardMean.faceupdef) {//表侧守备表示 montrans.rotation = Quaternion.Euler(270, 90, 0); } if (duelcard.mean == CardMean.facedowndef) {//里侧守备表示 montrans.rotation = Quaternion.Euler(90, 270, 0); } if (sprite == null) { montrans.GetComponent <Renderer>().material.mainTexture = null; } else { montrans.GetComponent <Renderer>().material.mainTexture = sprite.texture; } montrans.gameObject.SetActive(true); }
override public void OnMouseUpAsButton() { //TODO: extra logic for non-minions based cards and field movement //unoccupied if (null == currentCard) { DragDropManager.Callback(this); if (this.Target != null) { //access the game object that would be dropped currentCard = this.Target.gameObject; currentCard.transform.SetParent(this.transform); //load and summons the minion DuelCard duelCard = currentCard.GetComponent <DuelCard>(); if (null != duelCard) { //TODO: Event for OnSummon //summon the monster duelCard.Summon(); duelCard.gameObject.transform.position = this.transform.position; //TODO: Event for AfterSummon } DragDropManager.CompleteCallback(); } } }
public int AddCard(ref DuelCard card) { //TODO: add restrictive functionality for max hand size int addIndex = PlayerHand.Count; PlayerHand.Add(card); return(addIndex); }
public void AddCard(DuelCard duelcard) { if (duelcard == null) { return; } CardLocation cardlocal = new CardLocation(); cardlocal.SetLocation(duelcard); card.Add(cardlocal); }
public void MonsterShow(DuelCard duelcard) { if (duel.IsPlayerOwn(duelcard.controller)) { monserOwn.ShowMonsterCard(duelcard); } else { monserOps.ShowMonsterCard(duelcard); } }
public void MagicTrapRemove(DuelCard duelcard) { if (duel.IsPlayerOwn(duelcard.controller)) { magictrapOwn.HideMagicTrapCard(duelcard.index); } else { magictrapOps.HideMagicTrapCard(duelcard.index); } duelData.magictrap[duelcard.controller][duelcard.index] = null; }
public void MonsterRemove(DuelCard duelcard) { if (duel.IsPlayerOwn(duelcard.controller)) { monserOwn.HideMonsterCard(duelcard.index); } else { monserOps.HideMonsterCard(duelcard.index); } duelData.monster[duelcard.controller][duelcard.index] = null; }
public IEnumerator WaitMeanChoose(DuelCard duelcard, bool secSet) { if (secSet) { yield return(duelTip.ShowMeanTip(Duel.spriteManager.GetCardSprite(duelcard.id, false), Duel.spriteManager.GetTextureSprite("cover"))); } else { yield return(duelTip.ShowMeanTip(Duel.spriteManager.GetCardSprite(duelcard.id, false))); } duelData.meanChoose = duelTip.choice; }
public void GraveRemove(int player, DuelCard duelcard) { duelData.grave[player].Remove(duelcard); duelData.SortCard(duelData.grave[player]); if (duel.IsPlayerOwn(player)) { graveOwn.GraveUpdate(player); } else { graveOps.GraveUpdate(player); } }
public void DeckRemove(int player, DuelCard duelcard) { duelData.deck[player].Remove(duelcard); duelData.SortCard(duelData.deck[player]); if (duel.IsPlayerOwn(player)) { deckOwn.DeckUpdate(player); } else { deckOps.DeckUpdate(player); } }
public void HandCardRemove(int player, DuelCard duelcard) { duelData.handcard[player].Remove(duelcard); duelData.SortCard(duelData.handcard[player]); if (duel.IsPlayerOwn(player)) { handOwn.RemoveHandCard(duelcard.index); } else { handOps.RemoveHandCard(duelcard.index); } }
public void SetCardInfo(DuelCard card) { duelcard = card; cardImage.sprite = Duel.spriteManager.GetCardSprite(duelcard.id, false); cardName.text = duelcard.name + " " + duelcard.id + " " + duelcard.series; cardAtt.text = duelcard.type; if (duelcard.type.Contains(CardType.monster)) { cardAtt.text += " " + duelcard.race + " " + duelcard.attribute + " 星" + duelcard.level + " " + duelcard.atk + "/" + duelcard.def; } cardDes.text = duelcard.describe; ClearCardButton(); showcard = true; }
public void HandCardAdd(int player, DuelCard duelcard) { duelcard.position = CardPosition.handcard; duelcard.index = duelData.handcard[player].Count; duelData.handcard[player].Add(duelcard); if (duel.IsPlayerOwn(player)) { handOwn.AddHandCard(duelcard); } else { handOps.AddHandCard(duelcard); } }
static int ActivateInvalid(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); DuelCard o = obj.ActivateInvalid(); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int SetThisCard(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); DuelCard arg0 = (DuelCard)ToLua.CheckObject <DuelCard>(L, 2); obj.SetThisCard(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public void GraveInsert(int player, int where, DuelCard duelcard) { duelcard.position = CardPosition.grave; duelcard.index = where; duelData.grave[player].Insert(where, duelcard); duelData.SortCard(duelData.grave[player]); if (duel.IsPlayerOwn(player)) { graveOwn.GraveUpdate(player); } else { graveOps.GraveUpdate(player); } }
static int ResetCard(IntPtr L) { try { ToLua.CheckArgsCount(L, 2); DuelCard obj = (DuelCard)ToLua.CheckObject <DuelCard>(L, 1); Card arg0 = (Card)ToLua.CheckObject <Card>(L, 2); obj.ResetCard(arg0); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int GetAntiMonster(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); DuelEvent obj = (DuelEvent)ToLua.CheckObject <DuelEvent>(L, 1); DuelCard o = obj.GetAntiMonster(); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int Clone(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); DuelCard obj = (DuelCard)ToLua.CheckObject <DuelCard>(L, 1); DuelCard o = obj.Clone(); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static int set_duelcard(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); CardEffect obj = (CardEffect)o; DuelCard arg0 = (DuelCard)ToLua.CheckObject <DuelCard>(L, 2); obj.duelcard = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o, "attempt to index duelcard on a nil value")); } }
static int get_duelcard(IntPtr L) { object o = null; try { o = ToLua.ToObject(L, 1); CardEffect obj = (CardEffect)o; DuelCard ret = obj.duelcard; ToLua.PushObject(L, ret); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e, o, "attempt to index duelcard on a nil value")); } }