public void two_card(string cardname) //发动advance卡 { DataManager.Card cardnum0 = Getcard(cardname); //将卡牌序号转化为卡牌类 DataManager.Card cardnum = strengthen(cardnum0); //强化 self.GetComponent <effect_self>().AddEnergyValue(-cardnum0.energycost); int self_state = self.GetComponent <effect_self>().state; int enemy_state = enemy.GetComponent <effect_enemy>().state; int pre_selfblood = self.GetComponent <effect_self>().blood; int pre_enemyblood = enemy.GetComponent <effect_enemy>().blood; if (cardnum.ID == "AP007") { enemy.GetComponent <effect_enemy>().TakeDamage(self.GetComponent <effect_self>().Distance() * 2); return; } if (cardnum.ID == "AP008") { self.GetComponent <effect_self>().AddEnergyValue(cardnum.energygain); self.GetComponent <playerControl>().AddNewCard(2); return; } if (cardnum.ID == "AP011") { self.GetComponent <effect_self>().move(-1); self.GetComponent <playerControl>().AddNewCard(3); return; } if (cardnum.target == "enemy") //卡牌发动对象是敌方 { enemy.GetComponent <effect_enemy>().AddshieldValue(cardnum.sheildbreak); //对敌方的盾牌进行打击 enemy.GetComponent <effect_enemy>().AddselfBlood(cardnum.healthrecovery); //对敌方的血量进行打击 enemy.GetComponent <effect_enemy>().AddshieldValue(cardnum.sheildbreak); //一般打击(先盾牌判定,盾牌足够扣除盾牌,盾牌不够后扣除血量) enemy.GetComponent <effect_enemy>().move(cardnum.distance_change); //移动 enemy.GetComponent <effect_enemy>().state = cardnum.state; //赋予状态 } else//卡牌发动对象是己方 { self.GetComponent <effect_self>().AddshieldValue(cardnum.sheildbreak); self.GetComponent <effect_self>().AddselfBlood(cardnum.healthrecovery); self.GetComponent <effect_self>().TakeDamage(cardnum.damage); self.GetComponent <effect_self>().move(cardnum.distance_change); self.GetComponent <effect_self>().AddEnergyValue(cardnum.energygain); self.GetComponent <effect_self>().state = cardnum.state;//赋予状态 } int now_selfblood = self.GetComponent <effect_self>().blood; int now_enemyblood = enemy.GetComponent <effect_enemy>().blood; int change_enegry = ((now_enemyblood - pre_enemyblood) > 0 ? (now_enemyblood - pre_enemyblood) : (pre_enemyblood - now_enemyblood)) + ((now_selfblood - pre_selfblood) > 0 ? (now_selfblood - pre_selfblood) : (pre_selfblood - now_selfblood)); self.GetComponent <effect_self>().AddEnergyValue(change_enegry); }
public bool can_strengthen(string example) //判定强化卡 { DataManager.Card cardnum = Getcard(example); //将卡牌序号转化为卡牌类 int strength = self.GetComponent <effect_self>().energy; if (cardnum.level == "advance" && cardnum.energycost <= strength) { if (judge(strengthen(cardnum).card_pic_name)) { return(true); } } return(false); }
public DataManager.Card strengthen(DataManager.Card example)//转换成强化卡 { for (int i = 0; i < listInfo2.Count; i++) { if (example.ID == listInfo2[i].ID) { return(listInfo2[i]); } } /* for (int i = 0; i < listInfo1.Count; i++) * { * if (example.ID == listInfo1[i].ID) return listInfo1[i]; * }*/ return(null); }
public bool judge(string cardname) //判定base卡 { DataManager.Card cardnum = Getcard(cardname); //将字符串转化为卡牌对象 int distance = self.GetComponent <effect_self>().Distance(); //获得当前的实际距离 int selfHP = self.GetComponent <effect_self>().blood; //己方血量 int selfshield = self.GetComponent <effect_self>().shield_Value; //己方盾牌 int enemyHP = enemy.GetComponent <effect_enemy>().blood; //敌方血量 int enemyshield = enemy.GetComponent <effect_enemy>().shield_Value; //敌方盾牌 //判断是否可出 //特例AP013 if (cardname == "AP013") { return(distance <= 4 && distance >= 2); } //其余 bool distance_judge = true; bool HP_judge = true; bool shield_judge = true; //距离判断 //Debug.Log(cardname ); if (cardnum.distance_low > distance || cardnum.distance_high < distance) { distance_judge = false; } if (cardnum.distance_change > distance) { distance_judge = false; } //血量和盾牌判断 if (cardnum.target == "enemy") { if (enemyHP == 10 && cardnum.healthrecovery > 0) { HP_judge = false; } if (enemyshield == 7 && cardnum.sheildbreak > 0) { shield_judge = false; } } else { if (selfHP == 10 && cardnum.healthrecovery > 0) { HP_judge = false; } if (selfshield == 7 && cardnum.sheildbreak > 0) { shield_judge = false; } } return((distance_judge && HP_judge) && shield_judge);//3个判定都为真才返回真 }
public void one_card(string cardname) //发动base卡 { DataManager.Card cardnum = Getcard(cardname); //将卡牌序号转化为卡牌类 int self_state = self.GetComponent <effect_self>().state; int enemy_state = enemy.GetComponent <effect_enemy>().state; if (cardname == "AP013") { int distance = self.GetComponent <effect_self>().Distance(); if (distance == 2) { enemy.GetComponent <effect_enemy>().AddshieldValue(-2); enemy.GetComponent <effect_enemy>().TakeDamage(1); enemy.GetComponent <effect_enemy>().AddshieldValue(-1); enemy.GetComponent <effect_enemy>().TakeDamage(2); } if (distance == 3) { enemy.GetComponent <effect_enemy>().AddshieldValue(-2); enemy.GetComponent <effect_enemy>().TakeDamage(1); enemy.GetComponent <effect_enemy>().AddshieldValue(-2); enemy.GetComponent <effect_enemy>().TakeDamage(2); enemy.GetComponent <effect_enemy>().AddshieldValue(-1); enemy.GetComponent <effect_enemy>().TakeDamage(2); } if (distance == 4) { enemy.GetComponent <effect_enemy>().AddshieldValue(-2); enemy.GetComponent <effect_enemy>().TakeDamage(2); enemy.GetComponent <effect_enemy>().AddshieldValue(-1); enemy.GetComponent <effect_enemy>().TakeDamage(2); } self.GetComponent <effect_self>().AddHit(cardnum.hit); return; } if (cardnum.ID == "AP004" || cardnum.ID == "AP005") { if (cardnum.ID == "AP004") { enemy.GetComponent <effect_enemy>().AddshieldValue(-4); } if (cardnum.ID == "AP005") { enemy.GetComponent <effect_enemy>().TakeDamage(2); self.GetComponent <effect_self>().move(1); } self.GetComponent <playerControl>().AddNewCard("AP005"); return; } if (cardnum.ID == "AP010") { enemy.GetComponent <effect_enemy>().TakeDamage(self.GetComponent <effect_self>().hit); clearhit(); return; } if (cardnum.ID == "AP007") { enemy.GetComponent <effect_enemy>().TakeDamage(self.GetComponent <effect_self>().Distance()); return; } if (cardnum.ID == "AP008") { self.GetComponent <effect_self>().AddEnergyValue(cardnum.energygain); self.GetComponent <playerControl>().AddNewCard(1); return; } if (cardnum.ID == "AP011") { self.GetComponent <effect_self>().move(-2); self.GetComponent <playerControl>().AddNewCard(1); return; } int pre_selfblood = self.GetComponent <effect_self>().blood; int pre_enemyblood = enemy.GetComponent <effect_enemy>().blood; if (cardnum.target == "enemy") //卡牌发动对象是敌方 { enemy.GetComponent <effect_enemy>().AddshieldValue(cardnum.sheildbreak); //对敌方的盾牌进行打击 enemy.GetComponent <effect_enemy>().AddselfBlood(cardnum.healthrecovery); //对敌方的血量进行打击 enemy.GetComponent <effect_enemy>().AddshieldValue(cardnum.sheildbreak); //一般打击(先盾牌判定,盾牌足够扣除盾牌,盾牌不够后扣除血量) enemy.GetComponent <effect_enemy>().move(cardnum.distance_change); //移动 enemy.GetComponent <effect_enemy>().state = cardnum.state; //赋予状态 } else//卡牌发动对象是己方 { self.GetComponent <effect_self>().AddshieldValue(cardnum.sheildbreak); self.GetComponent <effect_self>().AddselfBlood(cardnum.healthrecovery); self.GetComponent <effect_self>().TakeDamage(cardnum.damage); self.GetComponent <effect_self>().move(cardnum.distance_change); self.GetComponent <effect_self>().AddEnergyValue(cardnum.energygain); self.GetComponent <effect_self>().state = cardnum.state;//赋予状态 } int now_selfblood = self.GetComponent <effect_self>().blood; int now_enemyblood = enemy.GetComponent <effect_enemy>().blood; int change_enegry = ((now_enemyblood - pre_enemyblood) > 0 ? (now_enemyblood - pre_enemyblood) : (pre_enemyblood - now_enemyblood)) + ((now_selfblood - pre_selfblood) > 0 ? (now_selfblood - pre_selfblood) : (pre_selfblood - now_selfblood)); self.GetComponent <effect_self>().AddEnergyValue(change_enegry); }