示例#1
0
        private FormulaMode GetFormulaMode()
        {
            FormulaMode retVal = FormulaMode.Normal;

            if (intAttrControl1.Visible && mPercentCheckbox.Checked)
            {
                retVal = FormulaMode.Percent;
            }
            //else if (mIncreaseYearsPro)
            //    retVal = FormulaMode.Increment;
            return(retVal);
        }
示例#2
0
        // (<formula>,<targetAttribute>, <targetValue>, [positions],<mode>)

        /// <summary>
        /// Expects input like
        /// ApplyFormula('true','RightGlove','None', [QB])
        /// ApplyFormula('RightGlove <> None','RightGlove','None', [QB])
        /// ApplyFormula('Speed > 0','RightGlove','None', [QB])
        /// ApplyFormula('Speed > 80','RightGlove','None', [QB])
        /// ApplyFormula('Speed > 80','Stamina','95', [QB], Percent)
        /// </summary>
        /// <param name="line"></param>
        private void ApplyFormula(string line)
        {
            int index  = line.IndexOf("(") + 1;
            int endPos = line.IndexOf(']') + 1;

            if (index != 0 && endPos != 0)
            {
                FormulaMode fm        = FormulaMode.Normal;
                string      argString = line.Substring(index).Replace(")", ""); // get rid of last paren too.
                string[]    args      = argString.Split(new char[] { ',' });
                // need 6 args
                string        formula   = args[0].Trim("' ".ToCharArray());
                string        attr      = args[1].Trim("' ".ToCharArray());
                string        val       = args[2].Trim("' ".ToCharArray());
                List <string> positions = GetFormulaPositions(line);

                if (line.ToLower().Contains("add"))
                {
                    fm = FormulaMode.Percent;
                }
                else if (line.ToLower().Contains("increment"))
                {
                    fm = FormulaMode.Add;
                }

                string results =
                    Tool.ApplyFormula(formula, attr, val, positions, fm, true);
                string message = "";
                if (results == null)
                {
                    message = String.Format("Warning. No players selected by formula:\n\t\"{0}\"", line);
                }
                else if (results.StartsWith("Exception!"))
                {
                    message = "Error, Check formula\n" + results;
                }
                else
                {
                    message = "#Affected  Players\n" + results;
                }
                Console.WriteLine(message);
            }
        }