示例#1
0
    public IEnumerator Initialize()
    {
        nyangs = XMLManager <XMLNyang> .Load(ResourcePath.xmlNyang);

        ResourcesManager resourceManager = ResourcesManager.getInstance;

        List <XMLNyang> .Enumerator eNyang = nyangs.GetEnumerator();

        while (eNyang.MoveNext())
        {
            XMLNyang nyang = eNyang.Current;

            List <string> paths = nyang.GetResourcePath();

            List <string> .Enumerator path = paths.GetEnumerator();

            while (path.MoveNext())
            {
                string resourcePath = path.Current;

                resourceManager.LoadResource(RESOURCE_TYPE.TEXTURE, resourcePath);
            }
        }

        yield return(null);
    }
示例#2
0
    public IEnumerator Initialize()
    {
        nyangInfo = new List <XMLNyangInfo>();

        List <XMLNyangInfo> infoList = XMLManager <XMLNyangInfo> .Load(ResourcePath.xmlNyangInfo);

        NyangManager nyangManager = NyangManager.getInstance;

        List <XMLNyangInfo> .Enumerator eInfo = infoList.GetEnumerator();

        if (eInfo.MoveNext())
        {
            XMLNyangInfo info = eInfo.Current;

            info.SetData(ENyangRank.Normal, "cat_n_tipnyang", 1);

            nyangInfo.Add(new XMLNyangInfo(info));
        }

        while (eInfo.MoveNext())
        {
            XMLNyangInfo info = eInfo.Current;

            if (nyangManager.InvalidID(info.id))
            {
                XMLNyang data = nyangManager.GetNyang(info.id);

                info.SetData(data.rank, data.name, PlayerPrefs.GetInt(string.Format("NyangVisited_{0}", info.id), 0));

                nyangInfo.Add(new XMLNyangInfo(info));
            }
        }

        yield return(null);
    }
示例#3
0
    public void SpawnEventNyang()
    {
        List <XMLNyang> nyangs = NyangManager.getInstance.GetNyangs(EConditionType.Event);

        List <XMLNyang> .Enumerator eNyang = nyangs.GetEnumerator();

        while (eNyang.MoveNext())
        {
            bool appearFlag = true;

            XMLNyang nyang = eNyang.Current;

            int size = nyang.appearType.Length;

            for (int i = 0; i < size; i++)
            {
                if (!AppearConditionManager.getInstance.CheckCondition(nyang.appearType[i], nyang.appear[i]))
                {
                    appearFlag = false;
                }
            }

            if (appearFlag && AvailableSpawn().Exists(n => n.position.Equals(nyang.position)))
            {
                SpawnNyang(nyang);
            }
        }
    }
示例#4
0
    /* DESC :>
     * 생성 조건에 맞는 냥이들 리스트 중, 확률적으로 노멀/랜덤/히든 냥이 생성
     */
    public void SpawnNyang(ENyangPosition position)
    {
        XMLNyang nyangData = new XMLNyang();

        List <XMLNyang> normals;
        List <XMLNyang> rares;
        List <XMLNyang> hidden;

        if (NyangManager.getInstance.GetNyang(position, out normals, out rares, out hidden) == false)
        {
            return;
        }

        bool  bSelected = false;
        float rankRate  = Random.Range(0, 100);

        if (rankRate / 70 >= 1)
        {
            if (rares.Count > 0)
            {
                nyangData = rares[Random.Range(0, rares.Count)];
                bSelected = true;
            }
        }
        else if (rankRate / 40 >= 1)
        {
            if (hidden.Count > 0)
            {
                nyangData = hidden[Random.Range(0, hidden.Count)];
                bSelected = true;
            }
        }

        if (!bSelected)
        {
            if (normals.Count > 0)
            {
                nyangData = normals[Random.Range(0, normals.Count)];
            }
            else
            {
                if (rares.Count > 0)
                {
                    nyangData = rares[Random.Range(0, rares.Count)];
                }
                else if (hidden.Count > 0)
                {
                    nyangData = hidden[Random.Range(0, hidden.Count)];
                }
            }
        }

        SpawnNyang(nyangData);
    }
示例#5
0
    public XMLNyang GetNyang(int id)
    {
        List <XMLNyang> .Enumerator eNyang = nyangs.GetEnumerator();

        while (eNyang.MoveNext())
        {
            XMLNyang nyang = eNyang.Current;

            if (nyang.id.Equals(id))
            {
                return(nyang);
            }
        }

        throw new Exception("Invaild Nyang as ID : " + id);
    }
示例#6
0
    private void SpawnNyang(XMLNyang nyangData)
    {
        GameObject nyangObj = pooling.Get();
        Vector3    position = setNyangPositions[nyangData.position];

        nyangObj.name = nyangData.name;

        Nyang nyang = nyangObj.GetComponent <Nyang>();
        Image image = nyangObj.GetComponent <Image>();

        if (!image)
        {
            image = nyangObj.AddComponent <Image>();
        }

        nyangParents.AttachChild(nyangObj);
        nyang.SetGameObject(nyangObj);

        nyang.SetNyang(nyangData);

        nyangObj.transform.localPosition = position;

        BoxCollider box  = nyangObj.GetComponent <BoxCollider>();
        Rect        rect = nyangObj.GetComponent <RectTransform>().rect;

        box.size = new Vector3(rect.width, rect.height, 1.0f);

        InGameInputController.getInstance.AddTouchableObject(nyang);

        SpawnNotify(nyangData.position);
        NyangInfoManager.getInstance.Visited(nyang.id);

        if (!nyangList.Contains(nyang))
        {
            nyangList.Add(nyang);
        }
    }
示例#7
0
 public void SetNyang(XMLNyang nyang)
 {
     SetNyang(nyang.id, nyang.name, nyang.position, nyang.rank, nyang.appearType, nyang.appear);
 }