From 77404f6e97930460b8be9e91b74ac48f5058f433 Mon Sep 17 00:00:00 2001 From: milimoe Date: Sun, 22 Jun 2025 05:12:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Library/Main.cs | 107 +++++++++++++++++++++------------ Library/Tests/CharacterTest.cs | 44 ++++++++++++++ Library/Tests/FunGame.cs | 5 +- 3 files changed, 115 insertions(+), 41 deletions(-) create mode 100644 Library/Tests/CharacterTest.cs diff --git a/Library/Main.cs b/Library/Main.cs index 0e7cfa4..00da98b 100644 --- a/Library/Main.cs +++ b/Library/Main.cs @@ -1,6 +1,9 @@ +using System.Text; using Microsoft.Extensions.Logging; using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Milimoe.FunGame.Testing.Tests; using Oshima.FunGame.OshimaModules; using Oshima.FunGame.OshimaServers.Service; using Oshima.FunGame.WebAPI.Controllers; @@ -22,47 +25,75 @@ im.Load(); FunGameService.InitFunGame(); FunGameSimulation.InitFunGameSimulation(); - -foreach (Character c in FunGameConstant.Characters) +//new CharacterTest(); +//foreach (Character c in FunGameConstant.Characters) +//{ +// Character character = c.Copy(); +// character.Recovery(); +// FunGameService.AddCharacterSkills(character, 1, 1, 1); +// Console.WriteLine(character.GetInfo()); +//} +//foreach (Skill s in FunGameConstant.Skills) +//{ +// s.Level = 1; +// Console.WriteLine(s.GetInfo()); +//} +//foreach (Skill m in FunGameConstant.Magics) +//{ +// m.Level = 1; +// Console.WriteLine(m.GetInfo()); +//} +//foreach (Character c in FunGameConstant.Characters) +//{ +// Character character = c.Copy(); +// character.Level = 60; +// character.Recovery(); +// FunGameService.AddCharacterSkills(character, 1, 6, 6); +// Console.WriteLine(character.GetInfo()); +//} +//foreach (Skill s in FunGameConstant.Skills) +//{ +// s.Level = 6; +// Console.WriteLine(s.GetInfo()); +//} +//foreach (Skill m in FunGameConstant.Magics) +//{ +// m.Level = 8; +// Console.WriteLine(m.GetInfo()); +//} +Character character = new Oshima.FunGame.OshimaModules.Characters.CustomCharacter(0, ""); +character.SetLevel(60); +foreach (Item i in FunGameConstant.Equipment) { - Character character = c.Copy(); - character.Recovery(); - FunGameService.AddCharacterSkills(character, 1, 1, 1); - Console.WriteLine(character.GetInfo()); -} -foreach (Skill s in FunGameConstant.Skills) -{ - s.Level = 1; - Console.WriteLine(s.GetInfo()); -} -foreach (Skill m in FunGameConstant.Magics) -{ - m.Level = 1; - Console.WriteLine(m.GetInfo()); -} -foreach (Character c in FunGameConstant.Characters) -{ - Character character = c.Copy(); - character.Level = 60; - character.Recovery(); - FunGameService.AddCharacterSkills(character, 1, 6, 6); - Console.WriteLine(character.GetInfo()); -} -foreach (Skill s in FunGameConstant.Skills) -{ - s.Level = 6; - Console.WriteLine(s.GetInfo()); -} -foreach (Skill m in FunGameConstant.Magics) -{ - m.Level = 8; - Console.WriteLine(m.GetInfo()); -} -foreach (Item i in FunGameConstant.AllItems) -{ - if (i.ItemType == Milimoe.FunGame.Core.Library.Constant.ItemType.GiftBox && i.Name != "毕业礼包") continue; + character.Equip(i); + if (i.ItemType == ItemType.GiftBox && i.Name != "毕业礼包") continue; Console.WriteLine(i.ToString()); } +Console.WriteLine(character.GetInfo()); +//foreach (Item i in FunGameConstant.Equipment) +//{ +// StringBuilder builder = new(); + +// builder.AppendLine($"【{i.Name}】"); + +// string itemquality = ItemSet.GetQualityTypeName(i.QualityType); +// string itemtype = ItemSet.GetItemTypeName(i.ItemType) + (i.ItemType == ItemType.Weapon && i.WeaponType != WeaponType.None ? "-" + ItemSet.GetWeaponTypeName(i.WeaponType) : ""); +// if (itemtype != "") itemtype = $" {itemtype}"; + +// builder.AppendLine($"{itemquality + itemtype}"); + +// if (i.Description != "") +// { +// builder.AppendLine("物品描述:" + i.Description); +// } + +// if (i.BackgroundStory != "") +// { +// builder.AppendLine($"\"{i.BackgroundStory}\""); +// } + +// Console.WriteLine(builder.ToString()); +//} Console.ReadKey(); //Dictionary rounds = FunGameSimulation.ReadRoundsFromZip("rounds_archive.zip") ?? []; diff --git a/Library/Tests/CharacterTest.cs b/Library/Tests/CharacterTest.cs new file mode 100644 index 0000000..7c0002e --- /dev/null +++ b/Library/Tests/CharacterTest.cs @@ -0,0 +1,44 @@ +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Constant; +using Milimoe.FunGame.Core.Model; +using Oshima.FunGame.OshimaModules.Characters; +using Oshima.FunGame.OshimaModules.Effects.PassiveEffects; +using Oshima.FunGame.OshimaModules.Skills; +using Oshima.FunGame.OshimaServers.Service; + +namespace Milimoe.FunGame.Testing.Tests +{ + internal class CharacterTest + { + public CharacterTest() + { + GamingQueue queue = new(Console.WriteLine); + Character character = new CustomCharacter(0, ""); + character.SetLevel(60); + Console.WriteLine(character.GetInfo()); + Item item = FunGameConstant.Equipment.Where(i => i.Id == 12515).First(); + character.Equip(item); + Console.WriteLine(character.GetInfo()); + Character enemy = new CustomCharacter(1, "敌人"); + Console.ReadKey(); + enemy.SetLevel(60); + Skill skill = new 虚弱领域(enemy); + skill.Level += 8; + skill.OnSkillCasted(queue, enemy, [character]); + character.UnEquip(EquipSlotType.Armor); + Console.WriteLine(character.GetInfo()); + Console.ReadKey(); + character.Equip(item); + Console.WriteLine(character.GetInfo()); + Console.ReadKey(); + Effect e = character.Effects.First(e => e is 虚弱); + character.Effects.Remove(e); + e.OnEffectLost(character); + Console.WriteLine(character.GetInfo()); + Console.ReadKey(); + character.UnEquip(EquipSlotType.Armor); + Console.WriteLine(character.GetInfo()); + Console.ReadKey(); + } + } +} diff --git a/Library/Tests/FunGame.cs b/Library/Tests/FunGame.cs index 4c46145..e5aba08 100644 --- a/Library/Tests/FunGame.cs +++ b/Library/Tests/FunGame.cs @@ -169,9 +169,8 @@ namespace Milimoe.FunGame.Testing.Tests // 显示角色信息 if (PrintOut) characters.ForEach(c => Console.WriteLine(c.GetInfo())); - // 因赋予了装备,所以清除排序重新排 - gamingQueue.ClearQueue(); - gamingQueue.InitCharacterQueue(characters); + // 初始化队列,准备开始游戏 + gamingQueue.InitActionQueue(); gamingQueue.SetCharactersToAIControl(false, characters); gamingQueue.SetCharactersToAIControl(true, player); gamingQueue.CustomData.Add("player", player);