添加角色三围成长显示

This commit is contained in:
milimoe 2024-12-08 14:29:27 +08:00
parent 0cc5647fa4
commit 078a63545f
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E

View File

@ -349,6 +349,107 @@ namespace Oshima.Core.Controllers
} }
} }
[HttpPost("rename")]
public string ReName([FromQuery] long? qq = null)
{
long userid = qq ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11));
PluginConfig pc = new("saved", userid.ToString());
pc.LoadConfig();
if (pc.Count > 0)
{
User user = FunGameService.GetUser(pc);
int reduce = 1500;
if (user.Inventory.Credits >= reduce)
{
user.Inventory.Credits -= reduce;
}
else
{
return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {reduce} 呢,无法改名!");
}
user.Username = FunGameService.GenerateRandomChineseUserName();
if (user.Inventory.Characters.FirstOrDefault(c => c.Id == user.Id) is Character character)
{
character.Name = user.Username;
}
if (user.Inventory.Name.EndsWith("的库存"))
{
user.Inventory.Name = user.Username + "的库存";
}
user.LastTime = DateTime.Now;
pc.Add("user", user);
pc.SaveConfig();
return NetworkUtility.JsonSerialize($"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameCurrency},你的新名字是【{user.Username}】");
}
else
{
return NetworkUtility.JsonSerialize(noSaved);
}
}
[HttpPost("randomcustom")]
public string RandomCustomCharacter([FromQuery] long? qq = null)
{
long userid = qq ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11));
PluginConfig pc = new("saved", userid.ToString());
pc.LoadConfig();
if (pc.Count > 0)
{
User user = FunGameService.GetUser(pc);
if (user.Inventory.Characters.FirstOrDefault(c => c.Id == user.Id) is Character character)
{
int reduce = 20;
if (user.Inventory.Materials >= reduce)
{
user.Inventory.Materials -= reduce;
}
else
{
return NetworkUtility.JsonSerialize($"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {reduce} 呢,无法重随自建角色属性!");
}
PrimaryAttribute oldPA = character.PrimaryAttribute;
double oldSTR = character.InitialSTR;
double oldAGI = character.InitialAGI;
double oldINT = character.InitialINT;
double oldSTRG = character.STRGrowth;
double oldAGIG = character.AGIGrowth;
double oldINTG = character.INTGrowth;
Character temp = new CustomCharacter(0, "");
character.PrimaryAttribute = temp.PrimaryAttribute;
character.InitialSTR = temp.InitialSTR;
character.InitialAGI = temp.InitialAGI;
character.InitialINT = temp.InitialINT;
character.STRGrowth = temp.STRGrowth;
character.AGIGrowth = temp.AGIGrowth;
character.INTGrowth = temp.INTGrowth;
user.LastTime = DateTime.Now;
pc.Add("user", user);
pc.SaveConfig();
return NetworkUtility.JsonSerialize($"消耗 {reduce} {General.GameplayEquilibriumConstant.InGameMaterial},你的自建角色已更改初始属性:\r\n" +
$"核心属性:{CharacterSet.GetPrimaryAttributeName(oldPA)} => {CharacterSet.GetPrimaryAttributeName(character.PrimaryAttribute)}\r\n" +
$"初始力量:{oldSTR}+{oldSTRG}/Lv=> {character.InitialSTR}+{character.STRGrowth}/Lv\r\n" +
$"初始敏捷:{oldAGI}+{oldAGIG}/Lv=> {character.InitialAGI}+{character.AGIGrowth}/Lv\r\n" +
$"初始智力:{oldINT}+{oldINTG}/Lv=> {character.InitialINT}+{character.INTGrowth}/Lv");
}
else
{
return NetworkUtility.JsonSerialize($"你似乎没有自建角色,请发送【生成自建角色】创建!");
}
}
else
{
return NetworkUtility.JsonSerialize(noSaved);
}
}
[HttpPost("inventoryinfo")] [HttpPost("inventoryinfo")]
public string GetInventoryInfo([FromQuery] long? qq = null) public string GetInventoryInfo([FromQuery] long? qq = null)
{ {
@ -633,17 +734,17 @@ namespace Oshima.Core.Controllers
list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}£º{user.Inventory.Materials:0.00}"); list.Add($"{General.GameplayEquilibriumConstant.InGameMaterial}£º{user.Inventory.Materials:0.00}");
List<Character> characters = [.. user.Inventory.Characters]; List<Character> characters = [.. user.Inventory.Characters];
int total = characters.Count; int total = characters.Count;
int maxPage = (int)Math.Ceiling((double)total / 12); int maxPage = (int)Math.Ceiling((double)total / 6);
if (maxPage < 1) maxPage = 1; if (maxPage < 1) maxPage = 1;
if (showPage <= maxPage) if (showPage <= maxPage)
{ {
List<object> inventory = [.. characters]; List<object> inventory = [.. characters];
Dictionary<int, object> dict = inventory.Select((obj, index) => new { Index = index + 1, Value = obj }).ToDictionary(k => k.Index, v => v.Value); Dictionary<int, object> dict = inventory.Select((obj, index) => new { Index = index + 1, Value = obj }).ToDictionary(k => k.Index, v => v.Value);
List<int> seq = [.. FunGameService.GetPage(dict.Keys, showPage, 12)]; List<int> seq = [.. FunGameService.GetPage(dict.Keys, showPage, 6)];
bool showCharacter = true; bool showCharacter = true;
int characterCount = 0; int characterCount = 0;
int prevSequence = dict.Take((showPage - 1) * 12).Count(); int prevSequence = dict.Take((showPage - 1) * 6).Count();
foreach (int index in seq) foreach (int index in seq)
{ {