mirror of
https://github.com/milimoe/FunGame-Testing.git
synced 2025-12-05 08:09:04 +00:00
200 lines
7.4 KiB
C#
200 lines
7.4 KiB
C#
using Milimoe.FunGame.Core.Entity;
|
|
|
|
namespace Milimoe.FunGame.Testing.Desktop.Solutions
|
|
{
|
|
public partial class ShowDetail : Form
|
|
{
|
|
private CharacterCreator? CharacterCreator { get; }
|
|
private SkillCreator? SkillCreator { get; }
|
|
private ItemCreator? ItemCreator { get; }
|
|
private int NowClick { get; set; } = -1;
|
|
private BaseEntity? BaseEntity { get; set; }
|
|
|
|
public ShowDetail(CharacterCreator? characterCreator, SkillCreator? skillCreator, ItemCreator? itemCreator)
|
|
{
|
|
InitializeComponent();
|
|
CharacterCreator = characterCreator;
|
|
SkillCreator = skillCreator;
|
|
ItemCreator = itemCreator;
|
|
Text = "详细信息查看";
|
|
}
|
|
|
|
public void SetText(int nowClick, BaseEntity? entity, string text)
|
|
{
|
|
NowClick = nowClick;
|
|
BaseEntity = entity;
|
|
if (nowClick == 0)
|
|
{
|
|
删技能.Enabled = true;
|
|
删物品.Enabled = true;
|
|
加技能.Enabled = true;
|
|
加物品.Enabled = true;
|
|
编辑.Enabled = true;
|
|
}
|
|
else if (nowClick == 1)
|
|
{
|
|
删技能.Enabled = false;
|
|
删物品.Enabled = false;
|
|
加技能.Enabled = false;
|
|
加物品.Enabled = false;
|
|
编辑.Enabled = true;
|
|
}
|
|
else if (nowClick == 2)
|
|
{
|
|
删技能.Enabled = true;
|
|
删物品.Enabled = false;
|
|
加技能.Enabled = true;
|
|
加物品.Enabled = false;
|
|
编辑.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
删技能.Enabled = false;
|
|
删物品.Enabled = false;
|
|
加技能.Enabled = false;
|
|
加物品.Enabled = false;
|
|
编辑.Enabled = false;
|
|
}
|
|
详细内容.Text = text;
|
|
}
|
|
|
|
private void 编辑_Click(object sender, EventArgs e)
|
|
{
|
|
if (NowClick == 0 && BaseEntity is Character c)
|
|
{
|
|
CharacterCreator?.OpenCreator(c);
|
|
}
|
|
else if (NowClick == 1 && BaseEntity is Skill s)
|
|
{
|
|
SkillCreator?.OpenCreator(s);
|
|
}
|
|
else if (NowClick == 2 && BaseEntity is Item i)
|
|
{
|
|
ItemCreator?.OpenCreator(i);
|
|
}
|
|
}
|
|
|
|
private void 加物品_Click(object sender, EventArgs e)
|
|
{
|
|
if (NowClick == 0 && ItemCreator != null && BaseEntity is Character c)
|
|
{
|
|
if (ItemCreator.LoadedItems.Count != 0)
|
|
{
|
|
ShowList l = new();
|
|
l.AddListItem(ItemCreator.LoadedItems.OrderBy(kv => kv.Value.Id).Select(kv => EntityCreator.GetItemDisplayName(ItemCreator, kv.Key)).ToArray());
|
|
l.ShowDialog();
|
|
string selected = l.SelectItem;
|
|
Item? i = ItemCreator.LoadedItems.Where(kv => EntityCreator.GetItemDisplayName(ItemCreator, kv.Key) == selected).Select(kv => kv.Value).FirstOrDefault();
|
|
if (c != null && i != null)
|
|
{
|
|
Item? i2 = EntityCreator.从模组加载器中获取物品(i.Id, i.Name, i.ItemType);
|
|
if (i2 != null)
|
|
{
|
|
i.SetPropertyToItemModuleNew(i2);
|
|
i = i2;
|
|
}
|
|
c.Equip(i);
|
|
详细内容.Text = c.GetInfo();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("物品列表为空!");
|
|
}
|
|
}
|
|
}
|
|
|
|
private void 加技能_Click(object sender, EventArgs e)
|
|
{
|
|
if (NowClick == 0 && SkillCreator != null && BaseEntity is Character c)
|
|
{
|
|
if (SkillCreator.LoadedSkills.Count != 0)
|
|
{
|
|
ShowList l = new();
|
|
l.AddListItem(SkillCreator.LoadedSkills.OrderBy(kv => kv.Value.Id).Where(kv => kv.Value.SkillType != Core.Library.Constant.SkillType.Item).Select(kv => EntityCreator.GetSkillDisplayName(SkillCreator, kv.Key)).ToArray());
|
|
l.ShowDialog();
|
|
string selected = l.SelectItem;
|
|
Skill? s = SkillCreator.LoadedSkills.Where(kv => EntityCreator.GetSkillDisplayName(SkillCreator, kv.Key) == selected).Select(kv => kv.Value).FirstOrDefault();
|
|
if (c != null && s != null)
|
|
{
|
|
Skill? s2 = EntityCreator.从模组加载器中获取技能(s.Id, s.Name, s.SkillType);
|
|
if (s2 != null)
|
|
{
|
|
s = s2;
|
|
}
|
|
s.Character = c;
|
|
c.Skills.Add(s);
|
|
详细内容.Text = c.GetInfo();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("技能列表为空!");
|
|
}
|
|
}
|
|
else if (NowClick == 2)
|
|
{
|
|
MessageBox.Show("再说吧,暂不支持。");
|
|
}
|
|
}
|
|
|
|
private void 删物品_Click(object sender, EventArgs e)
|
|
{
|
|
if (NowClick == 0 && BaseEntity is Character c)
|
|
{
|
|
if (c != null)
|
|
{
|
|
if (c.Items.Count != 0)
|
|
{
|
|
ShowList l = new();
|
|
l.AddListItem(c.Items.OrderBy(i => i.Id).Select(i => i.GetIdName()).ToArray());
|
|
l.ShowDialog();
|
|
string selected = l.SelectItem;
|
|
Item? i = c.Items.Where(i => i.GetIdName() == selected).FirstOrDefault();
|
|
if (i != null)
|
|
{
|
|
c.UnEquip(c.EquipSlot.GetEquipItemToSlot(i));
|
|
详细内容.Text = c.GetInfo();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("物品列表为空!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void 删技能_Click(object sender, EventArgs e)
|
|
{
|
|
if (NowClick == 0 && BaseEntity is Character c)
|
|
{
|
|
if (c != null)
|
|
{
|
|
if (c.Skills.Count != 0)
|
|
{
|
|
ShowList l = new();
|
|
l.AddListItem(c.Skills.OrderBy(s => s.Id).Select(s => s.GetIdName()).ToArray());
|
|
l.ShowDialog();
|
|
string selected = l.SelectItem;
|
|
Skill? s = c.Skills.Where(s => s.GetIdName() == selected).FirstOrDefault();
|
|
if (s != null)
|
|
{
|
|
c.Skills.Remove(s);
|
|
详细内容.Text = c.GetInfo();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("技能列表为空!");
|
|
}
|
|
}
|
|
}
|
|
else if (NowClick == 2)
|
|
{
|
|
MessageBox.Show("再说吧,暂不支持。");
|
|
}
|
|
}
|
|
}
|
|
}
|