/// <summary> /// 战斗过程中, 给battleunit添加伤害(伤害值可正可负, 负值表示增血). /// </summary> /// <returns>单位是否依然活着.</returns> public bool AddDamage(DamageInfo damage, AttackerAttr attackerAttr) { if (GetPropertyValue((int)PropertyTypeEnum.PropertyTypeHP) + damage.Value <= 0) { FatalStrikeEventArg fatalStrikeArg = new FatalStrikeEventArg(); // 致命一击随机事件. ApplyRandEvent(null, RandEventTriggerType.OnFatalStrike, fatalStrikeArg); if (fatalStrikeArg.BlockThisDamage) { return(true); } } ModifyPropertyValue((int)PropertyTypeEnum.PropertyTypeHP, damage.Value); if (GetHP() <= 0) { Die(attackerAttr, damage.DamageType); //return false; } onDamage(damage, attackerAttr); //return true; return(isAlive()); }
public override bool RunScript(RandEventArg argument) { FatalStrikeEventArg fatalStrikeArg = argument as FatalStrikeEventArg; fatalStrikeArg.BlockThisDamage = true; int hpMax = mOwner.GetPropertyValue((int)PropertyTypeEnum.PropertyTypeMaxHP); int manaMax = mOwner.GetPropertyValue((int)PropertyTypeEnum.PropertyTypeMaxMana); // 回满血量和魔量. mOwner.ModifyPropertyValue((int)PropertyTypeEnum.PropertyTypeHP, hpMax); mOwner.ModifyPropertyValue((int)PropertyTypeEnum.PropertyTypeMana, manaMax); // 一次重生之后, 移除buff. return(false); }