public void deplacerCarte(IConteneurCarte nouveauEmplacement, NetworkInstanceId netIdNouveauPossesseur, NetworkInstanceId netIdTaskEvent) { //TODO que faire pour deplacement vers la mains if (isDeplacable()) { if (nouveauEmplacement is EmplacementMetierAbstract) { ((EmplacementMetierAbstract)nouveauEmplacement).putCard(this, this.getConteneur() is Mains, netIdTaskEvent); } else if (nouveauEmplacement is ISelectionnable) { JoueurUtils.getJoueurLocal().CmdCreateTask(this.netId, this.idJoueurProprietaire, ((ISelectionnable)nouveauEmplacement).IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_STANDART, NetworkInstanceId.Invalid, false); } else if (!isServer) { //TODO bon comportement si emplacement pa sselectionnable? nouveauEmplacement.putCard(this); } if (netIdNouveauPossesseur != NetworkInstanceId.Invalid && netIdNouveauPossesseur != idJoueurProprietaire) { this.idJoueurProprietaire = netIdNouveauPossesseur; } } }
public static void invoquerCarteServer(GameObject carteAInvoquer, int niveauInvocation, IConteneurCarte emplacementCible, Joueur joueurPossesseur) { NetworkServer.Spawn(carteAInvoquer); CarteMetierAbstract carteScript = carteAInvoquer.GetComponent <CarteMetierAbstract> (); if (carteScript is CarteConstructionMetierAbstract) { ((CarteConstructionMetierAbstract)carteScript).NiveauActuel = niveauInvocation; } if (joueurPossesseur.isServer) { EmplacementUtils.putCardFromServer(emplacementCible, carteScript); } else { emplacementCible.putCard(carteScript); } NetworkUtils.assignObjectToPlayer(carteScript.GetComponent <NetworkIdentity> (), joueurPossesseur.GetComponent <NetworkIdentity> (), .2f); byte[] carteRefData = SerializeUtils.SerializeToByteArray(carteScript.getCarteDTORef()); if (carteScript is CarteConstructionMetierAbstract) { ((CarteConstructionMetierAbstract)carteScript).RpcGenerate(carteRefData, NetworkInstanceId.Invalid); } //TODO carte amelioration }