Beispiel #1
0
    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");
    }
Beispiel #2
0
    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
    }
Beispiel #3
0
    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);
    }