Beispiel #1
0
    IEnumerator Tank(int index)
    {
        for (; ;)
        {
            if (start[index])
            {
                GameManager.Instance.watertank[index].waterQuality = GameManager.Instance.waterquality_parts[GameManager.Instance.watertank[index].part.waterQuality].raiting;
                if (GameManager.Instance.watertank[index].sharks.Count != 0)
                {
                    _SharkData sd         = GameManager.Instance.sharks[GameManager.Instance.watertank[index].sharks[0].name];
                    int        tankvolume = 0;
                    for (int i = 0; i < GameManager.Instance.watertank[index].sharks.Count; i++)
                    {
                        tankvolume += GameManager.Instance.watertank[index].sharks[i].curSize;
                    }

                    if (tankvolume > GameManager.Instance.watertank[index].volume)
                    {
                        for (int i = 0; i < GameManager.Instance.watertank[index].sharks.Count; i++)
                        {
                            tankvolume += GameManager.Instance.watertank[index].sharks[i].stress++;
                        }
                    }

                    if (GameManager.Instance.watertank[index].volume < GameManager.Instance.oxygen_parts[GameManager.Instance.watertank[index].part.oxygen].raiting)
                    {
                        for (int i = 0; i < GameManager.Instance.watertank[index].sharks.Count; i++)
                        {
                            tankvolume += GameManager.Instance.watertank[index].sharks[i].stress++;
                        }
                    }

                    if (tankvolume > GameManager.Instance.waterquality_parts[GameManager.Instance.watertank[index].part.waterQuality].raiting)
                    {
                        for (int i = 0; i < GameManager.Instance.watertank[index].sharks.Count; i++)
                        {
                            tankvolume += GameManager.Instance.watertank[index].sharks[i].stress++;
                        }
                    }

                    for (int i = 0; i < GameManager.Instance.watertank[index].sharks.Count; i++)
                    {
                        GameManager.Instance.watertank[index].sharks[i].curSize += sd.dowLimit;
                        GameManager.Instance.watertank[index].sharks[i].curSize  = (short)Mathf.Clamp(GameManager.Instance.watertank[index].sharks[i].curSize, sd.minSize, sd.maxSize);
                        if (GameManager.Instance.watertank[index].sharks[i].stress > sd.stressLimit)
                        {
                            //사망!
                            GameManager.Instance.watertank[index].sharks.RemoveAt(i);
                        }
                    }
                }
            }
            else
            {
                start[index] = true;
            }
            yield return(new WaitForSeconds(time));
        }
    }
Beispiel #2
0
    public void SelectShark(int h)
    {
        ScrollManaging sm = GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Sharkshop].childs[0].GetComponent <ScrollManaging>();

        sm.items[handle].GetComponent <Image>().sprite = sprite[0];
        handle     = h;
        _sharkData = GameManager.Instance.sharks[sm.items[handle].GetComponent <ScrollItem>().itemname.text];
        sm.items[handle].GetComponent <Image>().sprite = sprite[1];
    }
Beispiel #3
0
 public bool Shark_Plus(int index, _SharkData data, int count)
 {
     if (GameManager.Instance.watertank[index].sharks.Count == 0) //수조에 상어가 없다면
     {
         for (int i = 0; i < count; i++)
         {
             GameManager.Instance.watertank[index].sharks.Add(new Shark(data.name));
         }
         return(true);
     }
     else if (GameManager.Instance.watertank[index].sharks[0].name == data.name) // 수조에 똑같은 상어가 있다면
     {
         for (int i = 0; i < count; i++)
         {
             GameManager.Instance.watertank[index].sharks.Add(new Shark(data.name));
         }
         return(true);
     }
     else // 다른 상어가 있다넹
     {
         SpecialTabColor(new Color(1f, 0.7f, 0.7f));
         return(false);
     }
 }
Beispiel #4
0
    public void LoadData() // 상어 데이터 불러오기
    {
        sharks             = new Dictionary <string, _SharkData>();
        foods              = new Dictionary <string, _Food>();
        sprites            = new Dictionary <string, Sprite>();
        contents           = new Dictionary <string, string>();
        waterquality_parts = new Dictionary <string, _WaterQuality>();
        oxygen_parts       = new Dictionary <string, _Oxygen>();
        volume_parts       = new Dictionary <string, _Volume>();
        money              = new Money();
        downum             = new DowNum();

        if (File.Exists(datapath + "/DataFile.json")) // 상어 데이터
        {
            TextAsset ta   = Resources.Load <TextAsset>("Files/DataFile");
            string    json = ta.ToString();
            string[]  strs = json.Split('\n');
            for (int i = 0; i < strs.Length - 1; i++)
            {
                string[]   kv    = strs[i].Split('|');
                string     key   = kv[0].Substring(8, kv[0].Length - 10);
                _SharkData value = JsonUtility.FromJson <_SharkData>(kv[1]);
                sharks[key] = value;
                LoadSprite(key, value.image);
                LoadContent(key, key);
            }
        }
        if (File.Exists(savepath + "/SaveFile.json")) // 수조 & 음식 데이터
        {
            byte[]   bt   = File.ReadAllBytes(savepath + "/SaveFile.json");
            string   json = Encoding.UTF8.GetString(bt);
            string[] strs = json.Split('$');
            string[] tank = strs[0].Split('\n');
            for (int i = 0; i < tank.Length - 1; i++)
            {
                watertank[i] = JsonUtility.FromJson <WaterTank>(tank[i]);
            }
            string[] food = strs[1].Split('\n');
            for (int i = 1; i < food.Length - 1; i++)
            {
                string[] kv    = food[i].Split('|');
                string   key   = kv[0].Substring(8, kv[0].Length - 10);
                _Food    value = JsonUtility.FromJson <_Food>(kv[1]);
                foods[key] = value;
                LoadSprite(key, value.image);
            }
            string[] wqs = strs[2].Split('\n');
            for (int i = 1; i < wqs.Length - 1; i++)
            {
                string[]      kv    = wqs[i].Split('|');
                string        key   = kv[0].Substring(8, kv[0].Length - 10);
                _WaterQuality value = JsonUtility.FromJson <_WaterQuality>(kv[1]);
                waterquality_parts[key] = value;
                LoadSprite(key, value.image);
            }
            string[] oxs = strs[3].Split('\n');
            for (int i = 1; i < oxs.Length - 1; i++)
            {
                string[] kv    = oxs[i].Split('|');
                string   key   = kv[0].Substring(8, kv[0].Length - 10);
                _Oxygen  value = JsonUtility.FromJson <_Oxygen>(kv[1]);
                oxygen_parts[key] = value;
                LoadSprite(key, value.image);
            }
            string[] vos = strs[4].Split('\n');
            for (int i = 1; i < vos.Length - 1; i++)
            {
                string[] kv    = vos[i].Split('|');
                string   key   = kv[0].Substring(8, kv[0].Length - 10);
                _Volume  value = JsonUtility.FromJson <_Volume>(kv[1]);
                volume_parts[key] = value;
                LoadSprite(key, value.image);
            }
            string[] costs = strs[5].Split('\n');
            for (int i = 1; i < costs.Length - 1; i++)
            {
                string[] kv = costs[i].Split('|');
                money  = JsonUtility.FromJson <Money>(kv[0]);
                downum = JsonUtility.FromJson <DowNum>(kv[1]);
            }
        }
        else
        {
            ResetData();
        }
    }
Beispiel #5
0
    public void ItemLoad()
    {
        GetComponent <ScrollRect>().content.transform.localPosition = Vector3.zero;
        int i      = 0;
        int stress = 0;

        switch (type)
        {
        case Item_Ty._WaterQuality:
            foreach (string key in GameManager.Instance.waterquality_parts.Keys)
            {
                _WaterQuality wq = GameManager.Instance.waterquality_parts[key];
                items[i].image.sprite  = GameManager.Instance.sprites[key];
                items[i].itemname.text = wq.name;
                partButton pb     = items[i].GetComponent <partButton>();
                Interface  tempIf = GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._partshopTab];
                pb.panel = tempIf.gameObject;
                pb.text  = tempIf.childs[0].GetComponent <Text>();
                pb.part  = tempIf.childs[1].GetComponent <Text>();
                pb.image = tempIf.childs[2].GetComponent <Image>();
                if (wq.name == GameManager.Instance.watertank[0].part.waterQuality)
                {
                    items[i].content.text = "착용함";
                    pb.state = partstate.puted;
                }
                else if (wq.buy)
                {
                    items[i].content.text = "구매함";
                    pb.state = partstate.buyed;
                }
                else
                {
                    items[i].content.text = "가격 " + wq.price + "$";
                    pb.state = partstate.notbuyed;
                }
                i++;
            }
            CategorySelect();
            break;

        case Item_Ty._Oxygen:
            foreach (string key in GameManager.Instance.oxygen_parts.Keys)
            {
                _Oxygen ox = GameManager.Instance.oxygen_parts[key];
                items[i].image.sprite  = GameManager.Instance.sprites[key];
                items[i].itemname.text = ox.name;
                partButton pb     = items[i].GetComponent <partButton>();
                Interface  tempIf = GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._partshopTab];
                pb.panel = tempIf.gameObject;
                pb.text  = tempIf.childs[0].GetComponent <Text>();
                pb.part  = tempIf.childs[1].GetComponent <Text>();
                pb.image = tempIf.childs[2].GetComponent <Image>();
                if (ox.name == GameManager.Instance.watertank[0].part.oxygen)
                {
                    items[i].content.text = "착용함";
                    pb.state = partstate.puted;
                }
                else if (ox.buy)
                {
                    items[i].content.text = "구매함";
                    pb.state = partstate.buyed;
                }
                else
                {
                    items[i].content.text = "가격 " + ox.price + "$";
                    pb.state = partstate.notbuyed;
                }
                i++;
            }
            CategorySelect();
            break;

        case Item_Ty._Volume:
            foreach (string key in GameManager.Instance.volume_parts.Keys)
            {
                _Volume vo = GameManager.Instance.volume_parts[key];
                items[i].image.sprite  = GameManager.Instance.sprites[key];
                items[i].itemname.text = vo.name;
                partButton pb     = items[i].GetComponent <partButton>();
                Interface  tempIf = GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._partshopTab];
                pb.panel = tempIf.gameObject;
                pb.text  = tempIf.childs[0].GetComponent <Text>();
                pb.part  = tempIf.childs[1].GetComponent <Text>();
                pb.image = tempIf.childs[2].GetComponent <Image>();
                if (vo.name == GameManager.Instance.watertank[0].part.volume)
                {
                    items[i].content.text = "착용함";
                    pb.state = partstate.puted;
                    GameManager.Instance.watertank[0].volume = vo.size;
                    GameManager.Instance.watertank[1].volume = vo.size;
                }
                else if (vo.buy)
                {
                    items[i].content.text = "구매함";
                    pb.state = partstate.buyed;
                }
                else
                {
                    items[i].content.text = "가격 " + vo.price + "$";
                    pb.state = partstate.notbuyed;
                }
                i++;
            }
            CategorySelect();
            break;

        case Item_Ty._Collection:
            foreach (string key in GameManager.Instance.sharks.Keys)
            {
                _SharkData sd = GameManager.Instance.sharks[key];
                items[i].image.sprite  = GameManager.Instance.sprites[key];
                items[i].itemname.text = sd.name;
                items[i].content.text  = "등급 " + sd.special;
                i++;
            }
            break;

        case Item_Ty._Inventory:
            foreach (string key in GameManager.Instance.foods.Keys)
            {
                _Food fd = GameManager.Instance.foods[key];
                items[i].image.sprite = GameManager.Instance.sprites[key];
                items[i].content.text = fd.count.ToString();
                i++;
            }
            break;

        case Item_Ty._Tank1:
            for (; i < GameManager.Instance.watertank[0].sharks.Count; i++)
            {
                _SharkData sd = GameManager.Instance.sharks[GameManager.Instance.watertank[0].sharks[i].name];
                items[i].image.sprite  = GameManager.Instance.sprites[sd.name];
                items[i].itemname.text = GameManager.Instance.watertank[0].sharks[i].stress.ToString();
                items[i].content.text  = GameManager.Instance.watertank[0].sharks[i].curSize.ToString();
                stress += GameManager.Instance.watertank[0].sharks[i].stress;
            }
            if (GameManager.Instance.watertank[0].sharks.Count != 0)
            {
                stress /= GameManager.Instance.watertank[0].sharks.Count;
            }
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank1].childs[2].GetComponent <Text>().text = GameManager.Instance.watertank[0].waterQuality.ToString();
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank1].childs[3].GetComponent <Text>().text = stress.ToString();
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank1].childs[4].GetComponent <Button>().onClick.RemoveAllListeners();
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank1].childs[4].GetComponent <Button>().onClick.AddListener(delegate { Sell(0); });
            break;

        case Item_Ty._Tank2:
            for (; i < GameManager.Instance.watertank[1].sharks.Count; i++)
            {
                _SharkData sd = GameManager.Instance.sharks[GameManager.Instance.watertank[1].sharks[i].name];
                items[i].image.sprite  = GameManager.Instance.sprites[sd.name];
                items[i].itemname.text = GameManager.Instance.watertank[1].sharks[i].stress.ToString();
                items[i].content.text  = GameManager.Instance.watertank[1].sharks[i].curSize.ToString();
                stress += GameManager.Instance.watertank[1].sharks[i].stress;
            }
            if (GameManager.Instance.watertank[1].sharks.Count != 0)
            {
                stress /= GameManager.Instance.watertank[1].sharks.Count;
            }
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank2].childs[2].GetComponent <Text>().text = GameManager.Instance.watertank[1].waterQuality.ToString();
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank2].childs[3].GetComponent <Text>().text = stress.ToString();
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank2].childs[4].GetComponent <Button>().onClick.RemoveAllListeners();
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._Tank2].childs[4].GetComponent <Button>().onClick.AddListener(delegate { Sell(1); });
            break;

        case Item_Ty._SharkShop:
            foreach (string key in GameManager.Instance.sharks.Keys)
            {
                _SharkData sd = GameManager.Instance.sharks[key];
                items[i].image.sprite  = GameManager.Instance.sprites[key];
                items[i].itemname.text = sd.name;
                items[i].content.text  = "가격 " + sd.price + "$";
                items[i].index         = i;
                i++;
            }
            GameManager.Instance.interfaceManager.defaultIf[(int)_DefaultInterface._TextEditor].GetComponent <SharkPlus>().SelectShark(0);
            break;
        }
    }