/// <summary> /// 卡牌进入牌堆 /// </summary> public void CardToCemetery(CardFighter card, CardArea area) { RemoveCard(card, area); deadCard.Add(card); Actions.Add(CardDeadAction.GetAction(ID, card.ID, area)); }
/// <summary> /// 卡牌进入牌堆 /// </summary> public void CardToCardArea(CardFighter card, CardArea area) { RemoveCard(card, area); initialCard.Add(card); Actions.Add(CardBackAction.GetAction(ID, card.ID, area)); }
void UpdateCardTick(CardArea area) { foreach (Card card in area.m_AreaList) { card.Tick(); } }
void CheckSpecial(Card card, CardArea area) { if (card.m_CardName == "指挥官") { card.m_CurrentATK += area.m_AreaList.Count; card.m_CurrentHP += area.m_AreaList.Count; card.ChangeHP(area.m_AreaList.Count); card.ChangeATK(area.m_AreaList.Count); } foreach (Card forcard in area.m_AreaList) { if (card.m_CardName == "冲锋" && forcard.m_CardType == Card.CardType.Character && (card.m_BattleRow == forcard.m_BattleRow || card.m_BattleColumn == forcard.m_BattleColumn)) { forcard.m_CurrentATK += 2; forcard.ChangeATK(2); } if (card.m_CardName == "爆发" && forcard.m_CardType == Card.CardType.Character && card.m_BattleColumn == forcard.m_BattleColumn) { forcard.m_CurrentATK *= 3; forcard.m_CurrentHP = 1; forcard.ChangeHP(1 - forcard.m_HP); forcard.ChangeATK(forcard.m_ATK * 2); } if (card.m_CardName == "坚守" && forcard.m_CardType == Card.CardType.Character && card.m_BattleRow == forcard.m_BattleRow) { forcard.m_CurrentHP *= 2; forcard.ChangeHP(forcard.m_HP); } if (card.m_CardName == "巨盾" && forcard.m_CardType == Card.CardType.Character) { forcard.m_CurrentHP += 5; forcard.ChangeHP(5); } } }
CardFightAction(int ownerID, int cardID, CardArea area) { type = ActionType.CardFight; sourceID = ownerID; targetID = cardID; sourceArea = area; }
virtual protected void updateSceneCardPosInternal(CardArea area, bool bUpdateIdx = true) { int idx = 0; SceneCardBase cardItem = null; WayPtItem pt = null; PosType posType = PosType.eHandDown; if (CardArea.CARDCELLTYPE_HAND == area) { posType = PosType.eHandDown; } else if (CardArea.CARDCELLTYPE_COMMON == area) { posType = PosType.eOutDown; } getCardPos(); while (idx < m_sceneCardList.Count()) { cardItem = m_sceneCardList[idx]; if (bUpdateIdx) { cardItem.curIndex = (ushort)idx; } pt = cardItem.trackAniControl.wayPtList.getAndAddPosInfo(posType); pt.pos = m_posList[idx]; cardItem.trackAniControl.moveToDestPos(posType); ++idx; } }
/// <summary> /// 卡牌进入等待区 /// </summary> public void CardToWait(CardFighter card, CardArea area) { RemoveCard(card, area); waitCard.Add(card); Actions.Add(CardWaitAction.GetAction(ID, card.ID, area)); }
void ClearCalculationPre(CardArea area1, CardArea area2, bool isplayer = true, bool ishurta = true, int column = 3) { if (isplayer) { player.m_CurrentHurt = 0; enemy.m_CurrentHurt = 0; } foreach (Card card in area1.m_AreaList) { if (column == 3 || card.m_BattleColumn == column) { card.m_CurrentHurt = 0; if (ishurta) { card.m_CurrentHurtA = 0; } } } foreach (Card card in area2.m_AreaList) { if (column == 3 || card.m_BattleColumn == column) { card.m_CurrentHurt = 0; if (ishurta) { card.m_CurrentHurtA = 0; } } } }
void DrawCard(CardArea areadrop, CardArea areadeck, CardArea areahand) { while (iDrawCardCount < player.m_DrawCardCount) { if (areadeck.m_AreaList.Count == 0) { Shuffle(areadrop, areadeck); } if (areadeck.m_AreaList.Count >= 1) { ChangeCardArea(areahand, areadeck.m_AreaList[0]); areahand.m_AreaList.Add(areadeck.m_AreaList[0]); areadeck.m_AreaList.Remove(areadeck.m_AreaList[0]); iDrawCardCount++; } else { return; } } UpdateCardAreaListCount(areadeck); bDrawCard = false; bPushCard = true; iDrawCardCount = 0; }
public bool CanPlayerDrag(Player player, CardArea area) { bool PlayersTurn = (GameManager.Instance.whoseTurn == player); //Debug.Log(" Area: " + area.areaType + " PlayersTurn: " + PlayersTurn); bool IsHand = (area.areaType == CardArea.AreaType.Hand); //Debug.Log("IsHand: " + IsHand + " Area: " + area.areaType + " PlayersTurn: " + PlayersTurn); return(PlayersTurn && IsHand); }
// canvasエリアの用意 private void Setting() { var c_instance = Instantiate(cardarea); var s_instance = Instantiate(scorearea, new Vector2(600, -50), q); c_instance.transform.SetParent(canvas.transform, false); s_instance.transform.SetParent(canvas.transform, false); cardArea = c_instance.GetComponent <CardArea>(); }
int BattleCalculationPre(CardArea area1, CardArea area2) { int atk2 = 0; for (int i = 0; i < 9; i++) { int atk = 0; Card.HurtEffect hurteffect = Card.HurtEffect.Normal; BattleCube cube = area1.transform.GetChild(i).GetComponent <BattleCube>(); if (cube != null && cube.transform.childCount > 0) { atk += cube.transform.GetChild(0).GetComponent <Card>().m_CurrentATK; hurteffect = cube.transform.GetChild(0).GetComponent <Card>().m_HurtEffect; if (hurteffect == Card.HurtEffect.Backstab) { for (int j = 8; j >= 0; j--) { BattleCube cube2 = area2.transform.GetChild(j).GetComponent <BattleCube>(); if (cube2 != null && cube2.m_Column == cube.m_Column && cube2.transform.childCount > 0) { atk = cube2.transform.GetChild(0).GetComponent <Card>().GetHurtPre(atk); } } } else { for (int j = 0; j < 9; j++) { BattleCube cube2 = area2.transform.GetChild(j).GetComponent <BattleCube>(); if (cube2 != null && cube2.m_Column == cube.m_Column && cube2.transform.childCount > 0) { if (hurteffect == Card.HurtEffect.Normal) { atk = cube2.transform.GetChild(0).GetComponent <Card>().GetHurtPre(atk); } //if (hurteffect == Card.HurtEffect.Puncture) //{ // atk = cube.transform.GetChild(0).GetComponent<Card>().GetHurtByPuncture(atk); //} if (hurteffect == Card.HurtEffect.Penetrate) { cube2.transform.GetChild(0).GetComponent <Card>().GetHurtPre(atk); } } } if (hurteffect == Card.HurtEffect.Penetrate) { atk = 0; } } cube.transform.GetChild(0).GetComponent <Card>().GetHurtAPra(atk); } atk2 += atk; } return(atk2); }
int BattleCalculation(CardArea atkarea, CardArea defarea, int row, int column, int currentcolumn, int currrentrow) { int atk = 0; Card.HurtEffect hurteffect = Card.HurtEffect.Normal; for (int i = 0; i < row * column; i++) { BattleCube cube = atkarea.transform.GetChild(i).GetComponent <BattleCube>(); if (cube != null && cube.m_Column == currentcolumn && cube.m_Row == currrentrow && cube.transform.childCount > 0) { atk += cube.transform.GetChild(0).GetComponent <Card>().m_CurrentATK; if (cube.transform.GetChild(0).GetComponent <Card>().m_HurtEffect > hurteffect) { hurteffect = cube.transform.GetChild(0).GetComponent <Card>().m_HurtEffect; } } } if (hurteffect == Card.HurtEffect.Backstab) { for (int i = row * column - 1; i >= 0; i--) { BattleCube cube = defarea.transform.GetChild(i).GetComponent <BattleCube>(); if (cube != null && cube.m_Column == currentcolumn && cube.transform.childCount > 0) { atk = cube.transform.GetChild(0).GetComponent <Card>().GetHurt(atk); } } } else { for (int i = 0; i < row * column; i++) { BattleCube cube = defarea.transform.GetChild(i).GetComponent <BattleCube>(); if (cube != null && cube.m_Column == currentcolumn && cube.transform.childCount > 0) { if (hurteffect == Card.HurtEffect.Normal) { atk = cube.transform.GetChild(0).GetComponent <Card>().GetHurt(atk); } if (hurteffect == Card.HurtEffect.Puncture) { atk = cube.transform.GetChild(0).GetComponent <Card>().GetHurtByPuncture(atk); } if (hurteffect == Card.HurtEffect.Penetrate) { cube.transform.GetChild(0).GetComponent <Card>().GetHurt(atk); } } } if (hurteffect == Card.HurtEffect.Penetrate) { atk = 0; } } return(atk); }
public SceneCardBase getSceneCardByThisID(uint thisID, ref CardArea slot) { // 出牌列表 SceneCardBase cardBase; cardBase = m_outSceneCardList.getSceneCardByThisID(thisID); if (cardBase != null) { slot = CardArea.CARDCELLTYPE_COMMON; return(cardBase); } // 对手区域手牌是不检查的 if (EnDZPlayer.ePlayerSelf == m_playerSide) { cardBase = m_inSceneCardList.getSceneCardByThisID(thisID); if (cardBase != null) { slot = CardArea.CARDCELLTYPE_HAND; return(cardBase); } } // 技能区 if (m_sceneSkillCard != null) { if (m_sceneSkillCard.sceneCardItem.svrCard.qwThisID == thisID) { slot = CardArea.CARDCELLTYPE_SKILL; return(m_sceneSkillCard); } } // 装备区 if (m_sceneEquipCard != null) { if (m_sceneEquipCard.sceneCardItem.svrCard.qwThisID == thisID) { slot = CardArea.CARDCELLTYPE_EQUIP; return(m_sceneEquipCard); } } // 检查英雄 if (m_centerHero != null) { if (m_centerHero.sceneCardItem.svrCard.qwThisID == thisID) { slot = CardArea.CARDCELLTYPE_HERO; return(m_centerHero); } } return(null); }
void ChangeCardArea(CardArea areanew, Card card) { if (!areanew.m_CardAreaName.Contains("Hand")) { card.transform.SetParent(this.transform.Find("Recycle")); } else { card.transform.SetParent(areanew.transform); } }
void UpdateCardAreaListCount(CardArea area) { if (area.transform.Find("Text_Count")) { if (area.transform.Find("Text_Count").GetComponent <Text>()) { area.m_TextCount = area.transform.Find("Text_Count").GetComponent <Text>(); area.m_TextCount.text = area.m_AreaList.Count.ToString(); } } }
public void copyFrom(SceneCardItem rhv) { if (m_svrCard == null) { m_svrCard = new t_Card(); } m_svrCard.copyFrom(rhv.m_svrCard); m_cardTableItem = rhv.m_cardTableItem; m_playerSide = rhv.m_playerSide; m_cardArea = rhv.m_cardArea; }
public void copyFrom(SceneCardItem rhv) { if (m_svrCard == null) { m_svrCard = new t_Card(); } m_svrCard.copyFrom(rhv.m_svrCard); m_cardTableItem = rhv.m_cardTableItem; m_playerSide = rhv.m_playerSide; m_cardArea = rhv.m_cardArea; }
void DropCard(CardArea areadrop, CardArea areadeck, CardArea areahand) { bPushCard = false; for (int i = areahand.m_AreaList.Count - 1; i >= 0; i--) { ChangeCardArea(areadrop, areahand.m_AreaList[i]); areadrop.m_AreaList.Add(areahand.m_AreaList[i]); areahand.m_AreaList.Remove(areahand.m_AreaList[i]); } UpdateCardAreaListCount(areadrop); bDropCard = false; }
// 自己移动卡牌位置,需要更新能发起攻击状态特效 override public void changeSelfSceneCardArea(uint qwThisID, CardArea dwLocation, ushort yPos) { base.changeSelfSceneCardArea(qwThisID, dwLocation, yPos); if (Ctx.m_instance.m_dataPlayer.m_dzData.bSelfSide()) { //updateCanLaunchAttState(true); SceneCardBase srcCard = null; srcCard = m_outSceneCardList.getSceneCardByThisID(qwThisID); srcCard.effectControl.updateCanLaunchAttState(true); } }
// 自己移动卡牌位置,需要更新能发起攻击状态特效 override public void changeSelfSceneCardArea(uint qwThisID, CardArea dwLocation, ushort yPos) { base.changeSelfSceneCardArea(qwThisID, dwLocation, yPos); if (Ctx.m_instance.m_dataPlayer.m_dzData.bSelfSide()) { //updateCanLaunchAttState(true); SceneCardBase srcCard = null; srcCard = m_outSceneCardList.getSceneCardByThisID(qwThisID); srcCard.effectControl.updateCanLaunchAttState(true); } }
void InitBattleCube(CardArea area, int row = 1, int column = 1) { for (int i = 0; i < row * column; i++) { GameObject toInstantiate = (GameObject)Resources.Load("Prefabs/BattleCube"); BattleCube cube = Instantiate(toInstantiate, area.transform).GetComponent <BattleCube>(); cube.m_Row = i / column; cube.m_Column = i % column; if (area.m_CardAreaName.Contains("Player")) { cube.m_IsPlayer = true; } cube.battlemanager = this; } }
void InitCardAreaList(string name) { if (this.transform.Find(name)) { if (!this.transform.Find(name).GetComponent <CardArea>()) { this.transform.Find(name).gameObject.AddComponent <CardArea>(); } CardArea cardarea = this.transform.Find(name).GetComponent <CardArea>(); cardarea.m_CardAreaName = name; cardarea.battlemanager = this; UpdateCardAreaListCount(cardarea); cardarea.m_AreaList = new List <Card>(); CardAreaList.Add(cardarea); } }
// 攻击检查 protected bool attackCheck(uint thisId, ref SceneCardBase card) { // 更新动画 EnDZPlayer side = EnDZPlayer.ePlayerTotal; CardArea slot = CardArea.CARDCELLTYPE_NONE; card = m_sceneDZData.getSceneCardByThisID(thisId, ref side, ref slot); if (side == EnDZPlayer.ePlayerTotal || slot == CardArea.CARDCELLTYPE_NONE) { return(false); } return(true); }
void Shuffle(CardArea areaout, CardArea areain) { int countNum = areaout.m_AreaList.Count; while (countNum > areain.m_AreaList.Count) { int index = Random.Range(0, areaout.m_AreaList.Count); if (!areain.m_AreaList.Contains(areaout.m_AreaList[index])) { ChangeCardArea(areain, areaout.m_AreaList[index]); areain.m_AreaList.Add(areaout.m_AreaList[index]); areaout.m_AreaList.Remove(areaout.m_AreaList[index]); } } UpdateCardAreaListCount(areaout); UpdateCardAreaListCount(areain); }
// 移动卡牌,从一个位置到另外一个位置,CardArea.CARDCELLTYPE_COMMON 区域增加是从这个消息过来的,目前只处理移动到 CardArea.CARDCELLTYPE_COMMON 区域 virtual public void changeSelfSceneCardArea(uint qwThisID, CardArea dwLocation, ushort yPos) { SceneCardBase srcCard = null; // 移动手里的牌的位置 srcCard = m_inSceneCardList.getSceneCardByThisID(qwThisID); if (srcCard != null) { m_inSceneCardList.removeCard(srcCard); m_inSceneCardList.updateSceneCardPos(); srcCard.updateCardOutState(false); // 当前卡牌可能处于绿色高亮,因此去掉 srcCard.convOutModel(); m_sceneDZData.m_gameOpState.quitMoveOp(); // 退出移动操作 } else // 如果手牌没有,可能是战吼或者法术有攻击目标的卡牌,客户端已经将卡牌移动到出牌区域 { srcCard = m_outSceneCardList.getSceneCardByThisID(qwThisID); if (srcCard.canClientMove2OutArea()) { // 更新手牌索引 m_inSceneCardList.updateCardIndex(); m_sceneDZData.m_gameOpState.endAttackOp(); // 战吼攻击结束 } else { Ctx.m_instance.m_logSys.log("这个牌客户端已经移动到出牌区域"); } } // 更新移动后的牌的位置 if (CardArea.CARDCELLTYPE_EQUIP == dwLocation) // 如果出的是装备 { outEquipCard(srcCard); } else // 出的是随从 { if (srcCard != null && !srcCard.canClientMove2OutArea()) // 如果不是战吼或者法术有攻击目标的牌 { m_outSceneCardList.removeWhiteCard(); m_outSceneCardList.addCard(srcCard, yPos); m_outSceneCardList.updateSceneCardPos(); srcCard.effectControl.updateStateEffect(); m_sceneDZData.m_dragDropData.tryClearDragItem(srcCard); } } }
/// <summary> /// 退卡,清除指定区域数据 /// </summary> /// <param name="area">卡片区域类型:0/消费,1/停车场</param> /// <returns>返回发行结果tag格式:Success</returns> public string ClearData(int areatype) { string msg = this.isInited(); if (!string.IsNullOrEmpty(msg)) { return(msg); } CardArea area = CardArea.Eatery; switch (areatype) { case 0: area = CardArea.Eatery; break; case 1: area = CardArea.Park; break; } return(this.cmdCard.ClearData(area)); }
// 清除卡牌 void RemoveCard(CardFighter card, CardArea area) { if (area == CardArea.WaitArea && waitCard.Contains(card)) { waitCard[waitCard.IndexOf(card)] = null; } else if (area == CardArea.InitArea && initialCard.Contains(card)) { initialCard[initialCard.IndexOf(card)] = null; } else if (area == CardArea.FightArea && fightCard.Contains(card)) { fightCard[fightCard.IndexOf(card)] = null; } else if (area == CardArea.DeadArea && deadCard.Contains(card)) { deadCard[deadCard.IndexOf(card)] = null; } }
void UpdateCardAnimation(CardArea area) { if (area.m_CardAreaName.Contains("PlayerHand")) { foreach (Card card in area.m_AreaList) { if (card.m_CardType == Card.CardType.Character) { card.animationConfig.SetAnimState(UGUISpriteAnimation.AnimState.RunBack); } } } if (area.m_CardAreaName.Contains("EnemyHand")) { foreach (Card card in area.m_AreaList) { if (card.m_CardType == Card.CardType.Character) { card.animationConfig.SetAnimState(UGUISpriteAnimation.AnimState.RunToward); } } } if (area.m_CardAreaName.Contains("PlayerBattle")) { foreach (Card card in area.m_AreaList) { if (!card.m_IsBattleDead && card.m_CardType == Card.CardType.Character) { card.animationConfig.SetAnimState(UGUISpriteAnimation.AnimState.RunBack); } } } if (area.m_CardAreaName.Contains("EnemyBattle")) { foreach (Card card in area.m_AreaList) { if (!card.m_IsBattleDead && card.m_CardType == Card.CardType.Character) { card.animationConfig.SetAnimState(UGUISpriteAnimation.AnimState.RunToward); } } } }
public SceneCardBase getSceneCardByThisID(uint thisID, ref EnDZPlayer side, ref CardArea slot) { SceneCardBase cardBase; cardBase = m_sceneDZAreaArr[(int)EnDZPlayer.ePlayerSelf].getSceneCardByThisID(thisID, ref slot); if (cardBase != null) { side = EnDZPlayer.ePlayerSelf; return(cardBase); } cardBase = m_sceneDZAreaArr[(int)EnDZPlayer.ePlayerEnemy].getSceneCardByThisID(thisID, ref slot); if (cardBase != null) { side = EnDZPlayer.ePlayerEnemy; return(cardBase); } return(null); }
// 设置一些基本信息 override public void setBaseInfo(EnDZPlayer m_playerSide, CardArea area, CardType cardType) { ioControl.setCenterPos(m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)area].transform.localPosition); ioControl.setOutSplitZ(m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)area].transform.localPosition.z + 0.65f); // 设置初始位置为发牌位置 m_sceneCardBaseData.m_behaviorControl.moveToDestDirect(m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)CardArea.CARDCELLTYPE_NONE].transform.localPosition); // 移动到发牌位置 // 设置是否可以动画 if (m_playerSide == EnDZPlayer.ePlayerEnemy) // 如果是 enemy 的卡牌 { ioControl.disableDrag(); //if (area == CardArea.CARDCELLTYPE_SKILL || area == CardArea.CARDCELLTYPE_EQUIP) //{ // trackAniControl.destScale = SceneDZCV.SMALLFACT; //} } // 如果是放在技能或者装备的位置,是不允许拖放的 else if (area == CardArea.CARDCELLTYPE_SKILL || area == CardArea.CARDCELLTYPE_EQUIP) { //trackAniControl.destScale = SceneDZCV.SMALLFACT; ioControl.disableDrag(); } // 更新边框 if (EnDZPlayer.ePlayerSelf == m_playerSide) { if (CardArea.CARDCELLTYPE_HAND == area) { if (Ctx.m_instance.m_dataPlayer.m_dzData.bSelfSide()) { updateCardOutState(true); } else { updateCardOutState(false); } } } }
// 设置一些基本信息 override public void setBaseInfo(EnDZPlayer m_playerSide, CardArea area, CardType cardType) { ioControl.setCenterPos(m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)area].transform.localPosition); ioControl.setOutSplitZ(m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)area].transform.localPosition.z + 0.65f); // 设置初始位置为发牌位置 m_sceneCardBaseData.m_behaviorControl.moveToDestDirect(m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)CardArea.CARDCELLTYPE_NONE].transform.localPosition); // 移动到发牌位置 // 设置是否可以动画 if (m_playerSide == EnDZPlayer.ePlayerEnemy) // 如果是 enemy 的卡牌 { ioControl.disableDrag(); //if (area == CardArea.CARDCELLTYPE_SKILL || area == CardArea.CARDCELLTYPE_EQUIP) //{ // trackAniControl.destScale = SceneDZCV.SMALLFACT; //} } // 如果是放在技能或者装备的位置,是不允许拖放的 else if (area == CardArea.CARDCELLTYPE_SKILL || area == CardArea.CARDCELLTYPE_EQUIP) { //trackAniControl.destScale = SceneDZCV.SMALLFACT; ioControl.disableDrag(); } // 更新边框 if (EnDZPlayer.ePlayerSelf == m_playerSide) { if (CardArea.CARDCELLTYPE_HAND == area) { if (Ctx.m_instance.m_dataPlayer.m_dzData.bSelfSide()) { updateCardOutState(true); } else { updateCardOutState(false); } } } }
void BattleCalculationDead(CardArea area, int currentcolumn) { for (int i = 0; i < 3; i++) { BattleCube cube = area.transform.GetChild(currentcolumn + i * 3).GetComponent <BattleCube>(); if (cube.transform.childCount > 0) { if (cube.transform.GetChild(0).GetComponent <Card>().m_IsBattleDead) { //if (cube.transform.GetChild(0).GetComponent<Card>().m_DeadAnimTime < UGUISpriteAnimation.FRAMEBASE / UGUISpriteAnimation.FPS) //{ // cube.transform.GetChild(0).GetComponent<Card>().m_DeadAnimTime += Time.deltaTime; //} //else //{ area.m_AreaList.Remove(cube.transform.GetChild(0).gameObject.GetComponent <Card>()); Destroy(cube.transform.GetChild(0).gameObject); //} } } } }
override public void setBaseInfo(EnDZPlayer m_playerSide, CardArea area, CardType cardType) { UtilApi.setPos(this.transform(), m_sceneDZData.m_placeHolderGo.m_cardCenterGOArr[(int)m_playerSide, (int)area].transform.localPosition); }
/// <summary> /// ���ָ���������� /// </summary> /// <param name="area">��Ƭ��������</param> /// <returns>���ط��н��tag��ʽ��Success</returns> public string ClearData(CardArea area) { if (string.IsNullOrEmpty(this.cardid)) return "@{״̬}=������ʶ��Ŀ�,@Success=false"; if (!this.isCardIC) return "@{״̬}=ID��ģʽ����д��,@Success=false"; int st = this.stateChecking; this.reChecking(0); string[] valipwd = { "��֤����д����", "��֤����Ĭ��д����" }; if (CardArea.Park == area) valipwd = new string[] { "��֤��д����", "��֤��Ĭ��д����" }; string msg = ""; //string msg = this.validatePwd(valipwd[0], valipwd[1]); string tagdata = "@�豸��ַ=" + this.addrst; //if ("true" == basefun.valtag(msg, "Success")) int blockindex = CardArea.Eatery==area ? 20 : 28; for (int i = 0; i < 3;i++ ) { tagdata = basefun.setvaltag(tagdata, "{���ַ}", Convert.ToString(blockindex++)); this.setCommand("��������", "д����", tagdata); msg = this.execReliable(); } this.reChecking(1); return msg; }
/// <summary> /// 清除指定区域数据 /// </summary> /// <param name="area">卡片区域类型</param> /// <returns>返回发行结果tag格式:Success</returns> public string ClearData(CardArea area) { if (string.IsNullOrEmpty(this.cardid)) return "@{状态}=无卡或不能识别的卡,@Success=false"; if (!this.isCardIC) return "@{状态}=ID卡模式不能写入,@Success=false"; int st = this.stateChecking; this.reChecking(0); string[] valipwd = { "认证消费写密码", "认证消费默认写密码" }; if (CardArea.Park == area) valipwd = new string[] { "认证大场写密码", "认证大场默认写密码" }; string msg = ""; //string msg = this.validatePwd(valipwd[0], valipwd[1]); string tagdata = "@设备地址=" + this.addrst; //if ("true" == basefun.valtag(msg, "Success")) int blockindex = CardArea.Eatery == area ? 20 : 28; for (int i = 0; i < 3; i++) { tagdata = basefun.setvaltag(tagdata, "{块地址}", Convert.ToString(blockindex++)); this.setCommand("卡务中心", "写数据", tagdata); msg = this.execReliable(); } this.reChecking(1); return msg; }
public SceneCardBase getSceneCardByThisID(uint thisID, ref CardArea slot) { // 出牌列表 SceneCardBase cardBase; cardBase = m_outSceneCardList.getSceneCardByThisID(thisID); if (cardBase != null) { slot = CardArea.CARDCELLTYPE_COMMON; return cardBase; } // 对手区域手牌是不检查的 if (EnDZPlayer.ePlayerSelf == m_playerSide) { cardBase = m_inSceneCardList.getSceneCardByThisID(thisID); if (cardBase != null) { slot = CardArea.CARDCELLTYPE_HAND; return cardBase; } } // 技能区 if (m_sceneSkillCard != null) { if (m_sceneSkillCard.sceneCardItem.svrCard.qwThisID == thisID) { slot = CardArea.CARDCELLTYPE_SKILL; return m_sceneSkillCard; } } // 装备区 if (m_sceneEquipCard != null) { if (m_sceneEquipCard.sceneCardItem.svrCard.qwThisID == thisID) { slot = CardArea.CARDCELLTYPE_EQUIP; return m_sceneEquipCard; } } // 检查英雄 if (m_centerHero != null) { if (m_centerHero.sceneCardItem.svrCard.qwThisID == thisID) { slot = CardArea.CARDCELLTYPE_HERO; return m_centerHero; } } return null; }
// 给自己添加一张手牌 public void addOneSelfHandCard(CardArea area) { }
public SceneCardBase getSceneCardByThisID(uint thisID, ref EnDZPlayer side, ref CardArea slot) { SceneCardBase cardBase; cardBase = m_sceneDZAreaArr[(int)EnDZPlayer.ePlayerSelf].getSceneCardByThisID(thisID, ref slot); if(cardBase != null) { side = EnDZPlayer.ePlayerSelf; return cardBase; } cardBase = m_sceneDZAreaArr[(int)EnDZPlayer.ePlayerEnemy].getSceneCardByThisID(thisID, ref slot); if (cardBase != null) { side = EnDZPlayer.ePlayerEnemy; return cardBase; } return null; }
// 移动卡牌,从一个位置到另外一个位置,CardArea.CARDCELLTYPE_COMMON 区域增加是从这个消息过来的,目前只处理移动到 CardArea.CARDCELLTYPE_COMMON 区域 virtual public void changeSelfSceneCardArea(uint qwThisID, CardArea dwLocation, ushort yPos) { SceneCardBase srcCard = null; // 移动手里的牌的位置 srcCard = m_inSceneCardList.getSceneCardByThisID(qwThisID); if (srcCard != null) { m_inSceneCardList.removeCard(srcCard); m_inSceneCardList.updateSceneCardPos(); srcCard.updateCardOutState(false); // 当前卡牌可能处于绿色高亮,因此去掉 srcCard.convOutModel(); m_sceneDZData.m_gameOpState.quitMoveOp(); // 退出移动操作 } else // 如果手牌没有,可能是战吼或者法术有攻击目标的卡牌,客户端已经将卡牌移动到出牌区域 { srcCard = m_outSceneCardList.getSceneCardByThisID(qwThisID); if (srcCard.canClientMove2OutArea()) { // 更新手牌索引 m_inSceneCardList.updateCardIndex(); m_sceneDZData.m_gameOpState.endAttackOp(); // 战吼攻击结束 } else { Ctx.m_instance.m_logSys.log("这个牌客户端已经移动到出牌区域"); } } // 更新移动后的牌的位置 if (CardArea.CARDCELLTYPE_EQUIP == dwLocation) // 如果出的是装备 { outEquipCard(srcCard); } else // 出的是随从 { if (srcCard != null && !srcCard.canClientMove2OutArea()) // 如果不是战吼或者法术有攻击目标的牌 { m_outSceneCardList.removeWhiteCard(); m_outSceneCardList.addCard(srcCard, yPos); m_outSceneCardList.updateSceneCardPos(); srcCard.effectControl.updateStateEffect(); m_sceneDZData.m_dragDropData.tryClearDragItem(srcCard); } } }
public SceneCardBase createCardById(uint objid, EnDZPlayer m_playerSide, CardArea area, CardType cardType, SceneDZData sceneDZData) { SceneCardBase ret = null; if (SceneDZCV.WHITE_CARDID == objid) // 白色占位卡牌 { ret = new WhiteCard(sceneDZData); } else if (SceneDZCV.BLACK_CARD_ID == objid) // 背面牌 { ret = new BlackCard(sceneDZData); } else if (CardType.CARDTYPE_ATTEND == cardType) { if (EnDZPlayer.ePlayerSelf == m_playerSide) { ret = new SelfAttendCard(sceneDZData); } else { ret = new EnemyAttendCard(sceneDZData); } } else if (CardType.CARDTYPE_SECRET == cardType) { ret = new SecretCard(sceneDZData); } else if (CardType.CARDTYPE_MAGIC == cardType) { if (EnDZPlayer.ePlayerSelf == m_playerSide) { ret = new SelfMagicCard(sceneDZData); } else { ret = new EnemyMagicCard(sceneDZData); } } else if (CardType.CARDTYPE_EQUIP == cardType) { if (EnDZPlayer.ePlayerSelf == m_playerSide) { ret = new SelfEquipCard(sceneDZData); } else { ret = new EnemyEquipCard(sceneDZData); } } else if (CardType.CARDTYPE_HERO == cardType) { if (EnDZPlayer.ePlayerSelf == m_playerSide) { ret = new SelfHeroCard(sceneDZData); } else { ret = new EnemyHeroCard(sceneDZData); } } else if (CardType.CARDTYPE_SKILL == cardType) { if (EnDZPlayer.ePlayerSelf == m_playerSide) { ret = new SelfSkillCard(sceneDZData); } else { ret = new EnemySkillCard(sceneDZData); } } //else if (CardType.CARDTYPE_LUCK_COINS == cardType) //{ // return new LuckCoinCard(sceneDZData); //} ret.setIdAndPnt(objid, sceneDZData.m_placeHolderGo.m_centerGO); ret.init(); ret.setBaseInfo(m_playerSide, area, cardType); this.addObject(ret); if (SceneDZCV.WHITE_CARDID != objid && SceneDZCV.BLACK_CARD_ID != objid) // 这两个没有 AI { Ctx.m_instance.m_aiSystem.aiControllerMgr.addController(ret.aiController); // 添加到控制器中 } return ret; }
// 这个主要方便可以从卡牌 ID 直接创建卡牌,因为可能有的时候直接动卡牌 ID 创建卡牌,服务器的数据还没有 virtual public void setBaseInfo(EnDZPlayer m_playerSide, CardArea area, CardType cardType) { }
virtual protected void updateSceneCardPosInternal(CardArea area, bool bUpdateIdx = true) { int idx = 0; SceneCardBase cardItem = null; WayPtItem pt = null; PosType posType = PosType.eHandDown; if (CardArea.CARDCELLTYPE_HAND == area) { posType = PosType.eHandDown; } else if (CardArea.CARDCELLTYPE_COMMON == area) { posType = PosType.eOutDown; } getCardPos(); while (idx < m_sceneCardList.Count()) { cardItem = m_sceneCardList[idx]; if (bUpdateIdx) { cardItem.curIndex = (ushort)idx; } pt = cardItem.trackAniControl.wayPtList.getAndAddPosInfo(posType); pt.pos = m_posList[idx]; cardItem.trackAniControl.moveToDestPos(posType); ++idx; } }