添加攻击力、护甲、三围的百分比属性

This commit is contained in:
milimoe 2024-12-05 01:24:47 +08:00
parent a0728946f1
commit 8225daf073
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
8 changed files with 124 additions and 19 deletions

View File

@ -784,6 +784,113 @@ namespace Oshima.Core.Controllers
}
}
[HttpPost("zb")]
public string EquipItem([FromQuery] long? qq = null, [FromQuery] int? c = null, [FromQuery] int? i = null)
{
try
{
long userid = qq ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11));
int characterIndex = c ?? 0;
int itemIndex = i ?? 0;
PluginConfig pc = new("saved", userid.ToString());
pc.LoadConfig();
if (pc.Count > 0)
{
User user = FunGameService.GetUser(pc);
Character? character = null;
Item? item = null;
if (characterIndex > 0 && characterIndex <= user.Inventory.Characters.Count)
{
character = user.Inventory.Characters.ToList()[characterIndex - 1];
}
else
{
return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!");
}
if (itemIndex > 0 && itemIndex <= user.Inventory.Items.Count)
{
item = user.Inventory.Items.ToList()[itemIndex - 1];
if ((int)item.ItemType >= (int)ItemType.MagicCardPack && (int)item.ItemType <= (int)ItemType.Accessory && item.EquipSlotType == EquipSlotType.None)
{
// nothing
}
else
{
return NetworkUtility.JsonSerialize($"这个物品无法被装备!");
}
}
else
{
return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的物品!");
}
if (character != null && item != null && character.Equip(item))
{
return NetworkUtility.JsonSerialize($"装备成功!");
}
else
{
return NetworkUtility.JsonSerialize($"装备失败!可能是角色、物品不存在或者其他原因。");
}
}
else
{
return NetworkUtility.JsonSerialize(noSaved);
}
}
catch (Exception e)
{
return NetworkUtility.JsonSerialize(e.ToString());
}
}
[HttpPost("qxzb")]
public string UnEquipItem([FromQuery] long? qq = null, [FromQuery] int? c = null, [FromQuery] int? i = null)
{
try
{
long userid = qq ?? Convert.ToInt64("10" + Verification.CreateVerifyCode(VerifyCodeType.NumberVerifyCode, 11));
int characterIndex = c ?? 0;
EquipSlotType type = (EquipSlotType)(i ?? 0);
PluginConfig pc = new("saved", userid.ToString());
pc.LoadConfig();
if (pc.Count > 0)
{
User user = FunGameService.GetUser(pc);
Character? character = null;
if (characterIndex > 0 && characterIndex <= user.Inventory.Characters.Count)
{
character = user.Inventory.Characters.ToList()[characterIndex - 1];
}
else
{
return NetworkUtility.JsonSerialize($"没有找到与这个序号相对应的角色!");
}
if (character != null && character.UnEquip(type) != null)
{
return NetworkUtility.JsonSerialize($"取消装备成功!");
}
else
{
return NetworkUtility.JsonSerialize($"取消装备失败!可能是角色、物品不存在或者其他原因。");
}
}
else
{
return NetworkUtility.JsonSerialize(noSaved);
}
}
catch (Exception e)
{
return NetworkUtility.JsonSerialize(e.ToString());
}
}
[HttpGet("reload")]
public string Relaod([FromQuery] long? master = null)
{

View File

@ -110,10 +110,16 @@ namespace Oshima.Core.Utils
magic.Level = (int)item.QualityType switch
{
2 => 2,
3 => 2,
4 => 3,
5 => 3,
6 => 4,
_ => 1
};
if (magic.Level > 1)
{
item.Name += $" +{magic.Level - 1}";
}
item.Skills.Active = magic;
// 初始化属性值
@ -181,17 +187,12 @@ namespace Oshima.Core.Utils
Skill skill = Factory.OpenFactory.GetInstance<Skill>(item.Id, item.Name, []);
GenerateAndAddEffectsToMagicCard(skill, str, agi, intelligence);
if (magic.Level > 1)
{
item.Name += $" +{magic.Level - 1}";
magic.Name += $" +{magic.Level - 1}";
}
skill.Level = 1;
List<string> strings = [];
if (str > 0) strings.Add($"{str:0.##} 点力量");
if (agi > 0) strings.Add($"{agi:0.##} 点敏捷");
if (intelligence > 0) strings.Add($"{intelligence:0.##} 点智力");
item.Description = $"包含魔法:{item.Skills.Active.Name}\r\n" +
item.Description = $"包含魔法:{item.Skills.Active.Name + (item.Skills.Active.Level > 1 ? $" +{item.Skills.Active.Level - 1}" : "")}\r\n" +
$"增加角色属性:{string.Join("", strings)}";
item.Skills.Passives.Add(skill);
}

View File

@ -3,10 +3,7 @@ using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Model;
using Oshima.FunGame.OshimaModules;
using Oshima.FunGame.OshimaModules.Characters;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
using Oshima.FunGame.OshimaModules.Items;
using Oshima.FunGame.OshimaModules.Skills;
namespace Oshima.Core.Utils

View File

@ -17,12 +17,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectGained(Character character)
{
= character.BaseAGI * ;
character.ExAGI += ;
character.ExAGIPercentage += ;
}
public override void OnEffectLost(Character character)
{
character.ExAGI -= ;
character.ExAGIPercentage -= ;
}
public override void OnAttributeChanged(Character character)

View File

@ -17,12 +17,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectGained(Character character)
{
= character.BaseATK * ;
character.ExATK2 += ;
character.ExATKPercentage += ;
}
public override void OnEffectLost(Character character)
{
character.ExATK2 -= ;
character.ExATKPercentage -= ;
}
public override void OnAttributeChanged(Character character)

View File

@ -17,12 +17,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectGained(Character character)
{
= character.BaseDEF * ;
character.ExDEF2 += ;
character.ExDEFPercentage += ;
}
public override void OnEffectLost(Character character)
{
character.ExDEF2 -= ;
character.ExDEFPercentage -= ;
}
public override void OnAttributeChanged(Character character)

View File

@ -17,12 +17,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectGained(Character character)
{
= character.BaseINT * ;
character.ExINT += ;
character.ExINTPercentage += ;
}
public override void OnEffectLost(Character character)
{
character.ExINT -= ;
character.ExINTPercentage -= ;
}
public override void OnAttributeChanged(Character character)

View File

@ -17,12 +17,12 @@ namespace Oshima.FunGame.OshimaModules.Effects.OpenEffects
public override void OnEffectGained(Character character)
{
= character.BaseSTR * ;
character.ExSTR += ;
character.ExSTRPercentage += ;
}
public override void OnEffectLost(Character character)
{
character.ExSTR -= ;
character.ExSTRPercentage -= ;
}
public override void OnAttributeChanged(Character character)