Esempio n. 1
0
    private void AddFlowerAt(int slot)
    {
        var angularPos = this.FlowerPosFromSlot (slot);
        Debug.Log ("Tree at slot " + slot + " pos " + angularPos);
        var flower = new GameObject();
        flower.transform.Translate(new Vector3(0f, 9.9f, -.5f));
        flower.transform.RotateAround (new Vector3 (0, 0, 0), Vector3.forward, -angularPos);

        var rotation = this.gameObject.transform.rotation;

        this.gameObject.transform.rotation = Quaternion.identity;
        flower.transform.parent = this.gameObject.transform;

        this.gameObject.transform.rotation = rotation;

        flower.name = "Flower";

        var flowerData = new FlowerData ()
        {
            slot = slot,
            anglePos = angularPos,
            gameObj = flower
        };

        var spriteRenderer = flower.AddComponent<SpriteRenderer>();
        spriteRenderer.sprite = (Sprite)Instantiate (this.sprite_WhiteFlower);

        this.flowers.Add(flowerData);
    }
Esempio n. 2
0
    public void ProcessGrowth()
    {
        if (!this.m_isUnlocked)
        {
            return;
        }

        if (this.CanGrowNewFlower())
        {
            var surroundingSeeds = this.m_surroundingFields.Where(f => f.IsPlanted && f.IsUnlocked).Select(f => f.PlantedSeed).ToList();
            var targetColor      = surroundingSeeds.First().Color;
            var t = 1f / surroundingSeeds.Count;
            foreach (var seed in surroundingSeeds)
            {
                targetColor = Color.Lerp(targetColor, seed.Color, t);
            }

            var newSeed = new Seed(targetColor, 3.25f * surroundingSeeds.Count, FlowerData.GetRandomFlowerName());
            this.PlantSeed(newSeed);
        }
        else if (this.CanGrow() && this.m_currentProgress < 1f)
        {
            this.m_currentProgress           += this.m_progressPerDay;
            this.m_flowerTransform.localScale = Vector3.one * this.m_currentProgress;
        }
        else
        {
            this.m_currentProgress            = 0f;
            this.m_plantedSeed                = null;
            this.m_flowerTransform.localScale = Vector3.zero;
        }
    }
Esempio n. 3
0
    public void Harvest(Hex h)
    {
        FlowerData data = h.Harvest();

        if (data)
        {
            inventory.AddToAllItems(data.name, data.abundance);
        }
    }
Esempio n. 4
0
    public void ShowUp(FlowerData flower)
    {
        this.flower = flower;
        Initialize();
        SetHeight(flower.Height);

        StartCoroutine(ScaleUp());

        RotateFlower();
        RotatePistil();
    }
Esempio n. 5
0
    private void Spawn(FlowerData data)
    {
        Debug.Log("Spawn " + data.FlowerType.name);
        var flower = Instantiate(prefab, transform, false);

        flower.GetComponent <FlowerCreator>().Create(data.FlowerType.PistilPrefab);

        var randomPosX = Mathf.Lerp(ArrangeManager.rangeX.x, ArrangeManager.rangeX.y, Random.value);

        flower.transform.localPosition = new Vector3(randomPosX, 0);
    }
Esempio n. 6
0
    public static FlowerData CreateInstance(FlowerData original)
    {
        FlowerData copy = ScriptableObject.CreateInstance <FlowerData>();

        copy.name            = original.name;
        copy.display_name    = original.display_name;
        copy.image           = original.image;
        copy.time_to_harvest = original.time_to_harvest;
        copy.abundance       = original.abundance;

        return(copy);
    }
Esempio n. 7
0
    public FlowerData Harvest()
    {
        FlowerData data = flower;

        flower         = null;
        item           = null;
        readyToHarvest = false;

        Destroy(flowerContainer);
        Destroy(itemContainer);
        Destroy(harvestSignalContainer);

        return(data);
    }
Esempio n. 8
0
 void Show()
 {
     for (int i = 0; i < list.Count; i++)
     {
         SpecialRef specail = ConfigMng.Instance.GetSpecialRef(1);
         if (specail != null)
         {
             int        flowerId  = specail.flowers[i];
             int        someOneId = GameCenter.friendsMng.sendFlowerToOne;
             int        type      = GameCenter.friendsMng.SendFlowerType;
             FlowerData data      = new FlowerData(flowerId, someOneId, type);
             list[i].FlowerData = data;
         }
     }
 }
    public void SaveFlower(Flower flower)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/" + flower.flowerName + ".flw";
        FileStream      stream    = new FileStream(path, FileMode.Create);

        FlowerData data = new FlowerData(flower);

        formatter.Serialize(stream, data);
        stream.Close();

        for (int i = 0; i < flower.parts.Count; i++)
        {
            SaveFlowerPart(flower.parts[i].GetComponent <FlowerPart>());
        }

        Debug.Log("Saving flower " + flower.flowerName);
    }
Esempio n. 10
0
    Route GenerateRoute(int zone)
    {
        if (zone < 0 || zone > zones.Count)
        {
            Debug.LogError($"Attempting to get invalid zone # {zone}, only {zones.Count} available");
            return(null);
        }
        FlowerType type = zones[zone].Get();
        FlowerData data = ControlManager.instance.MapData.FlowerTypeData[type];

        return(new Route(
                   name: data.Names[UnityEngine.Random.Range(0, data.Names.Count - 1)],
                   type: type,
                   distance: zone + 1,
                   resources: UnityEngine.Random.Range(data.Resources.min, data.Resources.max) * 10,
                   workerCapacity: UnityEngine.Random.Range(data.Size.min, data.Size.max)
                   ));
    }
Esempio n. 11
0
    public void UpdateStats(string obj_id, int obj_count)
    {
        Object obj = Resources.Load("Items/" + obj_id);

        if (obj as ItemData)
        {
            ItemData data = obj as ItemData;
            SetStats(data.image, data.display_name, obj_count);
        }
        else if (obj as FlowerData)
        {
            FlowerData data = obj as FlowerData;
            SetStats(data.image, data.display_name, obj_count);
        }
        else
        {
            FlowerData data = Resources.Load("Items/Placeholder") as FlowerData;
            SetStats(data.image, obj_id, obj_count);
        }
    }
Esempio n. 12
0
        private void CreateFlower(int numberOfFlowersInField)
        {
            int startingNumber = 0;

            if (flowersList.Count < numberOfFlowersInField)
            {
                if (flowerReplacementInField == true)
                {
                    startingNumber = flowersList.Count;
                }

                for (int i = startingNumber; i < numberOfFlowersInField; i++)
                {
                    FlowerData flowerInfo = new FlowerData();
                    flowerInfo.FlowerDataKeyStatus        = "updateLocation";
                    flowerInfo.FlowerWaitingTimeToDisplay = SetWaitingTimeToDisplayAFlower();
                    flowersList.Add(flowerInfo);
                }
            }
        }
    public GameObject LoadFlower(string name)
    {
        string path = Application.persistentDataPath + "/" + name + ".flw";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            FlowerData data = (FlowerData)formatter.Deserialize(stream);
            stream.Close();
            Debug.Log("Loading Flower " + name);
            return(data.getFlower(material).gameObject);
        }
        else
        {
            Debug.Log("save file " + path + " not found");
            return(null);
        }
    }
Esempio n. 14
0
    public bool AddItem(string obj_id)
    {
        Object obj = Resources.Load("Items/" + obj_id);

        if (readyToHarvest)
        {
            return(false);
        }
        else if (flower != null && obj as ItemData)
        {
            ItemData newItem = ItemData.CreateInstance(obj as ItemData);
            return(AddMarketItem(newItem));
        }
        else if (flower == null && obj as FlowerData)
        {
            flower          = FlowerData.CreateInstance(obj as FlowerData);
            flowerContainer = DisplayItem(flowerContainer, flower.image);
            return(true);
        }
        else
        {
            return(false);
        }
    }
Esempio n. 15
0
    public void UpdateStats(string obj_id, int obj_count, int curr_count)
    {
        UnityEngine.Object obj = Resources.Load("Items/" + obj_id);
        if (obj as ItemData)
        {
            ItemData data = obj as ItemData;
            SetStats(data.image, data.display_name);
        }
        else if (obj as FlowerData)
        {
            FlowerData data = obj as FlowerData;
            SetStats(data.image, data.display_name);
        }
        else
        {
            FlowerData data = Resources.Load("Items/Placeholder") as FlowerData;
            SetStats(data.image, obj_id);
        }

        count.text   = curr_count + "/" + obj_count;
        marked_count = curr_count;
        max_count    = obj_count;
        this.obj_id  = obj_id;
    }
Esempio n. 16
0
        private void BuildFlowerData(bool useWhitelist)
        {
            var objData  = Game1.content.Load <Dictionary <int, string> >("Data\\ObjectInformation");
            var cropData = Game1.content.Load <Dictionary <int, string> >("Data\\Crops");
            var spring   = new List <FlowerData>();
            var summer   = new List <FlowerData>();
            var fall     = new List <FlowerData>();
            var winter   = new List <FlowerData>();

            var whitelist = new List <int>(new int[] { 591, 593, 595, 597, 376, 402, 418 });

            foreach (var crop in cropData)
            {
                string[] toks    = crop.Value.Split('/');
                string[] seasons = toks[1].Split(' ');
                int      product = int.Parse(toks[3]);

                int category = int.Parse(objData[product].Split('/')[3].Split(' ')[1]);

                if (category != StardewValley.Object.flowersCategory || useWhitelist && !whitelist.Contains(product))
                {
                    continue;
                }

                List <Color> cols = new List <Color>(new Color[] { Color.White });
                if (toks[8].StartsWith("true "))
                {
                    cols.Clear();
                    var colToks = toks[8].Split(' ');
                    for (int i = 1; i < colToks.Length; i += 3)
                    {
                        int r   = int.Parse(colToks[i + 0]);
                        int g   = int.Parse(colToks[i + 1]);
                        int b   = int.Parse(colToks[i + 2]);
                        var col = new Color(r, g, b);
                        cols.Add(col);
                    }
                }

                foreach (var col in cols)
                {
                    FlowerData fd = new FlowerData()
                    {
                        index = product,
                        color = col,
                    };

                    foreach (var season in seasons)
                    {
                        switch (season)
                        {
                        case "spring": spring.Add(fd); break;

                        case "summer": summer.Add(fd); break;

                        case "fall":   fall.Add(fd); break;

                        case "winter": winter.Add(fd); break;
                        }
                    }
                }
            }

            fd.Clear();
            fd.Add("spring", spring);
            fd.Add("summer", summer);
            fd.Add("fall", fall);
            fd.Add("winter", winter);
        }