public void RemoveValue(AttrType type, long value, bool isFirstTry)
 {
     if (value != 0L)
     {
         CfgFormula <long> cfgFormula = this.GetCfgFormula <long>(type);
         if (cfgFormula == null)
         {
             if (isFirstTry)
             {
                 this.RemoveValue(type, (int)value, false);
             }
         }
         else
         {
             long val = cfgFormula.Val;
             cfgFormula.RemoveArg(value);
             if (cfgFormula.Val != val)
             {
                 this.OnAttrChanged(type, val, cfgFormula.Val);
             }
         }
     }
 }
 public void RemoveValue(AttrType type, int value, bool isFirstTry)
 {
     if (value != 0)
     {
         CfgFormula <int> cfgFormula = this.GetCfgFormula <int>(type);
         if (cfgFormula == null)
         {
             if (isFirstTry)
             {
                 this.RemoveValue(type, (long)value, false);
             }
         }
         else
         {
             int val = cfgFormula.Val;
             cfgFormula.RemoveArg(value);
             if (cfgFormula.Val != val)
             {
                 this.OnAttrChanged(type, (long)val, (long)cfgFormula.Val);
             }
         }
     }
 }