Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    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个判定都为真才返回真
    }
Esempio n. 5
0
    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);
    }