using Cal; using Cal.DataTable; using System; using System.Collections.Generic; using System.Text; namespace ET { public class AddHpGoodsEffect : GoodsEffect { public override string Init(Unit unit, GoodsBase goodsBase,bool isLock =false) { base.unit = unit; GoodsBase = goodsBase; return Run(); } private string Run() { ModifierContainerComponent modifierContainerComponent = unit.GetComponent(); if (modifierContainerComponent.HasState(ModifierStateType.禁用药水)) { return "禁用药水"; } NumericComponent num = unit.GetComponent(); if (num.GetAsInt(NumericType.Hp) >= num.GetAsInt(NumericType.MaxHp)) { return "Hp已满,无法使用!"; } int hp = MathHelper.RoundToInt(GoodsBase.PercentHp * num.GetAsInt(NumericType.MaxHp)) + GoodsBase.FixedHp; num.AddSet(NumericType.Hp, hp); Game.EventSystem.Publish(new EventType.ChangeUnitCharacter { unit = unit }).Coroutine(); return string.Empty; } public override async ETVoid Execute() { await ETTask.CompletedTask; } } }