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);
}