ToolTipManager

xml에 있는 능력에 대한 설명을 entity 위에 마우스를 올릴 시에 간단한 툴팁으로 보여준다.

< ToolTip >

xml의 설명

    <row>
        <NUM>1</NUM>
        <NAME>도발</NAME>
        <CONTENT>도발이 달린 몬스터를 우선적으로 공격하여야 한다.</CONTENT>
        <CODE>1</CODE>
    </row>

ToolTip에 들어갈 내용 생성

    public string XMLToText(int index,Entity entity) 
    {
        string contents = "";
        if (entity.ablcode1 == 2)
        {
            contents += "소환 : 몬스터 소환 시 ";
            foreach (var row in entity.link)
            {
                XDocument document = XDocument.Load(@"C:\nexon_maplestory_battle_monsters_league_s\Assets\Resources\CARD\xml\monster.xml");
                var books = from item in document.Descendants("row")
                            where (item.Element("CODE").Value == row.ToString())
                            select new
                            {
                                name = item.Element("NAME").Value
                            };
                foreach (var eow in books)
                {
                    contents += eow.name + ", ";
                }
            }
            contents = contents.Substring(0,contents.Length-2);
            contents += "을(를) 소환한다.";
            return contents;
        }
        else if(entity.ablcode1 == 3)
        {
            contents += "소환 : 이 몬스터가 죽을 시 ";
            foreach (var row in entity.link)
            {
                XDocument document = XDocument.Load(@"C:\nexon_maplestory_battle_monsters_league_s\Assets\Resources\CARD\xml\monster.xml");
                var books = from item in document.Descendants("row")
                            where (item.Element("CODE").Value == row.ToString())
                            select new
                            {
                                name = item.Element("NAME").Value
                            };
                foreach (var eow in books)
                {
                    contents += eow.name + ", ";
                }
            }
            contents = contents.Substring(0,contents.Length-2);
            contents += "을(를) 소환한다.";
            return contents;
        }
        else if(entity.ablcode1 == 13)
        {
            if(entity.code == 122254)
            {
                contents = "부활 : 이 몬스터가 사망 시 공격력이 2 감소한 상태로 부활한다.";
            }
            else
            {
                contents = "부활 : 이 몬스터가 사망 시 방어력이 1 증가한 상태로 부활한다.(최대 5번)";
            }
            return contents;
        }
        else if(entity.ablcode1 ==16)
        {
            if(entity.code<=140283)
            {
                contents = "몬스터 소환 시 세트 효과를 가진 몬스터가 필드 위에 있을 경우 공격력, 방어력 1 증가";
            }
            else
            {
                contents = "몬스터 소환 시 세트 효과를 가진 몬스터가 필드 위에 있을 경우 공격력, 방어력 2 증가";
            }
            return contents;
        }
        else
        {
            TextAsset textAsset = (TextAsset)Resources.Load("CARD/xml/monabl");
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(textAsset.text);
            XmlNodeList nodes = xmlDoc.SelectNodes("root/row");
            foreach (XmlNode node in nodes)
            {
                if (node.SelectSingleNode("NUM").InnerText == index.ToString())
                {

                    contents = node.SelectSingleNode("NAME").InnerText + " : " + node.SelectSingleNode("CONTENT").InnerText;
                    break;

                }
            }
            return contents;
        }
    }

미리 생성해둔 ToolTip panel 활성화

    public void Tool(Entity entity)
    {
        if (entity.ablcode1 != 0)
        {
            tooltip.SetActive(true);
            tooltip.transform.position = Input.mousePosition; // ToolTip panel은 마우스를 따라다닌다.
            text.text = XMLToText(entity.ablcode1,entity);
        }
    }

ToolTip 비활성화

    public void ToolOut()
    {
        tooltip.SetActive(false);
    }