添加战斗相关状态

This commit is contained in:
milimoe 2024-09-05 01:03:07 +08:00
parent c0a4163326
commit 306b0ec148
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E

View File

@ -145,9 +145,14 @@ namespace Milimoe.FunGame.Core.Entity
public double ExHP2 { get; set; } = 0; public double ExHP2 { get; set; } = 0;
/// <summary> /// <summary>
/// 生命值 = 基础生命值 + 额外生命值 + 额外生命值2 /// 最大生命值 = 基础生命值 + 额外生命值 + 额外生命值2
/// </summary> /// </summary>
public double HP => BaseHP + ExHP + ExHP2; public double MaxHP => BaseHP + ExHP + ExHP2;
/// <summary>
/// 当前生命值 [ 战斗相关 ]
/// </summary>
public double HP { get; set; } = 0;
/// <summary> /// <summary>
/// 初始魔法值 [ 初始设定 ] /// 初始魔法值 [ 初始设定 ]
@ -171,12 +176,17 @@ namespace Milimoe.FunGame.Core.Entity
public double ExMP2 { get; set; } = 0; public double ExMP2 { get; set; } = 0;
/// <summary> /// <summary>
/// 魔法值 = 基础魔法值 + 额外魔法值 + 额外魔法值2 /// 最大魔法值 = 基础魔法值 + 额外魔法值 + 额外魔法值2
/// </summary> /// </summary>
public double MP => BaseMP + ExMP + ExMP2; public double MaxMP => BaseMP + ExMP + ExMP2;
/// <summary> /// <summary>
/// 爆发能量 [ 战斗相关 ] /// 当前魔法值 [ 战斗相关 ]
/// </summary>
public double MP { get; set; } = 0;
/// <summary>
/// 当前爆发能量 [ 战斗相关 ]
/// </summary> /// </summary>
public double EP { get; set; } = 0; public double EP { get; set; } = 0;
@ -585,6 +595,32 @@ namespace Milimoe.FunGame.Core.Entity
return new(); return new();
} }
/// <summary>
/// 回复状态至满
/// </summary>
/// <param name="EP"></param>
public void Recovery(double EP = -1)
{
HP = MaxHP;
MP = MaxMP;
if (EP != -1) this.EP = EP;
}
/// <summary>
/// 按时间回复状态
/// </summary>
/// <param name="time"></param>
/// <param name="EP"></param>
public void Recovery(int time, double EP = -1)
{
if (time > 0)
{
HP = Math.Min(MaxHP, Calculation.Round2Digits(HP + HR * time));
MP = Math.Min(MaxMP, Calculation.Round2Digits(MP + MR * time));
if (EP != -1) this.EP = EP;
}
}
/// <summary> /// <summary>
/// 比较一个角色(只比较 <see cref="Name"/> /// 比较一个角色(只比较 <see cref="Name"/>
/// </summary> /// </summary>
@ -674,6 +710,7 @@ namespace Milimoe.FunGame.Core.Entity
Skills = new(Skills), Skills = new(Skills),
Items = new(Items), Items = new(Items),
}; };
c.Recovery();
return c; return c;
} }
} }