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(); } }
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("아군을 공격할 수는 없습니다!"); } } } } }