public void OnPointerEnter(PointerEventData eventData) { SpriteRenderer rend = gameObject.GetComponent <SpriteRenderer>(); scr_unit data = sav_parent.GetComponent <scr_unit>(); if (!data.isEnemy) { string checkEmerge = (string)DB_card.getIdentity(data.id)[5]; if (data.canAttack()) { rend.sprite = attack; rend.color = new Color(1f, 1f, 1f, 1f); } else if (checkEmerge.Contains("[능력") && emerge_flag) { if (data.canSpell()) { rend.sprite = magic; rend.color = new Color(1f, 1f, 1f, 1f); } } } onMouse = true; }
public void Cmdextract(GameObject unit) { scr_unit data = unit.GetComponent <scr_unit>(); terial -= 2; data.extracted = true; data.CmdgetSelfStatus(1, 1); if (data.description.Contains("[개방")) { switch (data.id) { case "Vera": data.CmdapplyDirectDamage(getOtherPlayer(gameObject.GetComponent <scr_playerController>().isHost), 3); break; case "raysen_samurai": getOtherPlayer(gameObject.GetComponent <scr_playerController>().isHost).GetComponent <scr_playerIdentity>().terial += 2; break; default: break; } } }
public void requestParticle(int particle, GameObject target, int value) { scr_unit data = sav_parent.GetComponent <scr_unit>(); data.request_particle = particle; data.request_particle_target = target; data.request_particle_value = value; }
public void OnPointerClick(PointerEventData eventData) { if (ins == null) { scr_unit data = transform.parent.GetComponent <scr_unit>(); float pos_y = transform.parent.GetComponent <Transform>().localPosition.y; ins = Instantiate(card); ins.transform.SetParent(GameObject.Find("Canvas").transform); ins.transform.localPosition = (pos_y > 0)? new Vector3(-195f, -215f, -20) : new Vector3(-195f, 215f, -20); ins.transform.localScale = new Vector3(0.8f, 0.8f, 1f); ins.GetComponent <scr_card>().setIdentity(data.terial, data.attack, data.health, data.rank, data.cardname, data.description, data.card_tag, data.pic_url, data.id); } }
public void CmdGainStatusExtended(bool hosts, int gain_terial, int gain_health, int gain_maxHealth) { if (GetComponent <scr_playerController>().isHost == hosts) { int sav_health = health; GameObject spec_unit = null; max_health += gain_maxHealth; terial += gain_terial; if (terial > 7) { terial = 7; } health += gain_health; if (health > max_health) { health = max_health; } if (health - sav_health > 0) { foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == hosts && curData.id == "Angel_resia") { spec_unit = cur; break; } } if (spec_unit != null) { foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts != hosts) { spec_unit.GetComponent <scr_unit>().CmdDamage(cur, health - sav_health); } } spec_unit.GetComponent <scr_unit>().CmdDamage(getOtherPlayer(gameObject.GetComponent <scr_playerController>().isHost), health - sav_health); } } } }
public void OnEndDrag(PointerEventData eventData) { scr_playerIdentity data = sav_parent.GetComponent <scr_playerIdentity>(); foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = cur.GetComponent <scr_unit>(); gameObject.transform.SetParent(GameObject.Find("Canvas").transform); if (Vector3.Distance(gameObject.transform.localPosition, cur.transform.localPosition) <= 60f && !unitData.isEnemy && !unitData.extracted) { data.Cmdextract(cur); break; } } gameObject.transform.position = savePos; drag = false; }
public void turnEnd() { if (time > nextTime) { getPlayer(); bool check = localPlayer.GetComponent <scr_playerController>().myturn; if (getMeditator() && check) { if (isServer) { med.GetComponent <scr_meditator>().changeTurn(); foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = unit.GetComponent <scr_unit>(); string checkGrow = (string)DB_card.getIdentity(data.id)[5]; if (data.hosts && checkGrow.Contains("[성장")) { data.grow(); } } } else { localPlayer.GetComponent <scr_playerController>().direct_cmdrequest(); foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = unit.GetComponent <scr_unit>(); string checkGrow = (string)DB_card.getIdentity(data.id)[5]; if (!data.hosts && checkGrow.Contains("[성장")) { data.grow(); } } } nextTime = time + 100; } } }
public void CmdDamage(GameObject cur, int amount) { if (cur.transform.tag == "Unit") { scr_unit scr = cur.GetComponent <scr_unit>(); scr.health -= amount; if (scr.health > scr.max_health) { scr.health = scr.max_health; } } else if (cur.transform.tag == "Player") { scr_playerIdentity scr = cur.GetComponent <scr_playerIdentity>(); scr.health -= amount; if (scr.health > scr.max_health) { scr.health = scr.max_health; } } }
public void OnEndDrag(PointerEventData eventData) { foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Player")) { gameObject.transform.SetParent(GameObject.Find("Canvas").transform); if (gameObject.GetComponent <SpriteRenderer>().sprite == attack) { if (!cur.GetComponent <scr_playerController>().isPlayer&& canDirectAttack() && transform.localPosition.y >= 360) { scr_unit data = sav_parent.GetComponent <scr_unit>(); data.CmdDirectattack_health_calculation(cur); if (data.id == "Falcifer") { data.CmdDamage(sav_parent, 2); data.Cmdcharge(); break; } break; } } } foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { gameObject.transform.SetParent(GameObject.Find("Canvas").transform); if (gameObject.GetComponent <SpriteRenderer>().sprite == attack) { string checkRange = (string)DB_card.getIdentity(sav_parent.GetComponent <scr_unit>().id)[5]; if (cur.GetComponent <scr_unit>().isEnemy&& (checkRange.Contains("[원격") || canAttack(cur)) && Vector3.Distance(gameObject.transform.localPosition, cur.transform.localPosition) <= 60f) { scr_unit data = sav_parent.GetComponent <scr_unit>(); data.Cmdchange_spawn_turn(); string checkAttack = (string)DB_card.getIdentity(data.id)[5]; if (checkAttack.Contains("[공격")) { switch (data.id) { case "moon_slayer": data.CmdgetSelfStatus(1, 0); break; case "Revilla": data.CmdgetSelfStatus(cur.GetComponent <scr_unit>().health, 0); break; case "dollmaker": if (data.isMyturn()) { scr_playerInGame.hand.Add("doll"); } break; case "sacrifice_summoner": if (getPlayer()) { player.GetComponent <scr_playerIdentity>().CmdSetSacrificeCnt(data.hosts, 2); } break; case "wind_rider": if (cur.GetComponent <scr_unit>().attack >= 7) { data.CmdDamage(cur, cur.GetComponent <scr_unit>().health); } break; case "Volcanic_twindragon": if (cur.GetComponent <scr_unit>().health <= data.attack) { data.CmdgetSelfStatus(1, 1); data.Cmdcharge(); } break; case "mancy": data.CmdgetSelfStatus(2, 0); break; case "axe_zealot": if (getPlayer()) { if (player.GetComponent <scr_playerController>().myturn) { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Unit")) { if (obj != gameObject) { data.CmdDamage(obj, 1); } } } } break; case "Falcifer": data.CmdDamage(sav_parent, 2); data.Cmdcharge(); break; case "mirat": if (getPlayer()) { if (player.GetComponent <scr_playerController>().myturn) { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Unit")) { if (obj.GetComponent <scr_unit>().hosts == data.hosts && obj.GetComponent <scr_unit>().id == "doll") { data.CmdgetStatus(obj, 1, 1); } } } } break; case "Keiro": if (getPlayer()) { if (data.isMyturn()) { if (cur.GetComponent <scr_unit>().health <= data.attack) { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Player")) { if (!obj.GetComponent <scr_playerController>().isPlayer) { data.CmdDamage(obj, cur.GetComponent <scr_unit>().attack); } } } } } break; default: break; } } data.Cmdattack_health_calculation(cur); break; } } else if (gameObject.GetComponent <SpriteRenderer>().sprite == magic) { if ((Vector3.Distance(gameObject.transform.localPosition, cur.transform.localPosition) <= 60f) && cur != gameObject) { scr_unit data = sav_parent.GetComponent <scr_unit>(); requestParticle(3, sav_parent, -1); switch (data.id) { case "little_healer": data.CmdDamage(cur, -2); emerge_flag = false; break; case "student_swordman": data.CmdDamage(cur, 1); emerge_flag = false; break; case "shasha": data.CmdsetTerial(cur.GetComponent <scr_unit>().terial); emerge_flag = false; break; case "hero_helper": data.CmdgetStatus(cur, 1, 1); emerge_flag = false; break; case "corpse_raven": scr_unit curData = cur.GetComponent <scr_unit>(); if (data.hosts == curData.hosts && curData.card_tag.Contains("Beast")) { data.CmdDamage(cur, curData.health); if (getPlayer()) { player.GetComponent <scr_playerIdentity>().CmdGainCard(data.hosts, "draw"); } emerge_flag = false; } break; case "admired_bishop": curData = cur.GetComponent <scr_unit>(); if (data.hosts != curData.hosts) { if (data.isMyturn()) { scr_playerInGame.hand.Add(curData.id); } emerge_flag = false; } break; case "waterdragon_priest": curData = cur.GetComponent <scr_unit>(); if (data.hosts == curData.hosts && curData.card_tag.Contains("Water")) { data.CmdDamage(cur, curData.health); if (getPlayer()) { player.GetComponent <scr_playerIdentity>().CmdGainCard(data.hosts, "draw"); player.GetComponent <scr_playerIdentity>().CmdGainCard(data.hosts, "draw"); } emerge_flag = false; } break; case "little_mermaid": curData = cur.GetComponent <scr_unit>(); if (curData.card_tag.Contains("Water")) { data.CmdgetStatus(cur, 1, 1); emerge_flag = false; } break; case "slum_dancer": data.CmdgetStatus(cur, -2, 0); emerge_flag = false; break; case "attack_eater": curData = cur.GetComponent <scr_unit>(); bool temp_flag = false; foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Unit")) { if (obj != gameObject && obj.GetComponent <scr_unit>().card_tag.Contains("Wind")) { temp_flag = true; break; } } if (temp_flag) { int temp_curAttack = curData.attack; int temp_attack = data.attack; data.CmdgetSelfStatus(temp_curAttack - temp_attack, 0); data.CmdgetStatus(cur, temp_attack - temp_curAttack, 0); emerge_flag = false; } break; case "ground_follower": curData = cur.GetComponent <scr_unit>(); if (curData.hosts == data.hosts && curData.card_tag.Contains("Earth")) { curData.CmdgetSelfStatus(curData.health - curData.attack, 0); emerge_flag = false; } break; case "whitefur_fox": curData = cur.GetComponent <scr_unit>(); if (curData.hosts == data.hosts && curData.card_tag.Contains("Beast")) { data.CmdgetStatus(cur, 1, 1); emerge_flag = false; } break; case "juen": curData = cur.GetComponent <scr_unit>(); if (curData.hosts == data.hosts && curData.card_tag.Contains("Beast")) { curData.Cmdcharge(); emerge_flag = false; } break; case "Toxie": curData = cur.GetComponent <scr_unit>(); if (curData.health <= 2) { curData.CmdCamouflage("Devil-T_host"); emerge_flag = false; } break; case "steel_sworder": data.CmdDamage(cur, 2); emerge_flag = false; break; case "rein": data.CmdgetStatus(cur, 1 - cur.GetComponent <scr_unit>().attack, 0); emerge_flag = false; break; case "dark_baron": if (getPlayer()) { int temp_health = cur.GetComponent <scr_unit>().health; data.CmdDamage(player, temp_health); data.CmdDamage(cur, temp_health); } emerge_flag = false; break; case "mitero": curData = cur.GetComponent <scr_unit>(); if (curData.hosts == data.hosts && curData.card_tag.Contains("Wind")) { data.CmdDamage(cur, curData.health); emerge_flag = false; } if (!emerge_flag) { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit objData = obj.GetComponent <scr_unit>(); if (data.hosts != objData.hosts && objData.attack >= 5) { data.CmdDamage(obj, objData.health); } } } break; case "Sein": getPlayer(); curData = cur.GetComponent <scr_unit>(); if (data.isMyturn()) { if (scr_playerInGame.hand.Contains("doll")) { scr_playerInGame.hand.Remove("doll"); scr_playerInGame.deck.Add("doll"); data.CmdDamage(cur, 2); } } break; case "Tenebera": data.CmdrequestParticleByVector(7, cur.transform.localPosition, -1); data.CmdDestroyUnit(cur); emerge_flag = false; break; case "dark_mage": data.CmdDamage(cur, 4); emerge_flag = false; break; case "burying_socerer": curData = cur.GetComponent <scr_unit>(); if (data.isMyturn()) { scr_playerInGame.hand.Add(curData.id); } data.CmdrequestParticleByVector(7, cur.transform.localPosition, -1); data.CmdDestroyUnit(cur); emerge_flag = false; break; case "tigor": curData = cur.GetComponent <scr_unit>(); if (curData.hosts == data.hosts && curData.card_tag.Contains("Beast")) { data.CmdgetStatus(cur, 3, 3); emerge_flag = false; } break; case "SENA": if (data.isMyturn()) { if (scr_playerInGame.hand.Count != 0) { data.CmdDamage(cur, 2); getPlayer(); player.GetComponent <scr_playerIdentity>().CmdSelectCard(data.hosts, data.id); } } break; case "BT": if (cur.GetComponent <scr_unit>().attack <= 5) { cur.GetComponent <scr_unit>().Cmdcharge(); } emerge_flag = false; break; default: break; } break; } } } gameObject.transform.position = savePos; drag = false; }
public bool checkExtra() { bool synthesize_firstIng = false; bool synthesize_secondIng = false; int overlay_count = 0; switch (scr_storeDeck.extraID) { case "PEIN": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0 && (unitData.id == "investigator_pein" || unitData.id == "synthesizer")) { if (synthesize_firstIng == false) { synthesize_firstIng = true; } else { synthesize_secondIng = true; } } } return(synthesize_firstIng && synthesize_secondIng); case "BAN": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0) { if (unitData.id == "moon_slayer") { synthesize_firstIng = true; } else if (unitData.id == "mancy") { synthesize_secondIng = true; } else if (unitData.id == "synthesizer") { if (!synthesize_firstIng) { synthesize_firstIng = true; } else { synthesize_secondIng = true; } } } } return(synthesize_firstIng && synthesize_secondIng); case "PAN": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0) { if (unitData.id == "slum_dancer") { synthesize_firstIng = true; } else if (unitData.id == "rein") { synthesize_secondIng = true; } else if (unitData.id == "synthesizer") { if (!synthesize_firstIng) { synthesize_firstIng = true; } else { synthesize_secondIng = true; } } } } return(synthesize_firstIng && synthesize_secondIng); case "NATIS": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0) { if (unitData.id == "wind_walker") { synthesize_firstIng = true; } else if (unitData.id == "necky") { synthesize_secondIng = true; } else if (unitData.id == "synthesizer") { if (!synthesize_firstIng) { synthesize_firstIng = true; } else { synthesize_secondIng = true; } } } } return(synthesize_firstIng && synthesize_secondIng); case "ROGER": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0) { if (unitData.id == "wave_fighter") { synthesize_firstIng = true; } else if (unitData.id == "ken") { synthesize_secondIng = true; } else if (unitData.id == "synthesizer") { if (!synthesize_firstIng) { synthesize_firstIng = true; } else { synthesize_secondIng = true; } } } } return(synthesize_firstIng && synthesize_secondIng); case "LATIEN": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0) { if (unitData.terial == 6) { overlay_count++; } } } return(overlay_count >= 2); case "SENA": foreach (GameObject unit in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit unitData = unit.GetComponent <scr_unit>(); if (unit.transform.localPosition.y < 0) { if (unitData.terial == 4) { overlay_count++; } } } return(overlay_count >= 2); case "BT": return(extraFlag && scr_playerInGame.tomb.Count >= 12); case "TONUS": foreach (string card in scr_playerInGame.deck) { if ((int)DB_card.getIdentity(card)[0] == 7) { synthesize_firstIng = true; break; } } return(extraFlag && synthesize_firstIng); case "LICA": return(extraFlag && scr_playerInGame.hand.Count <= 2); case "MACHINA": getPlayer(); return(localPlayer.GetComponent <scr_playerIdentity>().sacrificeCnt >= 20); case "EURIEL": return(extraFlag && (scr_playerInGame.deck.Contains("#elemental_book") || scr_playerInGame.hand.Contains("#elemental_book"))); case "INFINITAS": getPlayer(); return(extraFlag && localPlayer.GetComponent <scr_playerIdentity>().sacrificeCnt >= 10); case "SAYRUN": getPlayer(); return(localPlayer.GetComponent <scr_playerIdentity>().sacrificeCnt >= 5); case "HETERO": getPlayer(); bool temp_flag = true; ArrayList temp_deck = new ArrayList(); foreach (string cardId in scr_playerInGame.deck) { foreach (string compareId in temp_deck) { if (compareId == cardId) { temp_flag = false; break; } } if (!temp_flag) { break; } temp_deck.Add(cardId); } return(extraFlag && temp_flag); default: return(false); } }
public void selectEffect(string id, string code) { if (code == "DRAW") { scr_playerInGame.deck.Remove(id); scr_playerInGame.hand.Add(id); } else if (code == "GETHAND") { scr_playerInGame.hand.Add(id); } else if (code == "DISCARDHAND") { scr_playerInGame.hand.Remove(id); scr_playerInGame.tomb.Add(id); } else if (code == "DISCARDHANDTOSACRIFICE") { scr_playerInGame.hand.Remove(id); scr_playerInGame.tomb.Add(id); sacrificeCnt += (int)DB_card.getIdentity(id)[0]; } else if (code == "DRAWPANELTY_COSTDAMAGE") { scr_playerInGame.deck.Remove(id); scr_playerInGame.hand.Add(id); health -= (int)DB_card.getIdentity(id)[0]; } else if (code == "RECALL") { scr_playerInGame.tomb.Remove(id); scr_playerInGame.hand.Add(id); } else if (code == "SERIATODECK") { scr_playerInGame.hand.Remove(id); scr_playerInGame.deck.Add("Seria"); } else if (code == "REMOVE_CAMOUFLAGE") { scr_playerInGame.tomb.Remove(id); foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.id == "pyren_zombie") { curData.CmdCamouflage(id); } } } else if (code == "CHANGETAG") { string tempTag = (string)DB_card.getIdentity(id)[6]; foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == GetComponent <scr_playerController>().isHost) { curData.CmdsetTag(tempTag); } } } else if (code == "ELEMENTALFIELD") { string tempTag = (string)DB_card.getIdentity(id)[6]; CmdSetEnvironment("$" + tempTag); } gameObject.GetComponent <scr_playerInGame>().displayHand(); }
public void CmdforAllSpell(bool hosts, string id, int cost) { bool used = true; switch (id) { case "#vitality": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = cur.GetComponent <scr_unit>(); if (data.hosts == hosts && data.card_tag.Contains("Earth")) { data.CmdgetSelfStatus(0, 2); } } break; case "#luminous_grail": CmdGainStatusExtended(hosts, 0, 3, 3); break; case "#dark_token": RpcGaincard(hosts, "daki"); RpcGaincard(hosts, "daki"); break; case "#blood_storm": int temp_cnt = 0; foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = cur.GetComponent <scr_unit>(); if (data.hosts != hosts) { temp_cnt++; } } if (temp_cnt >= 4) { foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = cur.GetComponent <scr_unit>(); data.CmdDamage(cur, 3); } } else { foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = cur.GetComponent <scr_unit>(); data.CmdDamage(cur, 1); } } break; case "#volcano": CmdSetEnvironment("volcano"); break; case "#dimension_summon": ArrayList temp_table = new ArrayList(); foreach (string cardId in DB_card.collectible) { if (!cardId.Contains("#")) { temp_table.Add(cardId); } } int drawIndex = Random.Range(0, temp_table.Count); CmdGainCard(hosts, (string)temp_table[drawIndex]); break; case "#tales_river": CmdSetEnvironment("tales_1"); break; case "#salvage": RpcSelectCard(hosts, id); break; case "#evolve:SaintResia": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == hosts && curData.id == "Resia") { curData.CmdCamouflage("Angel_resia"); } } break; case "#evolve:DarkResia": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == hosts && curData.id == "Resia") { curData.CmdCamouflage("Dark_resia"); } } break; case "#nas_breath": RpcGaincard(hosts, "nas"); CmdGainStatus(hosts, 0, 4); break; case "#assembly": RpcSelectCard(hosts, id); break; case "#initial_shine": RpcGaincard(hosts, "draw"); break; case "#dangerous_contact": scr_meditator med = GameObject.FindGameObjectWithTag("Meditator").GetComponent <scr_meditator>(); int sav_handCnt = (hosts)? med.serverHandcnt : med.clientHandcnt; for (int i = 0; i < 3; i++) { RpcGaincardExtended(hosts, "draw", "NotDarkRemove"); } if (sav_handCnt != -1) { if (hosts) { if (sav_handCnt == med.serverHandcnt) { RpcGaincardExtended(hosts, "draw", "RemoveAll"); } } else { if (sav_handCnt == med.clientHandcnt) { RpcGaincardExtended(hosts, "draw", "RemoveAll"); } } } break; case "#doll_gathering": for (int i = 0; i < 3; i++) { RpcGaincardExtended(hosts, "doll", "IFINDECK"); } break; case "#doll_regression": for (int i = 0; i < 3; i++) { RpcGaincardExtended(hosts, "doll", "TOMBTOHAND"); } RpcGaincard(hosts, "draw"); break; case "#doll_sacrifice": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == hosts && (curData.id == "doll" || curData.id == "tetra")) { curData.CmdgetSelfStatus(1, 1); } } break; case "#wisdom_eye": RpcGaincard(hosts, "draw"); RpcGaincard(hosts, "draw"); break; case "#heal_leaf": CmdGainStatus(hosts, 0, 8); break; case "#earthquake": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit data = cur.GetComponent <scr_unit>(); if (!data.card_tag.Contains("Earth")) { data.CmdDamage(cur, 2); } } break; case "#luminous_badge": CmdSetEnvironment("luminous_badge"); break; case "#Archmage_rune": CmduseTerial(cost); CmdSetEnvironment("archmage_rune"); break; case "#union_roar": CmdSelectCard(hosts, id); break; case "#ren_wakeup": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { cur.GetComponent <scr_unit>().CmdDamage(cur, 5); } break; case "#halfmoon_strike": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts != hosts) { curData.CmdDamage(cur, 6); } } RpcGaincard(hosts, "draw"); RpcGaincard(hosts, "draw"); break; case "#latien_prelude": RpcGaincard(hosts, "draw"); RpcGaincard(hosts, "draw"); break; case "#latien_choir": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == hosts) { curData.CmdgetSelfStatus(2, 2); } } break; case "#latien_fantasia": RpcSelectCard(hosts, id); break; case "#latien_lyrics": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts != hosts) { curData.CmdDamage(cur, 3); } } break; default: break; } CmduseTerial(cost); if (used) { RpcUseSpell(hosts, id); } }
public void CmdforUnitSpell(GameObject target, bool hosts, string id, int cost) { scr_unit data = target.GetComponent <scr_unit>(); int cnt_flag = 0; bool used = true; switch (id) { case "#cost_control": data.CmdsetTerial(terial); break; case "#elemental_reset": data.CmdsetTag(""); break; case "#draft": data.CmdsetTag("Warrior"); break; case "#slash": data.CmdDamage(target, 2); break; case "#widdy_breath": data.CmdgetSelfStatus(data.health - data.attack, data.attack - data.health); RpcGaincard(hosts, "widdy"); break; case "#shrink": data.CmdgetSelfStatus(1 - data.attack, 0); break; case "#ador_breath": data.CmdDamage(target, 2); RpcGaincard(hosts, "ador"); break; case "#dark_ora": data.CmdDamage(target, 2); break; case "#brainwashing": foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { scr_unit curData = cur.GetComponent <scr_unit>(); if (curData.hosts == hosts && curData.card_tag.Contains("Shine")) { cnt_flag++; NetworkServer.Destroy(cur); } } if (cnt_flag > 0) { RpcGaincard(hosts, data.id); data.CmdDestroyUnit(target); break; } else { used = false; } break; case "#recall": if (data.hosts != hosts) { used = false; } else { RpcGaincard(hosts, data.id); data.CmdDestroyUnit(target); } break; case "#dark_hand": data.CmdDamage(target, 3); break; case "#armored": data.CmdgetSelfStatus(2, 4); break; case "#gladius": if (data.card_tag.Contains("Warrior")) { data.CmdgetSelfStatus(3, 2); } else { used = false; } break; case "#titanum_shield": if (data.card_tag.Contains("Warrior")) { data.CmdgetSelfStatus(1, 2); RpcGaincard(hosts, "draw"); } else { used = false; } break; case "#selfburn": if (data.card_tag.Contains("Fire")) { foreach (GameObject cur in GameObject.FindGameObjectsWithTag("Unit")) { if (cur.GetComponent <scr_unit>().hosts != hosts) { data.CmdDamage(cur, data.attack); } } } CmdDamage(target, data.health); break; case "#death": data.CmdDestroyUnit(target); break; case "#latien_symphony": data.CmdDamage(target, data.health); break; default: break; } CmduseTerial(cost); if (used) { RpcUseSpell(hosts, id); } }