Пример #1
0
    IEnumerator EnemyAttacks()
    {
        yield return(new WaitForSeconds(1f));

        if (mobAttackturn <= 2)
        {
            if (Sommoned[mobAttackturn] && !State[mobAttackturn].isAttacked)
            {
                if (State[mobAttackturn].EnemyType != 5)
                {
                    for (int i = 0; i >= 0; i++)
                    {
                        int a = Random.Range(0, 2);
                        if (sm.Sommoned[a] && sm.State[a].MobRHP > 0)
                        {
                            sm.Arrows.SetActive(true);
                            sm.Arrows.GetComponent <RectTransform>().localPosition = sm.SommonMonster[a].GetComponent <RectTransform>().localPosition;
                            ma.SpriteChanging(mobAttackturn + 4, State[0].EnemyCode, 2);
                            int dmg = MobDamaging(a, mobAttackturn, State[mobAttackturn].EnemyType);
                            yield return(new WaitForSeconds(0.75f));

                            ma.AttackAfter(mobAttackturn + 4);
                            sm.Arrows.SetActive(false);
                            if (sm.State[a].MobArmor >= dmg)
                            {
                                sm.State[a].MobArmor -= dmg;
                                GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                                tx.transform.parent     = GameObject.Find("Canvas").transform;
                                tx.transform.localScale = new Vector3(1f, 1f, 1f);
                                tx.GetComponent <RectTransform>().localPosition = sm.SommonMonster[a].GetComponent <RectTransform>().localPosition;
                                tx.GetComponent <DmgText>().Texting(1, dmg);
                            }
                            else
                            {
                                int dmg2 = dmg - sm.State[a].MobArmor;
                                sm.State[a].MobArmor = 0;
                                sm.State[a].MobRHP  -= dmg2;
                                GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                                tx.transform.parent     = GameObject.Find("Canvas").transform;
                                tx.transform.localScale = new Vector3(1f, 1f, 1f);
                                tx.GetComponent <RectTransform>().localPosition = sm.SommonMonster[a].GetComponent <RectTransform>().localPosition;
                                tx.GetComponent <DmgText>().Texting(1, dmg);
                            }
                            State[mobAttackturn].isAttacked = true;
                            break;
                        }
                        else if (!sm.Sommoned[0] && !sm.Sommoned[1] && !sm.Sommoned[2])
                        {
                            break;
                        }
                    }
                }
                else
                {
                    int   a = 0;
                    float b = 1f;
                    for (int i = 0; i < 3; i++)
                    {
                        if (Sommoned[i])
                        {
                            float x = State[i].EnemyRHp;
                            float y = State[i].EnemyMaxHP;
                            if (b > x / y)
                            {
                                a = i;
                                b = x / y;
                            }
                            Debug.Log(x + " - " + y);
                        }
                    }
                    sm.Arrows.SetActive(true);
                    sm.Arrows.GetComponent <RectTransform>().localPosition = SommonMonster[a].GetComponent <RectTransform>().localPosition;
                    ma.SpriteChanging(mobAttackturn + 4, State[mobAttackturn].EnemyCode, 2);
                    int dmg = MobDamaging(a, mobAttackturn, State[mobAttackturn].EnemyType);
                    yield return(new WaitForSeconds(0.75f));

                    ma.AttackAfter(mobAttackturn + 4);
                    sm.Arrows.SetActive(false);
                    State[a].EnemyRHp += dmg;
                    if (State[a].EnemyRHp > State[a].EnemyMaxHP)
                    {
                        State[a].EnemyRHp = State[a].EnemyMaxHP;
                    }
                    GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                    tx.transform.parent     = GameObject.Find("Canvas").transform;
                    tx.transform.localScale = new Vector3(1f, 1f, 1f);
                    tx.GetComponent <RectTransform>().localPosition = SommonMonster[a].GetComponent <RectTransform>().localPosition;
                    tx.GetComponent <DmgText>().Texting(2, dmg);
                    State[mobAttackturn].isAttacked = true;
                }
            }
            mobAttackturn++;
            StartCoroutine("EnemyAttacks");
        }
        else
        {
            yield return(new WaitForSeconds(0.5f));

            batsys.TurnStart();
        }
    }
Пример #2
0
    public void MobClick(GameObject go)
    {
        if (batsys.isCard == false)
        {
            bool ClickAlly  = false;
            bool ClickEnem  = false;
            bool ClickABoss = false;
            bool ClickEBoss = false;
            if (go.name == "Mob1")
            {
                if (Seleting)
                {
                    SecondNum = 0;
                }
                else
                {
                    FirstNum = 0;
                }
                ClickAlly = true;
            }
            else if (go.name == "Mob2")
            {
                if (Seleting)
                {
                    SecondNum = 1;
                }
                else
                {
                    FirstNum = 1;
                }
                ClickAlly = true;
            }
            else if (go.name == "Mob3")
            {
                if (Seleting)
                {
                    SecondNum = 2;
                }
                else
                {
                    FirstNum = 2;
                }
                ClickAlly = true;
            }
            else if (go.name == "MobBoss")
            {
                if (Seleting)
                {
                    SecondNum = 3;
                }
                else
                {
                    FirstNum = 3;
                }
                ClickABoss = true;
            }
            else if (go.name == "Enemy1")
            {
                if (Seleting)
                {
                    SecondNum = 4;
                }
                else
                {
                    FirstNum = 4;
                }
                ClickEnem = true;
            }
            else if (go.name == "Enemy2")
            {
                if (Seleting)
                {
                    SecondNum = 5;
                }
                else
                {
                    FirstNum = 5;
                }
                ClickEnem = true;
            }
            else if (go.name == "Enemy3")
            {
                if (Seleting)
                {
                    SecondNum = 6;
                }
                else
                {
                    FirstNum = 6;
                }
                ClickEnem = true;
            }
            else if (go.name == "EnemyBoss")
            {
                if (Seleting)
                {
                    SecondNum = 7;
                }
                else
                {
                    FirstNum = 7;
                }
                ClickEBoss = true;
            }

            if (!Seleting && ClickAlly)
            {
                if (!State[FirstNum].isAttacked)
                {
                    ClickCount++;
                    time = 0f;
                    ons  = false;
                    isOn = false;
                    Image img = go.GetComponent <Image>();
                    img.color = new Color(1f, 1f, 1f, 1f);
                    LookCard.SetActive(false);
                    Seleting = true;
                    int power = State[FirstNum].MobRPower;
                    DmgPower = power;
                    typed    = State[FirstNum].MobPowerType;
                    ma.SpriteChanging(FirstNum, State[FirstNum].MobCode, 2);
                    for (int i = 0; i < 10; i++)
                    {
                        if (MobBuff[i].BuffCode1 == "100" && FirstNum == 0)
                        {
                            power = State[FirstNum].MobRPower + MobBuff[i].BuffPower1;
                            break;
                        }
                        else if (MobBuff[i].BuffCode2 == "100" && FirstNum == 1)
                        {
                            power = State[FirstNum].MobRPower + MobBuff[i].BuffPower2;
                            break;
                        }
                        else if (MobBuff[i].BuffCode3 == "100" && FirstNum == 2)
                        {
                            power = State[FirstNum].MobRPower + MobBuff[i].BuffPower3;
                            break;
                        }
                    }
                    if (power < 0)
                    {
                        power = 0;
                    }
                    batsys.Select_Attack(State[FirstNum].MobPowerType, power);
                    if (State[FirstNum].MobPowerType == 5)
                    {
                        AllySelect     = true;
                        AllyBossSelect = true;
                        EnemSelect     = true;
                        EnemBossSelect = true;
                    }
                    else
                    {
                        AllySelect     = false;
                        AllyBossSelect = false;
                        EnemSelect     = true;
                        EnemBossSelect = true;
                    }
                    MobDamaging(int.Parse(go.name));
                }
                else
                {
                    batsys.Announcing("이 탐험대원은 아직 공격할 수 없습니다!");
                }
            }
            else if (Seleting && ClickEnem)
            {
                SelectEnd();
                if (SecondNum >= 4 && SecondNum <= 6) //대상이 '무리' 일 경우
                {
                    if (State[FirstNum].MobPowerType == 5)
                    {
                        ab.State[SecondNum - 4].EnemyRHp += DmgPower;
                        if (ab.State[SecondNum - 4].EnemyRHp > ab.State[SecondNum - 4].EnemyMaxHP)
                        {
                            ab.State[SecondNum - 4].EnemyRHp = ab.State[SecondNum - 4].EnemyMaxHP;
                        }
                        GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                        tx.transform.parent     = GameObject.Find("Canvas").transform;
                        tx.transform.localScale = new Vector3(1f, 1f, 1f);
                        tx.GetComponent <RectTransform>().localPosition = go.GetComponent <RectTransform>().localPosition;
                        tx.GetComponent <DmgText>().Texting(2, DmgPower);
                    }
                    else
                    {
                        if (ab.State[SecondNum - 4].EnemyArmor >= DmgPower)
                        {
                            ab.State[SecondNum - 4].EnemyArmor -= DmgPower;
                            GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                            tx.transform.parent     = GameObject.Find("Canvas").transform;
                            tx.transform.localScale = new Vector3(1f, 1f, 1f);
                            tx.GetComponent <RectTransform>().localPosition = go.GetComponent <RectTransform>().localPosition;
                            tx.GetComponent <DmgText>().Texting(1, DmgPower);
                        }
                        else
                        {
                            int dmg = DmgPower - ab.State[SecondNum - 4].EnemyArmor;
                            ab.State[SecondNum - 4].EnemyArmor = 0;
                            ab.State[SecondNum - 4].EnemyRHp  -= dmg;
                            GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                            tx.transform.parent     = GameObject.Find("Canvas").transform;
                            tx.transform.localScale = new Vector3(1f, 1f, 1f);
                            tx.GetComponent <RectTransform>().localPosition = go.GetComponent <RectTransform>().localPosition;
                            tx.GetComponent <DmgText>().Texting(1, DmgPower);
                        }
                    }
                }
                State[FirstNum].isAttacked = true;
            }
            else if (Seleting && ClickAlly)
            {
                SelectEnd();
                if (SecondNum <= 2)                        //대상이 '탐험대원' 일 경우
                {
                    if (State[FirstNum].MobPowerType == 5) //회복
                    {
                        State[SecondNum].MobRHP += DmgPower;
                        if (State[SecondNum].MobRHP > State[SecondNum].MobMaxHP)
                        {
                            State[SecondNum].MobRHP = State[SecondNum].MobMaxHP;
                        }
                        GameObject tx = Instantiate(Resources.Load <GameObject>("Prefabs/Effects/DmgText"), transform) as GameObject;
                        tx.transform.parent     = GameObject.Find("Canvas").transform;
                        tx.transform.localScale = new Vector3(1f, 1f, 1f);
                        tx.GetComponent <RectTransform>().localPosition = go.GetComponent <RectTransform>().localPosition;
                        tx.GetComponent <DmgText>().Texting(2, DmgPower);
                        State[FirstNum].isAttacked = true;
                    }
                    else //딜링
                    {
                        batsys.Announcing("아군을 공격할 수는 없습니다!");
                    }
                }
            }
        }
    }