12121
This commit is contained in:
@@ -102,10 +102,8 @@ public class FightController : ControllerBase
|
||||
}
|
||||
}
|
||||
|
||||
var otAttr = await _monsterService.GetMonsterAttrModel(keyId, mainId);
|
||||
long dueTime = FightTool.GetFightDueTime(userAttr, otAttr);
|
||||
bool result = await _fightService.AddFight(fightId, areaCode, keyId, mainId, code, scene, mapId, userId,
|
||||
dueTime, exp,
|
||||
exp,
|
||||
copper, petExp, award, pars);
|
||||
if (result)
|
||||
{
|
||||
@@ -177,11 +175,8 @@ public class FightController : ControllerBase
|
||||
long petExp = 0;
|
||||
string award = string.Empty;
|
||||
string pars = "";
|
||||
var userAttr = await _attrService.GetUserAttrModel(userId);
|
||||
var otAttr = await _attrService.GetUserAttrModel(otUser.userId);
|
||||
long dueTime = FightTool.GetFightDueTime(userAttr, otAttr);
|
||||
bool result = await _fightService.AddFight(fightId, areaCode, keyId, otUser.userId, code, onMapInfo.code,
|
||||
onMapInfo.mapId, userId, dueTime, exp,
|
||||
onMapInfo.mapId, userId, exp,
|
||||
copper, petExp, award, pars);
|
||||
if (result)
|
||||
{
|
||||
@@ -227,57 +222,68 @@ public class FightController : ControllerBase
|
||||
|
||||
#region 此处处理战斗
|
||||
|
||||
FightResultModel fightResult = new FightResultModel()
|
||||
{
|
||||
result = -1
|
||||
};
|
||||
if (!string.IsNullOrEmpty(parms.data))
|
||||
{
|
||||
fightResult = JsonConvert.DeserializeObject<FightResultModel>(parms.data);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
//更新攻击
|
||||
var myAttr = await _attrService.GetUserAttrModel(userId, fight.scene);
|
||||
UserAttrModel otAttr = new UserAttrModel();
|
||||
if (fight.code == nameof(GameEnum.FightCode.PVE))
|
||||
{
|
||||
otAttr = await _monsterService.GetMonsterAttrModel(fight.keyId, fight.mainId);
|
||||
if (fightResult.result == 0)
|
||||
{
|
||||
otAttr.blood = otAttr.blood + fightResult.otHarm;
|
||||
otAttr.blood = otAttr.blood < 0 ? 0 : otAttr.blood;
|
||||
otAttr.blood = otAttr.blood > otAttr.upBlood ? otAttr.upBlood : otAttr.blood;
|
||||
await _monsterService.SetMonsterBlood(fight.keyId, otAttr.blood);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fightResult.result == 0)
|
||||
{
|
||||
await _fightService.SetUserFightHarm(fight.mainId, fightResult.otHarm);
|
||||
await _attrService.UpdateUserBlood(fight.mainId, 1, fightResult.otHarm);
|
||||
await _attrService.AddUserLoadState(fight.mainId, fightResult.otStateData);
|
||||
await _fightService.HandelFightEnd(fight.mainId, fightResult.otRemData);
|
||||
}
|
||||
|
||||
otAttr = await _attrService.GetUserAttrModel(fight.mainId, fight.scene);
|
||||
}
|
||||
|
||||
if (fightResult.result == 0)
|
||||
int cool = FightTool.GetFightCool(myAttr.agility, otAttr.agility); //冷却时间
|
||||
|
||||
FightResultModel fightResult = new FightResultModel()
|
||||
{
|
||||
if (otAttr.blood > 0)
|
||||
result = -1
|
||||
};
|
||||
|
||||
if (await _fightService.CheckFightLock(userId, parms.key))
|
||||
{
|
||||
//此处还需要判断冷却时间
|
||||
bool isCool = await _fightService.FightIsCool(userId);
|
||||
if (isCool)
|
||||
{
|
||||
myHarm = fightResult.myHarm;
|
||||
myHarm += await _fightService.GetUserFightHarm(userId);
|
||||
otHarm = fightResult.otHarm;
|
||||
await _attrService.UpdateUserBlood(userId, 1, fightResult.myHarm);
|
||||
await _attrService.AddUserLoadState(userId, fightResult.myStateData);
|
||||
await _fightService.HandelFightEnd(userId, fightResult.myRemData);
|
||||
fightResult = FightCompute.ComputeFight(myAttr, otAttr);
|
||||
if (fightResult.result == 0)
|
||||
{
|
||||
//此处记录冷却时间
|
||||
await _fightService.SetFightCool(userId, cool);
|
||||
otAttr.blood = otAttr.blood + fightResult.otHarm;
|
||||
otAttr.blood = otAttr.blood < 0 ? 0 : otAttr.blood;
|
||||
otAttr.blood = otAttr.blood > otAttr.upBlood ? otAttr.upBlood : otAttr.blood;
|
||||
if (fight.code == nameof(GameEnum.FightCode.PVE))
|
||||
{
|
||||
await _monsterService.SetMonsterBlood(fight.keyId, otAttr.blood);
|
||||
}
|
||||
else
|
||||
{
|
||||
await _fightService.SetUserFightHarm(fight.mainId, fightResult.otHarm);
|
||||
await _attrService.UpdateUserBlood(fight.mainId, 1, fightResult.otHarm);
|
||||
await _attrService.AddUserLoadState(fight.mainId, fightResult.otStateData);
|
||||
await _fightService.HandelFightEnd(fight.mainId, fightResult.otRemData);
|
||||
}
|
||||
|
||||
if (otAttr.blood > 0)
|
||||
{
|
||||
myAttr.blood = myAttr.blood + fightResult.otHarm;
|
||||
myAttr.blood = myAttr.blood < 0 ? 0 : myAttr.blood;
|
||||
myAttr.blood = myAttr.blood > myAttr.upBlood ? myAttr.upBlood : myAttr.blood;
|
||||
|
||||
myHarm = fightResult.myHarm;
|
||||
myHarm += await _fightService.GetUserFightHarm(userId);
|
||||
otHarm = fightResult.otHarm;
|
||||
await _attrService.UpdateUserBlood(userId, 1, fightResult.myHarm);
|
||||
await _attrService.AddUserLoadState(userId, fightResult.myStateData);
|
||||
await _fightService.HandelFightEnd(userId, fightResult.myRemData);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var myAttr = await _attrService.GetUserAttrModel(userId, fight.scene);
|
||||
#endregion
|
||||
|
||||
//结束战斗都此处直接返回
|
||||
if (otAttr.blood < 1 || myAttr.blood < 1)
|
||||
@@ -312,21 +318,19 @@ public class FightController : ControllerBase
|
||||
//获取个人负面
|
||||
var myLoad = await _attrService.GetUserLoadState(userId);
|
||||
|
||||
//冷却时间
|
||||
int cool = FightTool.GetFightCool(myAttr.agility, otAttr.agility);
|
||||
|
||||
|
||||
int exitCopper = otAttr.lev * 5; //退出战斗需要的铜贝
|
||||
string fightKey = await _fightService.SetFightLock(userId);
|
||||
var result = new
|
||||
{
|
||||
myHarm,
|
||||
otHarm,
|
||||
myAttr = myAttr,
|
||||
otAttr = otAttr,
|
||||
myAttr = new { no = myAttr.viceId, name = myAttr.name, blood = myAttr.blood, upBlood = myAttr.upBlood },
|
||||
otAttr = new { no = otAttr.viceId, name = otAttr.name, blood = otAttr.blood, upBlood = otAttr.upBlood },
|
||||
myDrug = myDrug.drug,
|
||||
myLoad = myLoad,
|
||||
exitCopper,
|
||||
cool,
|
||||
key = fightKey
|
||||
};
|
||||
return PoAction.Ok(result);
|
||||
}
|
||||
@@ -631,11 +635,6 @@ public class FightController : ControllerBase
|
||||
return PoAction.Message("该战斗不可复刻挂机!");
|
||||
}
|
||||
|
||||
if (await _fightService.ValidFight(fight,false) == false)
|
||||
{
|
||||
return PoAction.Message("异常的战斗,无法挂机!");
|
||||
}
|
||||
|
||||
var myAttr = await _attrService.GetUserAttrModel(userId, fight.scene);
|
||||
int diffTime = Convert.ToInt32(fight.okTime - fight.addTime);
|
||||
diffTime = diffTime < 300 ? 300 : diffTime;
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
public class FightParms
|
||||
{
|
||||
public string fightId { get; set; }
|
||||
public string data { get; set; }
|
||||
public string key { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user