Exemplo n.º 1
0
    public void addTrigger(GameObject tilego, Sprite Radius, List <ObjectSave> objectssave)
    {
        RatioFactory RF          = new RatioFactory();
        Vector2      Triggersize = new Vector2(RF.trigger_radiusx, RF.trigger_radiusy);

        tilego.AddComponent <BoxCollider2D>();
        tilego.GetComponent <BoxCollider2D>().size      = Triggersize;
        tilego.GetComponent <BoxCollider2D>().isTrigger = true;
        tilego.tag = "trigger";

        trigger_type = new GameObject(tilego.name + "_type");
        SpriteRenderer type = trigger_type.AddComponent <SpriteRenderer>();

        if (objectCur.modifiers.ContainsKey("resource_type"))
        {
            type.sprite = GM.resource_types[objectCur.modifiers["resource_type"]];
        }
        trigger_type.GetComponent <Transform>().position = tilego.GetComponent <Transform>().position + new Vector3(0, 0, -1.0f);
        trigger_type.GetComponent <Transform>().SetParent(tilego.GetComponent <Transform>());

        trigger_radius = new GameObject(tilego.name + "_radius");
        trigger_radius.AddComponent <SpriteRenderer>();
        trigger_radius.GetComponent <SpriteRenderer>().sprite = Radius;
        trigger_radius.GetComponent <Transform>().localScale  = Triggersize / 5;
        trigger_radius.GetComponent <Transform>().SetParent(trigger_type.GetComponent <Transform>());
        trigger_type.SetActive(false);
        if ((objectCur.modifiers.ContainsKey("capacity_max")) && (objectCur.modifiers.ContainsKey("capacity_min")) && (objectssave.Count == 0))
        {
            if (Convert.ToInt32(objectCur.modifiers["capacity_max"]) == -1)
            {
                if (Convert.ToInt32(objectCur.modifiers["capacity_min"]) == -1)
                {
                    objectCur.modifiers["capacity"] = "99999";
                }
                else
                {
                    objectCur.modifiers["capacity"] = UnityEngine.Random.Range(Convert.ToInt32(objectCur.modifiers["capacity_min"]), 99999).ToString();
                }
            }
            else
            {
                objectCur.modifiers["capacity"] = UnityEngine.Random.Range(Convert.ToInt32(objectCur.modifiers["capacity_min"]), Convert.ToInt32(objectCur.modifiers["capacity_max"]) + 1).ToString();
            }
        }
        else if ((objectssave != null) && (objectssave.Find(os => os.id == objectCur.id).modifiers.ContainsKey("capacity") == true))
        {
            objectCur.modifiers["capacity"] = objectssave.Find(os => os.id == objectCur.id).modifiers["capacity"];
        }
    }
Exemplo n.º 2
0
    // public List<GameObject> PrefabTiles = new List<GameObject>();
    public GameObject LoadGO(SaveData sdata)
    {
        GM = GameObject.Find("GameManager").GetComponent <GameManager>();
        GameObject Tribe         = new GameObject(sdata.tribesave.tribename);
        GameObject Tribe_Members = new GameObject("Tribe_Members");

        Tribe_Members.AddComponent <SpriteRenderer>();
        Tribe_Members.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Play/Sprite_Camp");
        Tribe_Members.AddComponent <BoxCollider2D>();
        Tribe_Members.AddComponent <TribeMembersGO>();
        GameObject   Tribe_Radius = new GameObject("Tribe_Radius");
        RatioFactory RF           = new RatioFactory();

        Tribe_Radius.AddComponent <CircleCollider2D>();
        Tribe_Radius.GetComponent <CircleCollider2D>().radius = RF.tribe_sightradius;
        Tribe_Radius.AddComponent <TribeRadiusGO>();
        Tribe_Radius.GetComponent <CircleCollider2D>().isTrigger = true;
        Tribe_Radius.GetComponent <Transform>().SetParent(Tribe_Members.GetComponent <Transform>());
        Tribe_Radius.AddComponent <SpriteRenderer>();
        Sprite Radius = Resources.Load <Sprite>("Play/radius");

        Tribe_Radius.GetComponent <SpriteRenderer>().sprite = Radius;
        Tribe_Radius.GetComponent <Transform>().position    = new Vector3(Tribe_Radius.GetComponent <Transform>().position.x, Tribe_Radius.GetComponent <Transform>().position.y, GM.ZGround);
        Tribe_Radius.GetComponent <Transform>().localScale  = new Vector3(RF.tribe_sightradius, RF.tribe_sightradius, 1.0f);
        Tribe_Radius.tag = "radius";
        Tribe.AddComponent <TribeGO>();
        TribeGO    tribego    = Tribe.GetComponent <TribeGO>();
        GameObject Tribe_Fire = new GameObject("Tribe_Fire");

        Tribe_Fire.AddComponent <SpriteRenderer>();
        Sprite[] Fire = Resources.LoadAll <Sprite>("Play/Feu_Spritesheet");
        Tribe_Fire.GetComponent <SpriteRenderer>().sprite         = Fire[0];
        Tribe_Members.GetComponent <TribeMembersGO>().fire        = Tribe_Fire;
        Tribe_Members.GetComponent <TribeMembersGO>().firesprites = Fire;
        Tribe_Members.GetComponent <TribeMembersGO>().radius      = Tribe_Radius;
        Vector3 frontfire = new Vector3(Tribe_Members.GetComponent <Transform>().position.x, Tribe_Members.GetComponent <Transform>().position.y, Tribe_Members.GetComponent <Transform>().position.z - 0.5f);

        Tribe_Fire.GetComponent <Transform>().position = frontfire;
        Tribe_Fire.GetComponent <Transform>().SetParent(Tribe_Members.GetComponent <Transform>());
        tribego.tribeCurrent = sdata.tribesave;
        if (sdata.tribesave != null)
        {
            if (sdata.tribesave.members.Count > 0)
            {
                foreach (CharacterSave chara in sdata.tribesave.members)
                {
                    GameObject newchar = new GameObject(chara.name);
                    newchar.AddComponent <CharacterGO>();
                    newchar.GetComponent <CharacterGO>().charCurrent = chara;

                    GameObject body  = new GameObject(chara.name + "_Body");
                    Transform  bodyT = body.GetComponent <Transform>();
                    bodyT.SetParent(newchar.GetComponent <Transform>());
                    bodyT.position = new Vector3(bodyT.position.x, bodyT.position.y, GM.ZCharacters + 5);
                    body.AddComponent <SpriteRenderer>();
                    Sprite FaceSprite;
                    if (chara.sexe == 0)
                    {
                        FaceSprite = GM.basesF[chara.Pic_base];
                    }
                    else
                    {
                        FaceSprite = GM.basesM[chara.Pic_base];
                    }
                    body.GetComponent <SpriteRenderer>().sprite = FaceSprite;

                    GameObject paints  = new GameObject(chara.name + "_Paints");
                    Transform  paintsT = paints.GetComponent <Transform>();
                    paintsT.SetParent(newchar.GetComponent <Transform>());
                    paintsT.position = new Vector3(paintsT.position.x, paintsT.position.y, GM.ZCharacters + 4);
                    paints.AddComponent <SpriteRenderer>();
                    Sprite PaintSprite;
                    if (chara.sexe == 0)
                    {
                        PaintSprite = GM.paintsF[chara.Pic_paints];
                    }
                    else
                    {
                        PaintSprite = GM.paintsM[chara.Pic_paints];
                    }
                    paints.GetComponent <SpriteRenderer>().sprite = PaintSprite;

                    GameObject hairs  = new GameObject(chara.name + "_Hairs");
                    Transform  hairsT = hairs.GetComponent <Transform>();
                    hairsT.SetParent(newchar.GetComponent <Transform>());
                    hairsT.position = new Vector3(hairsT.position.x, hairsT.position.y, GM.ZCharacters + 3);
                    hairs.AddComponent <SpriteRenderer>();
                    Sprite HairsSprite;
                    if (chara.sexe == 0)
                    {
                        HairsSprite = GM.hairsF[chara.Pic_hairs];
                    }
                    else
                    {
                        HairsSprite = GM.hairsM[chara.Pic_hairs];
                    }
                    hairs.GetComponent <SpriteRenderer>().sprite = HairsSprite;

                    GameObject extra  = new GameObject(chara.name + "_Extra");
                    Transform  extraT = extra.GetComponent <Transform>();
                    extraT.SetParent(newchar.GetComponent <Transform>());
                    extraT.position = new Vector3(extraT.position.x, extraT.position.y, GM.ZCharacters + 2);
                    extra.AddComponent <SpriteRenderer>();
                    Sprite ExtraSprite;
                    if (chara.sexe == 0)
                    {
                        ExtraSprite = GM.jewelsF[chara.Pic_jewels];
                    }
                    else
                    {
                        ExtraSprite = GM.beardsM[chara.Pic_beard];
                    }
                    extra.GetComponent <SpriteRenderer>().sprite = ExtraSprite;

                    GameObject clothes  = new GameObject(chara.name + "_Clothes");
                    Transform  clothesT = clothes.GetComponent <Transform>();
                    clothesT.SetParent(newchar.GetComponent <Transform>());
                    clothesT.position = new Vector3(clothesT.position.x, clothesT.position.y, GM.ZCharacters + 1);
                    clothes.AddComponent <SpriteRenderer>();
                    Sprite ClothesSprite;
                    if (chara.sexe == 0)
                    {
                        ClothesSprite = GM.clothesF[chara.Pic_clothes];
                    }
                    else
                    {
                        ClothesSprite = GM.clothesM[chara.Pic_clothes];
                    }
                    clothes.GetComponent <SpriteRenderer>().sprite = ClothesSprite;

                    newchar.GetComponent <Transform>().position = Vector3.zero;//(chara.x, chara.y, chara.z);
                    newchar.GetComponent <Transform>().SetParent(Tribe_Members.transform);

                    paints.GetComponent <SpriteRenderer>().enabled  = false;
                    extra.GetComponent <SpriteRenderer>().enabled   = false;
                    clothes.GetComponent <SpriteRenderer>().enabled = false;
                    hairs.GetComponent <SpriteRenderer>().enabled   = false;
                    body.GetComponent <SpriteRenderer>().enabled    = false;

                    tribego.CharsGO.Add(newchar);
                }
                Vector3 TribePos = new Vector3(sdata.tribesave.TribePosX, sdata.tribesave.TribePosY, GM.ZCharacters);
                Tribe_Members.GetComponent <Transform>().position = TribePos;
            }
        }
        return(Tribe);
    }