public override int QueryInt(List <string> path)
        {
            if (path.Count > 1)
            {
                if (String.Equals(path[1], "MaxValue", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(MaxValue.CurrentValue);
                }
                if (String.Equals(path[1], "Bashing", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(bashing);
                }
                if (String.Equals(path[1], "Lethal", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(lethal);
                }
                if (String.Equals(path[1], "Aggravated", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(aggravated);
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return(0);
        }
        public override int QueryInt(List <string> path)
        {
            //only allow this operation if the first column contains string values, so we can use them as a key to find the row we want to modify
            if (path.Count > 2 &&
                columns.Count > 0 &&
                columns[0].defaultValue is TableValue_String)
            {
                string targetRow    = path[1];
                string targetColumn = path[2];
                for (int c = 0; c < columns.Count; ++c)
                {
                    TableColumn column = columns[c];
                    if (String.Equals(column.name, targetColumn, StringComparison.OrdinalIgnoreCase))
                    {
                        for (int r = 0; r < AllRows.Count; ++r)
                        {
                            TableRow row = AllRows[r];
                            if (row.values[0] is TableValue_String rowName)
                            {
                                if (String.Equals(rowName.value, targetRow, StringComparison.OrdinalIgnoreCase))
                                {
                                    if (row.values[c] is TableValue_Numeric targetNumericValue)
                                    {
                                        isCurrentlyIncludedInModFormula = true;
                                        return(targetNumericValue.value.CurrentValue);
                                    }
                                    else if (row.values[c] is TableValue_Range targetRangeValue)
                                    {
                                        if (path.Count > 3)
                                        {
                                            if (String.Equals(path[3], "Short", StringComparison.OrdinalIgnoreCase))
                                            {
                                                isCurrentlyIncludedInModFormula = true;
                                                return(targetRangeValue.shortRange.CurrentValue);
                                            }
                                            else if (String.Equals(path[3], "Medium", StringComparison.OrdinalIgnoreCase))
                                            {
                                                isCurrentlyIncludedInModFormula = true;
                                                return(targetRangeValue.mediumRange.CurrentValue);
                                            }
                                            else if (String.Equals(path[3], "Long", StringComparison.OrdinalIgnoreCase))
                                            {
                                                isCurrentlyIncludedInModFormula = true;
                                                return(targetRangeValue.longRange.CurrentValue);
                                            }
                                        }
                                    }
                                    break;
                                }
                            }
                        }
                        break;
                    }
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return(0);
        }
        public override string QueryString(List <string> path)
        {
            if (path.Count > 1)
            {
                if (String.Equals(path[1], "ActiveModName", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(sets[ActiveIndex].name);
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return("");
        }
        public override int QueryInt(List <string> path)
        {
            if (path.Count > 1)
            {
                if (String.Equals(path[1], "Experience", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(experience);
                }
                if (String.Equals(path[1], "Beats", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(beats);
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return(0);
        }
Esempio n. 5
0
        public override string QueryString(List <string> path)
        {
            if (path.Count > 1)
            {
                string targetAdvantage = path[1];
                foreach (Advantage advantage in advantages)
                {
                    if (String.Equals(advantage.name, targetAdvantage, StringComparison.OrdinalIgnoreCase))
                    {
                        isCurrentlyIncludedInModFormula = true;
                        if (advantage is StringAdvantage stringAdvantage)
                        {
                            return(stringAdvantage.value);
                        }
                        break;
                    }
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return("");
        }
Esempio n. 6
0
        public override int QueryInt(List <string> path)
        {
            if (path.Count > 1)
            {
                if (String.Equals(path[1], "MaxValue", StringComparison.OrdinalIgnoreCase))
                {
                    isCurrentlyIncludedInModFormula = true;
                    return(maxValue);
                }
                string targetTrait = path[1];
                foreach (Trait trait in AllTraits)
                {
                    if (String.Equals(trait.name, targetTrait, StringComparison.OrdinalIgnoreCase))
                    {
                        isCurrentlyIncludedInModFormula = true;
                        return(trait.Value.CurrentValue);
                    }
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return(0);
        }
Esempio n. 7
0
        public override int QueryInt(List <string> path)
        {
            if (path.Count > 1)
            {
                string targetAdvantage = path[1];
                foreach (Advantage advantage in advantages)
                {
                    if (String.Equals(advantage.name, targetAdvantage, StringComparison.OrdinalIgnoreCase))
                    {
                        isCurrentlyIncludedInModFormula = true;
                        if (advantage is NumericAdvantage numericAdvantage)
                        {
                            return(numericAdvantage.Value.CurrentValue);
                        }
                        else if (advantage is ArmorAdvantage armorAdvantage)
                        {
                            if (path.Count > 2)
                            {
                                string targetType = path[2];
                                if (String.Equals(targetType, "General", StringComparison.OrdinalIgnoreCase))
                                {
                                    return(armorAdvantage.General.CurrentValue);
                                }
                                else if (String.Equals(targetType, "Ballistic", StringComparison.OrdinalIgnoreCase))
                                {
                                    return(armorAdvantage.Ballistic.CurrentValue);
                                }
                            }
                        }
                        break;
                    }
                }
            }

            StaticErrorLogger.AddQueryError(path);
            return(0);
        }