c1cc1291-376d-4080-b4e7-38c602d88f62.js.map 6.95 KB
{"version":3,"sources":["assets/script/avg/utils/PlotUtils.ts"],"names":[],"mappings":";;;;;;;AAAA,4DAAwI;AACxI,wDAAqD;AACrD,6CAAsD;AACtD,gFAA6E;AAE7E,SAAS,iBAAiB,CAAC,IAAmB;IAC1C,IAAI,GAAG,GAAG,uBAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,GAAoB,CAAC;IACzB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,oCAAmB,CAAC,KAAK,EAAE;QAChD,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;KACrB;SAAM;QACH,GAAG,GAAG,uBAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KACjD;IACD,QAAQ,IAAI,CAAC,QAAQ,EAAE;QACnB,KAAK,kCAAiB,CAAC,KAAK;YACxB,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,KAAK,kCAAiB,CAAC,OAAO;YAC1B,OAAO,GAAG,GAAG,GAAG,CAAC;QACrB,KAAK,kCAAiB,CAAC,cAAc;YACjC,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,KAAK,kCAAiB,CAAC,IAAI;YACvB,OAAO,GAAG,GAAG,GAAG,CAAC;QACrB,KAAK,kCAAiB,CAAC,WAAW;YAC9B,OAAO,GAAG,IAAI,GAAG,CAAC;QACtB,KAAK,kCAAiB,CAAC,QAAQ;YAC3B,OAAO,GAAG,IAAI,GAAG,CAAC;KACzB;AACL,CAAC;AAED,SAAgB,iBAAiB,CAAC,SAA4C;IAC1E,IAAI,GAAG,GAAG,SAAS,CAAC,QAAQ,KAAK,kCAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE;QAChC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;YAC1B,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,kCAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,kCAAiB,CAAC,GAAG,CAAC,EAAE;gBACxG,MAAM;aACT;SACJ;QACD,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,KAAK,kCAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,KAAK,kCAAiB,CAAC,GAAG,CAAC,EAAE;YAChH,MAAM;SACT;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAdD,8CAcC;AAED,SAAgB,sBAAsB,CAAC,IAAY;IAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzD,IAAI,SAAS,GAAG,uBAAS,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACzB,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,uBAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClK;aAAM,EAAE,mBAAmB;YACxB,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI;oBACA,IAAI,IAAI,GAAG,6BAAa,CAAC,SAAS,CAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;oBACjF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC1B,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;qBAC1B;yBAAM;wBACH,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;qBACvC;oBACD,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;iBACvH;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACpB;aACJ;iBAAM;gBACH,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;aACrC;SACJ;KACJ;IACD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACrC,CAAC;AApCD,wDAoCC","file":"","sourceRoot":"/","sourcesContent":["import { ConditionItem, ConditionOprandType, ConditionOperator, ConditionExpression, ConditionRelation } from \"../model/ConditionModel\";\nimport { GameRecord } from \"../game-data/GameRecord\";\nimport { uniqArray, DeepReadonly } from \"simba-utils\";\nimport { ConfigManager } from \"../../common/gameplay/managers/ConfigManager\";\n\nfunction evalConditionItem(item: ConditionItem) {\n    let op1 = GameRecord.getVariableValue(item.target);\n    let op2: string | number;\n    if (item.oprand.type === ConditionOprandType.Const) {\n        op2 = item.target;\n    } else {\n        op2 = GameRecord.getVariableValue(item.target)\n    }\n    switch (item.operator) {\n        case ConditionOperator.Equal:\n            return op1 == op2;\n        case ConditionOperator.Greater:\n            return op1 > op2;\n        case ConditionOperator.GreaterOrEqual:\n            return op1 >= op2;\n        case ConditionOperator.Less:\n            return op1 < op2;\n        case ConditionOperator.LessOrEqual:\n            return op1 <= op2;\n        case ConditionOperator.NotEqual:\n            return op1 != op2;\n    }\n}\n\nexport function evalConditionExpr(condition: DeepReadonly<ConditionExpression>): boolean {\n    let ret = condition.relation === ConditionRelation.Or ? false : true;\n    for (let group of condition.groups) {\n        for (let item of group.items) {\n            ret = evalConditionItem(item);\n            if ((ret && group.relation === ConditionRelation.Or) || (!ret && group.relation === ConditionRelation.And)) {\n                break;\n            }\n        }\n        if ((ret && condition.relation === ConditionRelation.Or) || (!ret && condition.relation === ConditionRelation.And)) {\n            break;\n        }\n    }\n    return ret;\n}\n\nexport function parseTextWithVariables(text: string) {\n    if (text.charCodeAt(0) !== 1) return { parsedText: text, variables: [] };\n    text = text.substr(1);\n    let parsedText = text;\n    let matches = parsedText.match(/\\${(.*?)}/g);\n    if (!matches) return { parsedText: text, variables: [] };\n    let matchVars = uniqArray(matches);\n    let variables = matchVars.map(v => v.substring(2, v.length - 1));\n    for (let i = 0; i < matchVars.length; i++) {\n        let varName = variables[i];\n        if (/^[gr]\\./.test(varName)) {\n            parsedText = parsedText.replace(new RegExp(matchVars[i].replace(/\\./gm, \"\\\\.\").replace(/\\$/gm, \"\\\\$\"), \"gm\"), GameRecord.getVariableValue(varName).toString());\n        } else { // value from table\n            let index = varName.indexOf(\".\");\n            let index1 = varName.indexOf(\"[\");\n            if (index >= 0) {\n                let tableName = varName.substring(0, index1);\n                let valueId = parseInt(varName.substring(index1 + 1, index - 1));\n                let fieldName = varName.substring(index + 1);\n                try {\n                    let text = ConfigManager.getConfig<any>({ name: tableName }, valueId)[fieldName];\n                    if (typeof text === \"number\") {\n                        text = text.toString();\n                    } else {\n                        text = parseTextWithVariables(text);\n                    }\n                    parsedText = parsedText.replace(new RegExp(matchVars[i].replace(/\\./gm, \"\\\\.\").replace(/\\$/gm, \"\\\\$\"), \"gm\"), text);\n                } catch (e) {\n                    console.error(e);\n                }\n            } else {\n                console.error(\"Invalid variable\");\n            }\n        }\n    }\n    return { parsedText, variables };\n}"]}