void putChessOnBoard(NPC n, NPC.PropertyData ndata) { n.initial(ndata); GetPlayer(n).chars[n.pData.teamSequence].gamestate = NPC.GameState.INCOMBAT; if (GetPlayer(n).playerID == 0) { charList1[n.pData.teamSequence].GetComponent <chessUI>().combat.gameObject.SetActive(true); } else { charList2[n.pData.teamSequence].GetComponent <chessUI>().combat.gameObject.SetActive(true); } n.OnNPCDead = OnNPCDead; }
IEnumerator _OnNPCDead(NPC npc) { if (npc.gamestate == NPC.GameState.DEFEAT) { yield break; } npc.gamestate = NPC.GameState.DEFEAT; GetPlayer(npc).chars[npc.pData.teamSequence].gamestate = NPC.GameState.DEFEAT; print(npc.name + "is dead"); if (GetPlayer(npc).playerID == 0) { charList1[npc.pData.teamSequence].GetComponent <chessUI>().combat.gameObject.SetActive(false); charList1[npc.pData.teamSequence].GetComponent <chessUI>().Dead.gameObject.SetActive(true); } else if (GetPlayer(npc).playerID == 1) { charList2[npc.pData.teamSequence].GetComponent <chessUI>().combat.gameObject.SetActive(false); charList2[npc.pData.teamSequence].GetComponent <chessUI>().Dead.gameObject.SetActive(true); } yield return(StartCoroutine(npc._playDeath())); Player p = GetPlayer(npc); if (p == null) { yield break; } NPC.PropertyData data = null; for (int i = 0; i < p.chars.Count; ++i) { if (p.chars[i].gamestate == NPC.GameState.WAITING) { data = p.chars[i]; p.chars[i].gamestate = NPC.GameState.INCOMBAT; break; } } p = Enemy(p); if (data == null) { for (int i = 0; i < p.chars.Count; ++i) { if (p.chars[i].gamestate == NPC.GameState.WAITING) { data = p.chars[i]; p.chars[i].gamestate = NPC.GameState.INCOMBAT; break; } } } if (data == null) { npc.gameObject.GetComponent <chessUI>().NPC.gameObject.SetActive(false); npc.playertype = playerType.NUTUAL; npc.pData.atk = 0; npc.OnNPCDead = null; npc.hpbar.gameObject.SetActive(false); } else { putChessOnBoard(npc, data); } StartCoroutine(npc._playInitial()); // print("player1"); // for( int i=0; i< GetPlayer(playerType.PLAYER1).chars.Count; ++i ) // { // print(i.ToString() + ":" + GetPlayer(playerType.PLAYER1).chars[i].gamestate.ToString() ); // } // // print("player2"); // for( int i=0; i< GetPlayer(playerType.PLAYER2).chars.Count; ++i ) // { // print(i.ToString() + ":" + GetPlayer(playerType.PLAYER2).chars[i].gamestate.ToString() ); // } if (GetPlayer(npc) != null && playerLose(GetPlayer(npc))) { OnGameEnd(Enemy(GetPlayer(npc)), GetPlayer(npc)); } }