diff --git a/Entity/Character/Character.cs b/Entity/Character/Character.cs index 13848f8..6ffd318 100644 --- a/Entity/Character/Character.cs +++ b/Entity/Character/Character.cs @@ -145,9 +145,14 @@ namespace Milimoe.FunGame.Core.Entity public double ExHP2 { get; set; } = 0; /// - /// 生命值 = 基础生命值 + 额外生命值 + 额外生命值2 + /// 最大生命值 = 基础生命值 + 额外生命值 + 额外生命值2 /// - public double HP => BaseHP + ExHP + ExHP2; + public double MaxHP => BaseHP + ExHP + ExHP2; + + /// + /// 当前生命值 [ 战斗相关 ] + /// + public double HP { get; set; } = 0; /// /// 初始魔法值 [ 初始设定 ] @@ -171,12 +176,17 @@ namespace Milimoe.FunGame.Core.Entity public double ExMP2 { get; set; } = 0; /// - /// 魔法值 = 基础魔法值 + 额外魔法值 + 额外魔法值2 + /// 最大魔法值 = 基础魔法值 + 额外魔法值 + 额外魔法值2 /// - public double MP => BaseMP + ExMP + ExMP2; + public double MaxMP => BaseMP + ExMP + ExMP2; /// - /// 爆发能量 [ 战斗相关 ] + /// 当前魔法值 [ 战斗相关 ] + /// + public double MP { get; set; } = 0; + + /// + /// 当前爆发能量 [ 战斗相关 ] /// public double EP { get; set; } = 0; @@ -585,6 +595,32 @@ namespace Milimoe.FunGame.Core.Entity return new(); } + /// + /// 回复状态至满 + /// + /// + public void Recovery(double EP = -1) + { + HP = MaxHP; + MP = MaxMP; + if (EP != -1) this.EP = EP; + } + + /// + /// 按时间回复状态 + /// + /// + /// + 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; + } + } + /// /// 比较一个角色(只比较 ) /// @@ -674,6 +710,7 @@ namespace Milimoe.FunGame.Core.Entity Skills = new(Skills), Items = new(Items), }; + c.Recovery(); return c; } }