private void OnArmorChanged()
            {
                var flags = _flags & DAMAGE_LEVEL_MASK;

                var index = (int)((_unit.Armor.Ratio(_unit.ArmorMax)) * 4);

                if (index < 3)
                {
                    flags |= _damageLevels[index];
                }

                if (_flags == flags)
                {
                    return;
                }

                _flags             = flags;
                _unit.UpdateTypes |= UnitUpdateTypes.State;
            }
            public void SetFlag(UnitStateFlags flag, bool value)
            {
                var flags = _flags;

                if (value)
                {
                    flags |= flag;
                }
                else
                {
                    flags &= ~flag;
                }

                if (_flags == flags)
                {
                    return;
                }

                _flags             = flags;
                _unit.UpdateTypes |= UnitUpdateTypes.State;
            }
 private bool HasFlag(UnitStateFlags flag)
 {
     return((_flags & flag) > 0);
 }