# /*
#  *  BJ函数优化 -- Pro.WidgetLift
#  *
#  *  By actboy168
#  *
#  */
#
#ifndef INCLUDE_BJ_OPTIMIZATION_PRO_WIDGET_LIFT_H
#define INCLUDE_BJ_OPTIMIZATION_PRO_WIDGET_LIFT_H
#
# /*
#  *  1.GetUnitState(unit, UNIT_STATE_LIFE) 替换为 GetWidgetLife(unit)
#  *  2.死亡判断改用更为精确的数值
#  */
#
#  undef  GetUnitStateSwap
#  define GetUnitStateSwap(state, unit)                      \
     YDTRIGGER_COMMON_SWITCH(GET_UNIT_STATE_SWAP_## state, ( \
       GetWidgetLife(unit),                                  \
       GetUnitState(unit, UNIT_STATE_MAX_LIFE),              \
       GetUnitState(unit, UNIT_STATE_MANA),                  \
       GetUnitState(unit, UNIT_STATE_MAX_MANA),              \
       ))
#
#  define GET_UNIT_STATE_SWAP_UNIT_STATE_LIFE     0
#  define GET_UNIT_STATE_SWAP_UNIT_STATE_MAX_LIFE 1
#  define GET_UNIT_STATE_SWAP_UNIT_STATE_MANA     2
#  define GET_UNIT_STATE_SWAP_UNIT_STATE_MAX_MANA 3
#
#  undef  SetUnitLifeBJ
#  define SetUnitLifeBJ(unit, value)                             SetWidgetLife(unit, RMaxBJ(0, value))
#
#  undef  IsUnitDeadBJ
#  define IsUnitDeadBJ(unit)                                     (GetWidgetLife(unit) <= 0.405)
#
#  undef  IsUnitAliveBJ
#  define IsUnitAliveBJ(unit)                                    (GetWidgetLife(unit) >  0.405)
#
#  undef  IsDestructableDeadBJ
#  define IsDestructableDeadBJ(d)                                (GetDestructableLife(d) <= 0.405)
#
#  undef  IsDestructableAliveBJ
#  define IsDestructableAliveBJ(d)                               (GetDestructableLife(d) > 0.405)
#
#endif
