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

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")] [HttpGet("reload")]
public string Relaod([FromQuery] long? master = null) public string Relaod([FromQuery] long? master = null)
{ {

View File

@ -110,10 +110,16 @@ namespace Oshima.Core.Utils
magic.Level = (int)item.QualityType switch magic.Level = (int)item.QualityType switch
{ {
2 => 2, 2 => 2,
3 => 2,
4 => 3, 4 => 3,
5 => 3,
6 => 4, 6 => 4,
_ => 1 _ => 1
}; };
if (magic.Level > 1)
{
item.Name += $" +{magic.Level - 1}";
}
item.Skills.Active = magic; item.Skills.Active = magic;
// 初始化属性值 // 初始化属性值
@ -181,17 +187,12 @@ namespace Oshima.Core.Utils
Skill skill = Factory.OpenFactory.GetInstance<Skill>(item.Id, item.Name, []); Skill skill = Factory.OpenFactory.GetInstance<Skill>(item.Id, item.Name, []);
GenerateAndAddEffectsToMagicCard(skill, str, agi, intelligence); GenerateAndAddEffectsToMagicCard(skill, str, agi, intelligence);
if (magic.Level > 1)
{
item.Name += $" +{magic.Level - 1}";
magic.Name += $" +{magic.Level - 1}";
}
skill.Level = 1; skill.Level = 1;
List<string> strings = []; List<string> strings = [];
if (str > 0) strings.Add($"{str:0.##} 点力量"); if (str > 0) strings.Add($"{str:0.##} 点力量");
if (agi > 0) strings.Add($"{agi:0.##} 点敏捷"); if (agi > 0) strings.Add($"{agi:0.##} 点敏捷");
if (intelligence > 0) strings.Add($"{intelligence: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)}"; $"增加角色属性:{string.Join("", strings)}";
item.Skills.Passives.Add(skill); 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.Entity;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Model; using Milimoe.FunGame.Core.Model;
using Oshima.FunGame.OshimaModules;
using Oshima.FunGame.OshimaModules.Characters;
using Oshima.FunGame.OshimaModules.Effects.OpenEffects; using Oshima.FunGame.OshimaModules.Effects.OpenEffects;
using Oshima.FunGame.OshimaModules.Items;
using Oshima.FunGame.OshimaModules.Skills; using Oshima.FunGame.OshimaModules.Skills;
namespace Oshima.Core.Utils namespace Oshima.Core.Utils

View File

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

View File

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

View File

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

View File

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

View File

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