Files
Kg.SeaTime/Service/Application.Web/Controllers/Pub/EquController.cs
2026-06-18 18:54:22 +08:00

924 lines
30 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace Application.Web.Controllers.Pub;
/// <summary>
/// 装备接口
/// </summary>
[Route("[controller]/[action]")]
[ApiController]
[Authorize]
public class EquController : ControllerBase
{
private readonly IGameEquService _equService;
private readonly IUnitUserAttrService _attrService;
private readonly IUnitUserService _userService;
private readonly IGameDicService _dicService;
private readonly IMessageService _messageService;
private readonly IGameGoodsService _goodsService;
public EquController(IGameEquService equService, IUnitUserAttrService attrService, IUnitUserService userService,
IGameDicService dicService, IMessageService messageService, IGameGoodsService goodsService)
{
_equService = equService;
_attrService = attrService;
_userService = userService;
_dicService = dicService;
_messageService = messageService;
_goodsService = goodsService;
}
/// <summary>
/// 获取装备信息
/// </summary>
/// <param name="equId"></param>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetEquInfo(int? equId, string? ueId)
{
game_equ equInfo = new game_equ();
game_equ_suit suit = new game_equ_suit();
unit_user_equ ueInfo = new unit_user_equ();
UserModel user = new UserModel();
if (equId != 0)
{
equInfo = await _equService.GetEquInfo((int)equId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.suitCode != "0" && !string.IsNullOrEmpty(equInfo.suitCode))
{
suit = await _equService.GetEuqSuitInfo(equInfo.suitCode);
}
}
else
{
ueInfo = await _equService.GetUserEquInfo(ueId);
if (ueInfo == null)
{
return PoAction.Message("装备不存在!");
}
equInfo = await _equService.GetEquInfo((int)ueInfo.equId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (ueInfo.suitCode != "0" && !string.IsNullOrEmpty(ueInfo.suitCode))
{
suit = await _equService.GetEuqSuitInfo(ueInfo.suitCode);
}
user = await UserModelTool.GetUserView(ueInfo.owerId);
}
return PoAction.Ok(new { equ = equInfo, suit, equData = ueInfo, user });
}
/// <summary>
/// 获取套装详情
/// </summary>
/// <param name="suitCode"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetEquSuitInfo(string suitCode)
{
var data = await _equService.GetEuqSuitInfo(suitCode);
if (data == null)
{
return PoAction.Message("套装不存在!");
}
return PoAction.Ok(data);
}
/// <summary>
/// 绑定操作
/// </summary>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> EquLock(string ueId)
{
var userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
equInfo.isLock = equInfo.isLock == 0 ? 1 : 0;
bool result = await _equService.UpdateUserEquInfo(equInfo);
if (result)
{
string msg = equInfo.isLock == 1 ? "成功绑定装备!" : "成功解除装备绑定!";
return PoAction.Ok(true, msg);
}
else
{
return PoAction.Message("操作失败,请稍后尝试!");
}
}
/// <summary>
/// 获取用户穿戴的装备
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetUserOnEqu()
{
string userId = StateHelper.userId;
var data = await _equService.GetUserOnEqu(userId);
var suit = await _equService.GetUserEquSuit(userId);
return PoAction.Ok(new { data, suit });
}
/// <summary>
/// 鉴定装备
/// </summary>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> ApprEqu(string ueId)
{
string userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.isAppr == 1)
{
return PoAction.Message("装备已鉴定!");
}
var resEqu = await _equService.GetEquInfo((int)equInfo.equId);
if (resEqu.isAppr == 0)
{
return PoAction.Message("装备数据异常,联系客服!");
}
var myGoods = await _goodsService.GetUserGoodsCount(userId, GameConfig.GameEquApprGoods);
if (myGoods < 1)
{
return PoAction.Message("暂无装备鉴定符!");
}
if (await _goodsService.UpdateUserGoods(userId, 0, GameConfig.GameEquApprGoods, 1, "鉴定装备"))
{
equInfo.minAtk = RandomAssist.GetFormatedNumeric((int)resEqu.minAtk, (int)resEqu.maxAtk);
equInfo.maxAtk = RandomAssist.GetFormatedNumeric((int)equInfo.minAtk, (int)resEqu.maxAtk);
string[] def = resEqu.defense.Split('-');
equInfo.Defense = RandomAssist.GetFormatedNumeric(Convert.ToInt32(def[0]), Convert.ToInt32(def[1]));
string[] agi = resEqu.agility.Split('-');
equInfo.Agility = RandomAssist.GetFormatedNumeric(Convert.ToInt32(agi[0]), Convert.ToInt32(agi[1]));
string[] mor = resEqu.morale.Split('-');
equInfo.Morale = RandomAssist.GetFormatedNumeric(Convert.ToInt32(mor[0]), Convert.ToInt32(mor[1]));
string[] blo = resEqu.blood.Split('-');
equInfo.Blood = RandomAssist.GetFormatedNumeric(Convert.ToInt32(blo[0]), Convert.ToInt32(blo[1]));
equInfo.isAppr = 1;
if (await _equService.UpdateUserEquInfo(equInfo))
{
return PoAction.Ok(true, "装备鉴定成功!");
}
else
{
return PoAction.Message("鉴定失败,请稍后尝试!");
}
}
else
{
return PoAction.Message("鉴定失败,请稍后尝试!");
}
}
/// <summary>
/// 穿/卸装备
/// </summary>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> DownOrUpEqu(string ueId, string? de)
{
string userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.isOn == 0) //穿装
{
if (equInfo.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
if (equInfo.useEndTime < TimeExtend.GetTimeStampSeconds)
{
return PoAction.Message("装备已过期!");
}
int myLev = await _attrService.GetUserLev(userId);
if (equInfo.lev > myLev)
{
return PoAction.Message($"等级达到{equInfo.lev}级可穿戴!");
}
if (equInfo.sex != nameof(EquEnum.Sex.Default))
{
var userInfo = await _userService.GetUserInfoByUserId(userId);
string needSex = equInfo.sex == nameof(EquEnum.Sex.Girl)
? nameof(GameEnum.Sex.)
: nameof(GameEnum.Sex.);
if (userInfo.sex != needSex)
{
return PoAction.Message($"该装备只允许{needSex}性角色穿戴!");
}
}
var userOnEqu = await _equService.GetUserOnEqu(userId);
if (equInfo.canEqualUp > 0)
{
int onCount = userOnEqu.Count(it => it.equId == equInfo.equId);
if (onCount >= equInfo.canEqualUp)
{
return PoAction.Message($"该装备最多穿戴{equInfo.canEqualUp}件!");
}
}
bool isOk = true;
if (string.IsNullOrEmpty(de))
{
int MaxCount = GameTool.GetEquPlaceCount(equInfo.code);
int OnCount = userOnEqu.Count(it => it.code == equInfo.code) + 1;
if (OnCount > MaxCount)
{
return PoAction.Message($"该部位装备最多穿戴{MaxCount}件!", 100);
}
}
else
{
var DownOnEqu = await _equService.GetUserEquInfo(de);
if (DownOnEqu == null)
{
return PoAction.Message("装备不存在!");
}
if (userOnEqu.Any(it => it.ueId == de) == false)
{
return PoAction.Message("装备未穿戴!");
}
if (DownOnEqu.code != equInfo.code)
{
return PoAction.Message("装备部位不一致!");
}
isOk = await _equService.EquOnOrDown(DownOnEqu, 0);
}
if (isOk)
{
bool result = await _equService.EquOnOrDown(equInfo, 1);
if (result)
{
return PoAction.Ok(true, "穿装成功!");
}
else
{
return PoAction.Message("穿装失败,请稍后尝试");
}
}
else
{
return PoAction.Message("穿装失败,请稍后尝试");
}
}
else //卸装
{
bool result = await _equService.EquOnOrDown(equInfo, 0);
if (result)
{
return PoAction.Ok(true, "卸装成功!");
}
else
{
return PoAction.Message("卸装失败,请稍后尝试");
}
}
}
/// <summary>
/// 获取可穿戴装备
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetCanOnEqu(int type)
{
string code = nameof(EquEnum.EquPlace.Hold);
switch (type)
{
case 1:
code = nameof(EquEnum.EquPlace.Hold);
break;
case 2:
code = nameof(EquEnum.EquPlace.Vice);
break;
case 3:
code = nameof(EquEnum.EquPlace.Head);
break;
case 4:
code = nameof(EquEnum.EquPlace.Wear);
break;
case 5:
code = nameof(EquEnum.EquPlace.Waist);
break;
case 6:
code = nameof(EquEnum.EquPlace.Foot);
break;
case 7:
code = nameof(EquEnum.EquPlace.Ornaments);
break;
case 8:
code = nameof(EquEnum.EquPlace.Fashion);
break;
case 9:
code = nameof(EquEnum.EquPlace.Wing);
break;
case 10:
code = nameof(EquEnum.EquPlace.Decorate);
break;
}
string userId = StateHelper.userId;
var userOnEqu = await _equService.GetUserOnEqu(userId);
var NoEqu = userOnEqu.FindAll(it => it.code == code).Select(it => it.ueId).ToList();
var CanEqu = await _equService.GetUserEquData(userId, code, NoEqu);
long onTime = TimeExtend.GetTimeStampSeconds;
CanEqu = CanEqu.FindAll(it => it.isAppr == 1 && it.useEndTime > onTime);
CanEqu = CanEqu.OrderByDescending(it => it.lev).ToList();
return PoAction.Ok(CanEqu);
}
/// <summary>
/// 获取激活套装属性
/// </summary>
/// <param name="suitCode"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetUserOnSuitInfo(string suitCode)
{
var userId = StateHelper.userId;
var onSuit = await _equService.GetUserEquSuit(userId);
var suit = onSuit.Find(it => it.suitCode == suitCode);
if (suit == null)
{
return PoAction.Message("套装不存在!");
}
var data = await _equService.GetEuqSuitInfo(suitCode);
if (data == null)
{
return PoAction.Message("套装不存在!");
}
return PoAction.Ok(new { data, suit });
}
/// <summary>
/// 获取装备觉醒所需
/// </summary>
/// <param name="ue"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetEquAwakenInfo(string ue)
{
string userId = StateHelper.userId;
var equData = await _equService.GetUserEquInfo(ue);
if (equData == null)
{
return PoAction.Message("装备不存在!");
}
if (equData.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equData.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
if (equData.useEndTime < TimeExtend.GetTimeStampSeconds)
{
return PoAction.Message("装备已过期!");
}
CheckTowerNeed result = new CheckTowerNeed();
if (equData.EquAwaken.Count == 0)
{
var dicConfig = await _dicService.GetDicInfo(nameof(GameEnum.DicCode.Awaken));
List<TowerNeed> need = JsonConvert.DeserializeObject<List<TowerNeed>>(dicConfig.sign);
result = await GameBus.CheckNeed(userId, need);
}
else
{
var upAwaken =
await _equService.GetEquAwakenInfoByLev(equData.EquAwaken[0].atId, equData.EquAwaken[0].lev + 1);
if (upAwaken == null)
{
return PoAction.Message("觉醒已达到上限!");
}
result = await GameBus.CheckNeed(userId, upAwaken.need);
}
return PoAction.Ok(result);
}
/// <summary>
/// 觉醒装备
/// </summary>
/// <param name="ue"></param>
/// <param name="type">0重置1正常觉醒</param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> HandleEquAwaken(string ue, int type)
{
string userId = StateHelper.userId;
var equData = await _equService.GetUserEquInfo(ue);
if (equData == null)
{
return PoAction.Message("装备不存在!");
}
if (equData.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equData.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
if (equData.useEndTime < TimeExtend.GetTimeStampSeconds)
{
return PoAction.Message("装备已过期!");
}
EquAwakenData onAwaken = new EquAwakenData();
game_equ_awaken newAwaken = new game_equ_awaken();
CheckTowerNeed result = new CheckTowerNeed();
if (type == 0) //重置
{
newAwaken = await _equService.GetRandomOneAwakenByCode(equData.code);
if (newAwaken == null)
{
return PoAction.Message("该部件装备不可觉醒!");
}
onAwaken = newAwaken.levAttr.Find(it => it.lev == 1);
var dicConfig = await _dicService.GetDicInfo(nameof(GameEnum.DicCode.Awaken));
List<TowerNeed> need = JsonConvert.DeserializeObject<List<TowerNeed>>(dicConfig.sign);
result = await GameBus.CheckNeed(userId, need);
}
else
{
if (equData.EquAwaken.Count == 0)
{
newAwaken = await _equService.GetRandomOneAwakenByCode(equData.code);
if (newAwaken == null)
{
return PoAction.Message("该部件装备不可觉醒!");
}
onAwaken = newAwaken.levAttr.Find(it => it.lev == 1);
var dicConfig = await _dicService.GetDicInfo(nameof(GameEnum.DicCode.Awaken));
List<TowerNeed> need = JsonConvert.DeserializeObject<List<TowerNeed>>(dicConfig.sign);
result = await GameBus.CheckNeed(userId, need);
}
else
{
var upAwaken =
await _equService.GetEquAwakenInfoByLev(equData.EquAwaken[0].atId, equData.EquAwaken[0].lev + 1);
if (upAwaken == null)
{
return PoAction.Message("觉醒已达到上限!");
}
newAwaken = await _equService.GetEquAwakenInfo(equData.EquAwaken[0].atId);
onAwaken = upAwaken;
result = await GameBus.CheckNeed(userId, upAwaken.need);
}
}
if (result.result == false)
{
return PoAction.Message("不满足觉醒条件!");
}
if (await GameBus.UpdateBag(userId, 0, result.Needs, "觉醒装备"))
{
if (RandomAssist.CheakRandom(onAwaken.success))
{
EquAwaken awaken = new EquAwaken();
awaken.atId = newAwaken.atId;
awaken.name = newAwaken.name;
awaken.lev = onAwaken.lev;
awaken.awaken = onAwaken.attr;
equData.EquAwaken = [awaken];
if (await _equService.UpdateUserEquInfo(equData, true, "觉醒", "装备觉醒"))
{
string msg = $"[{equData.equName}]装备的特性【{awaken.name}】升至{awaken.lev}级!";
await _messageService.SendBroadcast(userId, nameof(MessageEnum.BroadcastCode.Promote), msg);
//此处为觉醒成功,返回相关数据
var nextAwaken =
await _equService.GetEquAwakenInfoByLev(equData.EquAwaken[0].atId,
equData.EquAwaken[0].lev + 1);
var nextResult = new CheckTowerNeed()
{
result = false,
Needs = new List<TowerNeed>()
};
if (nextAwaken != null)
{
nextResult = await GameBus.CheckNeed(userId, nextAwaken.need);
}
return PoAction.Ok(new { state = 1, awaken = equData.EquAwaken, result = nextResult }, "觉醒成功!");
}
else
{
return PoAction.Message("觉醒异常,请稍后尝试!");
}
}
else
{
//此处为觉醒成功,返回相关数据
var nextAwaken =
await _equService.GetEquAwakenInfoByLev(equData.EquAwaken[0].atId,
equData.EquAwaken[0].lev + 1);
var nextResult = new CheckTowerNeed()
{
result = false,
Needs = new List<TowerNeed>()
};
if (nextAwaken != null)
{
nextResult = await GameBus.CheckNeed(userId, nextAwaken.need);
}
return PoAction.Ok(new { state = 0, awaken = equData.EquAwaken, result = nextResult }, "觉醒失败!");
}
}
else
{
return PoAction.Message("觉醒异常,请稍后尝试!");
}
return PoAction.Ok(result);
}
/// <summary>
/// 获取强化信息
/// </summary>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetEquUpInfo(string ueId)
{
string userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
long time = TimeExtend.GetTimeStampSeconds;
if (equInfo.useEndTime < time)
{
return PoAction.Message("装备已过期!");
}
if (equInfo.isIntensify == 0)
{
return PoAction.Message("装备不可强化!");
}
bool isMax = false;
int upLev = (int)equInfo.intensifyLev + 1;
var needs = await _equService.GetUserEquUpData(upLev);
if (needs == null)
{
isMax = true;
}
CheckTowerNeeds result = new CheckTowerNeeds();
result.result = false;
result.Needs = new List<TowerNeeds>();
if (!isMax)
{
result = await GameBus.CheckNeeds(userId, needs.needData);
}
return PoAction.Ok(new
{
equData = equInfo,
isMax,
result
});
}
/// <summary>
/// 强化装备
/// </summary>
/// <param name="parms"></param>
/// <returns></returns>
[HttpPost]
public async Task<IPoAction> HandleEquUp([FromBody] EquUpParms parms)
{
string ueId = parms.ueId;
string userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
long time = TimeExtend.GetTimeStampSeconds;
if (equInfo.useEndTime < time)
{
return PoAction.Message("装备已过期!");
}
if (equInfo.isIntensify == 0)
{
return PoAction.Message("装备不可强化!");
}
int upLev = (int)equInfo.intensifyLev + 1;
var needs = await _equService.GetUserEquUpData(upLev);
if (needs == null)
{
return PoAction.Message("已达到最大强化等级!");
}
List<TowerNeeds> reqNeeds = JsonConvert.DeserializeObject<List<TowerNeeds>>(parms.needs);
//验证材料
foreach (var item in needs.needData)
{
var onNeed = reqNeeds.Find(it => it.Id == item.Id);
if (item.NeedItem.Any(it => it.code == onNeed.code && it.parameter == onNeed.parameter) == false &&
item.code != onNeed.code && item.parameter != onNeed.parameter)
{
return PoAction.Message("材料错误!");
}
}
var result = await GameBus.CheckNeeds(userId, reqNeeds);
if (result.result == false)
{
return PoAction.Message("材料不足!");
}
if (await GameBus.UpdateBag(userId, 0, reqNeeds, $"强化装备:{ueId}"))
{
CheckTowerNeeds nexResult = new CheckTowerNeeds();
nexResult.result = false;
nexResult.Needs = new List<TowerNeeds>();
bool isMax = false;
int state = 0;
int okNum = (int)needs.okChance;
if (RandomAssist.CheakRandom(okNum))
{
state = 1;
equInfo.intensifyLev = upLev;
equInfo.isDeal = result.isDeal;
equInfo.isGive = result.isGive;
if (await _equService.UpdateUserEquInfo(equInfo, true, "强化", "强化装备") == false)
{
return PoAction.Message("强化异常,请联系客服!");
}
var nextNeeds = await _equService.GetUserEquUpData((int)equInfo.intensifyLev + 1);
if (nextNeeds == null)
{
isMax = true;
}
else
{
var nexts = nextNeeds.euId == needs.euId ? reqNeeds : nextNeeds.needData;
nexResult = await GameBus.CheckNeeds(userId, nexts);
}
if (equInfo.intensifyLev >= 60)
{
string msg = $"[{equInfo.equName}]装备强化至{equInfo.intensifyLev}级!";
await _messageService.SendBroadcast(userId, nameof(MessageEnum.BroadcastCode.Promote), msg);
}
}
else //执行材料返还
{
List<TowerGet> retProp = new List<TowerGet>();
foreach (var item in reqNeeds)
{
if (item.retCount > 0 && item.isOp == 1)
{
TowerGet temp = new TowerGet()
{
code = item.code,
name = item.name,
parameter = item.parameter,
count = item.retCount
};
retProp.Add(temp);
}
}
if (retProp.Count > 0)
{
await GameBus.UpdateBag(userId, 1, retProp, "强化失败,返还");
}
nexResult = await GameBus.CheckNeeds(userId, reqNeeds);
}
return PoAction.Ok(new
{
state,
equData = equInfo,
isMax,
result = nexResult
});
}
else
{
return PoAction.Message("强化错误,请稍后尝试!");
}
}
/// <summary>
/// 获取洗练装备属性
/// </summary>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetEquQualityInfo(string ueId)
{
string userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
long time = TimeExtend.GetTimeStampSeconds;
if (equInfo.useEndTime < time)
{
return PoAction.Message("装备已过期!");
}
List<string> CanOp = new List<string>()
{ "Hold", "Vice", "Head", "Wear", "Waist", "Foot", "Ornaments" };
if (!CanOp.Contains(equInfo.code))
{
return PoAction.Message("该部件不可洗练!");
}
var dicConfig = await _dicService.GetDicInfo(nameof(GameEnum.DicCode.Quality));
List<TowerNeed> need = JsonConvert.DeserializeObject<List<TowerNeed>>(dicConfig.sign);
CheckTowerNeed result = await GameBus.CheckNeed(userId, need);
return PoAction.Ok(new
{
equData = equInfo,
result
});
}
/// <summary>
/// 洗练装备
/// </summary>
/// <param name="ueId"></param>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> HandleEquQuality(string ueId)
{
string userId = StateHelper.userId;
var equInfo = await _equService.GetUserEquInfo(ueId);
if (equInfo == null)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.userId != userId)
{
return PoAction.Message("装备不存在!");
}
if (equInfo.isAppr == 0)
{
return PoAction.Message("装备未鉴定!");
}
long time = TimeExtend.GetTimeStampSeconds;
if (equInfo.useEndTime < time)
{
return PoAction.Message("装备已过期!");
}
List<string> CanOp = new List<string>()
{ "Hold", "Vice", "Head", "Wear", "Waist", "Foot", "Ornaments" };
if (!CanOp.Contains(equInfo.code))
{
return PoAction.Message("该部件不可洗练!");
}
var dicConfig = await _dicService.GetDicInfo(nameof(GameEnum.DicCode.Quality));
List<TowerNeed> need = JsonConvert.DeserializeObject<List<TowerNeed>>(dicConfig.sign);
CheckTowerNeed result = await GameBus.CheckNeed(userId, need);
if (result.result)
{
if (await GameBus.UpdateBag(userId, 0, need, "洗练装备"))
{
var attr = await _equService.GetRandomEquAttr(equInfo.code, (int)equInfo.lev);
equInfo.quality = attr.Count;
equInfo.qualityName = GameTool.GetEquQualityName(attr.Count);
equInfo.EquAttr = attr;
if (await _equService.UpdateUserEquInfo(equInfo, true, "洗练装备", "洗练装备"))
{
return PoAction.Ok(true, "洗练成功!");
}
else
{
return PoAction.Message("洗练失败,请稍后尝试!");
}
}
else
{
return PoAction.Message("洗练失败,请稍后尝试!");
}
}
else
{
return PoAction.Message("洗练失败,请稍后尝试!");
}
}
}