public void CmdGenerateCardAlreadyLaid(NetworkInstanceId networkIdJoueur) { Debug.Log("Begin CmdGenerateCardAlreadyLaid"); CarteMetierAbstract[] listeCarteDejaPose = GameObject.FindObjectsOfType <CarteMetierAbstract> (); if (null != listeCarteDejaPose) { for (int index = 0; index < listeCarteDejaPose.Length; index++) { CarteMetierAbstract carteDejaPosee = listeCarteDejaPose [index]; if (null != carteDejaPosee) { //carteDejaPosee.generateGOCard (); if (carteDejaPosee is CartePlaneteMetier) //pas besoin de serialisation pour les planete { RpcGeneratePlanete(carteDejaPosee.gameObject, networkIdJoueur); } else if (carteDejaPosee is CarteConstructionMetierAbstract) { byte[] carteRefData = SerializeUtils.SerializeToByteArray(carteDejaPosee.getCarteDTORef()); ((CarteConstructionMetierAbstract)carteDejaPosee).RpcGenerate(carteRefData, networkIdJoueur); } else { //TODO carteAmeliration } } } } Debug.Log("End CmdGenerateCardAlreadyLaid"); }
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 }
public static TextesCarteBean generateCardBase(CarteMetierAbstract carteBean, string idCarte) { TextesCarteBean retour = new TextesCarteBean(); string typeCarte = getTypeCard(carteBean); Dictionary <string, Material> dictionaryMaterialForCardType = dictionnaryOfMaterial [typeCarte]; carteBean.transform.localScale = ConstanteInGame.tailleCarte; carteBean.gameObject.AddComponent <BoxCollider> ().size = new Vector3(10, .025f, 10); GameObject faceCarteGO = GameObject.CreatePrimitive(PrimitiveType.Plane); faceCarteGO.name = "faceCarte_" + idCarte; faceCarteGO.transform.SetParent(carteBean.transform); faceCarteGO.transform.localScale = Vector3.one; faceCarteGO.transform.localPosition = Vector3.zero; faceCarteGO.transform.localRotation = Quaternion.identity; faceCarteGO.GetComponent <MeshRenderer> ().material = dictionaryMaterialForCardType [KEY_FOND]; Debug.Log("Creation de " + faceCarteGO.name); GameObject dosCarte = GameObject.CreatePrimitive(PrimitiveType.Plane); dosCarte.name = "dosCarte" + idCarte; dosCarte.transform.SetParent(carteBean.transform); dosCarte.transform.localScale = Vector3.one; dosCarte.transform.localRotation = Quaternion.identity; dosCarte.transform.Rotate(new Vector3(0, 0, 180)); dosCarte.transform.localPosition = Vector3.zero; dosCarte.GetComponent <Renderer> ().material = ConstanteInGame.materialCarteBackground; GameObject cadreTitre = GameObject.CreatePrimitive(PrimitiveType.Plane); cadreTitre.name = "CadreTitre_" + idCarte; cadreTitre.transform.SetParent(faceCarteGO.transform); cadreTitre.transform.localPosition = new Vector3(0, 0.01f, 3.54f); cadreTitre.transform.localRotation = Quaternion.identity; cadreTitre.transform.Rotate(new Vector3(0, 180, 0)); cadreTitre.transform.localScale = new Vector3(1, 1, .3f); cadreTitre.GetComponent <Renderer> ().material = dictionaryMaterialForCardType [KEY_TITRE]; GameObject titre = new GameObject("Titre_" + idCarte); titre.transform.SetParent(cadreTitre.transform); titre.transform.localPosition = new Vector3(0, 0.01f, 0); titre.transform.localRotation = Quaternion.identity; titre.transform.Rotate(new Vector3(90, 0, 180)); //Le titre apparait face à z titre.transform.localScale = new Vector3(1, 1, 1); TextMesh txtTitre = titre.AddComponent <TextMesh> (); txtTitre.text = carteBean.getCarteDTORef().TitreCarte; txtTitre.color = Color.black; txtTitre.fontSize = 20; txtTitre.alignment = TextAlignment.Center; txtTitre.anchor = TextAnchor.MiddleCenter; txtTitre.font = ConstanteInGame.fontChintzy; txtTitre.fontStyle = FontStyle.Bold; titre.GetComponent <Renderer> ().material = ConstanteInGame.matChintzy; GameObject image = GameObject.CreatePrimitive(PrimitiveType.Plane); //GameObject image = Instantiate<GameObject>( ConstanteInGame.planePrefab); image.name = "Image_" + idCarte; image.transform.SetParent(faceCarteGO.transform); image.transform.localPosition = new Vector3(0f, 0.005f, 1.18f); image.transform.localRotation = Quaternion.identity; image.transform.Rotate(ConstanteInGame.rotationImage); image.transform.localScale = new Vector3(1, 1, .4f); Material matImage = new Material(dictionaryMaterialForCardType [KEY_IMAGE]); Sprite sprtImageSecondaire = Resources.Load <Sprite> (carteBean.getCarteDTORef().ImagePath); if (null == sprtImageSecondaire) { Debug.Log(carteBean.getCarteDTORef().TitreCarte + " n'a pas d'image"); sprtImageSecondaire = ConstanteInGame.spriteTest; } matImage.EnableKeyword("_DETAIL_MULX2"); matImage.SetTexture("_DetailAlbedoMap", sprtImageSecondaire.texture); image.GetComponent <Renderer> ().material = matImage; retour.goFaceCarte = faceCarteGO; retour.goImage = image; retour.txtTitre = txtTitre; return(retour); }