edadae9d-5011-42f5-bdbb-1a6f170f85e0.js.map 23.9 KB
{"version":3,"sources":["assets/script/avg/game-data/GameRecord.ts"],"names":[],"mappings":";;;;;;;AAAA,mDAAyJ;AACzJ,mDAAyC;AACzC,6CAAwE;AACxE,2DAAkD;AAClD,iDAA8C;AAC9C,2CAA4C;AAC5C,yCAAgC;AAChC,kDAAmD;AAEnD,IAAiB,UAAU,CAqU1B;AArUD,WAAiB,UAAU;IACvB,IAAI,OAAO,GAAG,IAAI,wBAAO,CAAC;IAE1B,MAAM,gBAAgB,qBAAQ,sCAAsB,CAAE,CAAC;IACvD,MAAM,gBAAgB,qBAAQ,sCAAsB,CAAE,CAAC;IACvD,IAAI,cAAc,GAAW,CAAC,CAAC;IAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,SAAgB,gBAAgB;QAC5B,cAAc,GAAG,IAAI,CAAC;IAC1B,CAAC;IAFe,2BAAgB,mBAE/B,CAAA;IAED,SAAgB,cAAc,CAAC,SAAS,GAAG,KAAK;QAC5C,cAAc,GAAG,KAAK,CAAC;QACvB,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,WAAA,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAHe,yBAAc,iBAG7B,CAAA;IAED,IAAI,cAAc,GAAG,KAAK,CAAC;IACd,0BAAe,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE;QACvD,GAAG,EAAE,CAAC,MAAM,EAAE,CAAS,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,UAAU,GAAG,wCAAwB,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE;gBACZ,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxD,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;iBAC1B;gBACD,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxD,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;iBAC1B;aACJ;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBACrB,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aACzD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC,CAAC;IAEU,0BAAe,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE;QACvD,GAAG,EAAE,CAAC,MAAM,EAAE,CAAS,EAAE,KAAK,EAAE,EAAE;YAC9B,IAAI,UAAU,GAAG,wCAAwB,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE;gBACZ,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxD,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;iBAC1B;gBACD,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxD,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;iBAC1B;aACJ;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBACrB,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aACzD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC,CAAC;IAEH,SAAgB,gBAAgB,CAAC,OAAe;QAC5C,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACtB,OAAO,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;IAPe,2BAAgB,mBAO/B,CAAA;IAED,SAAgB,gBAAgB,CAAC,OAAe,EAAE,KAAsB;QACpE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACtB,WAAA,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;SAC9C;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7B,WAAA,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACvC;IACL,CAAC;IARe,2BAAgB,mBAQ/B,CAAA;IAED,SAAgB,sBAAsB,CAAC,OAAe,EAClD,QAAwG;QACxG,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAHe,iCAAsB,yBAGrC,CAAA;IAED,SAAgB,sBAAsB,CAAC,OAAe,EAClD,QAAwG;QACxG,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAHe,iCAAsB,yBAGrC,CAAA;IAED,SAAgB,gBAAgB,CAAC,OAAe,EAC5C,QAAmH;QACnH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACvC;QACD,OAAO,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IANe,2BAAgB,mBAM/B,CAAA;IASD,MAAM,SAAS,GAAuC,EAAE,CAAC;IACzD,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,IAAI,mBAAuC,CAAC;IAC5C,IAAI,kBAAkB,GAAW,CAAC,CAAC,CAAC;IAEpC,SAAgB,YAAY;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IAFe,uBAAY,eAE3B,CAAA;IAED,SAAgB,UAAU;QACtB,OAAO,OAAO,CAAC;IACnB,CAAC;IAFe,qBAAU,aAEzB,CAAA;IAED,SAAgB,qBAAqB;QACjC,OAAO,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAFe,gCAAqB,wBAEpC,CAAA;IAED,SAAgB,WAAW;QACvB,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,iCAAY,CAAC,SAAS,CAAC,uBAAU,CAAC,MAAM,GAAG,iBAAiB,EAAE,sCAAsB,CAAC,CAAC,CAAC;QACvH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,iCAAY,CAAC,SAAS,CAAC,uBAAU,CAAC,MAAM,GAAG,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,iCAAY,CAAC,SAAS,CAAC,uBAAU,CAAC,MAAM,GAAG,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACvF,cAAc,GAAG,iCAAY,CAAC,MAAM,CAAC,uBAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC;QAE3E,IAAI,IAAI,GAAG,eAAG,CAAC,aAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,GAAG,cAAc,EAAE;YAC1B,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACxC;IACL,CAAC;IAbe,sBAAW,cAa1B,CAAA;IAED,SAAgB,sBAAsB,CAAC,MAAc,EAAE,MAAc;QACjE,IAAI,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACvB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACpB,OAAO;SACV;QACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAVe,iCAAsB,yBAUrC,CAAA;IAED,oEAAoE;IACpE,SAAgB,iBAAiB,CAAC,KAAa,EAAE,IAAY;QACzD,IAAI,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;QACjC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACzB,UAAU,EAAE,CAAC;IACjB,CAAC;IANe,4BAAiB,oBAMhC,CAAA;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,SAAgB,mBAAmB,CAAC,KAAa;QAC7C,IAAI,QAAQ,EAAE;YACV,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE;gBAC5B,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;aAC9B;SACJ;QACD,QAAQ,GAAG,IAAI,CAAC;QAChB,kBAAkB,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;SACxC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,sCAAsB,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;YACf,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC;QACD,mBAAmB,qBAAQ,gBAAgB,CAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,yBAAa,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAEvD;QACD,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAtBe,8BAAmB,sBAsBlC,CAAA;IAED,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;QAC7C,IAAI,IAAI,IAAI,CAAC,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;;gBAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;SAC9B;QACD,IAAI,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAa,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C;QACD,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,KAAK,yBAAa,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,iBAAiB;YAC3F,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACf,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,yBAAa,CAAC,GAAG,EAAE;oBAC5B,MAAM;iBACT;qBAAM;oBACH,WAAW,EAAE,CAAC;iBACjB;aACJ;YACD,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC;SACrC;QACD,IAAI,mBAAmB,EAAE;YACrB,IAAI,IAAI,GAAgC,EAAE,CAAC;YAC3C,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE;gBAC5B,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,mBAAmB,CAAC,CAAC,CAAC,EAAE;oBAChD,IAAI,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;iBACjC;aACJ;YACD,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACtD;aAAM;YACH,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACpD;QACD,mBAAmB,qBAAQ,gBAAgB,CAAE,CAAC;QAC9C,WAAA,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,CAAC;IACb,CAAC;IArCe,oBAAS,YAqCxB,CAAA;IAEY,mBAAQ,GAAG,sBAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,qBAAU,GAAG,sBAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEtD,KAAK,UAAU,YAAY;QAC9B,IAAI,cAAc;YAAE,OAAO;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,eAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/F,CAAC;IAJqB,uBAAY,eAIjC,CAAA;IAED,SAAgB,uBAAuB,CAAC,IAAqB,EAAE,MAAM,GAAG,IAAI;QACxE,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE;YAC5B,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC9B;QACD,OAAO,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,CAAC,GAAG,EAAE,CAAC;SACjB;QACD,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAbe,kCAAuB,0BAatC,CAAA;IAED,SAAgB,iBAAiB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;IAChG,CAAC;IAFe,4BAAiB,oBAEhC,CAAA;IAED,SAAgB,UAAU,CAAC,MAAM,GAAG,IAAI;QACpC,IAAI,cAAc;YAAE,OAAO;QAC3B,IAAI,cAAc,EAAE;YAChB,iCAAY,CAAC,SAAS,CAAC,uBAAU,CAAC,MAAM,GAAG,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;SACnF;QACD,iCAAY,CAAC,SAAS,CAAC,uBAAU,CAAC,MAAM,GAAG,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,iCAAY,CAAC,SAAS,CAAC,uBAAU,CAAC,MAAM,GAAG,YAAY,EAAE,SAAS,CAAC,CAAC;QACpE,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACtC,iCAAY,CAAC,MAAM,CAAC,uBAAU,CAAC,MAAM,GAAG,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC1E,MAAM,IAAI,WAAA,UAAU,EAAE,CAAC;IAC3B,CAAC;IAVe,qBAAU,aAUzB,CAAA;IAED,SAAgB,YAAY;QACxB,iCAAY,CAAC,MAAM,CAAC,uBAAU,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;QAC3D,iCAAY,CAAC,MAAM,CAAC,uBAAU,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;QACxD,iCAAY,CAAC,MAAM,CAAC,uBAAU,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;QACtD,iCAAY,CAAC,MAAM,CAAC,uBAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE;YAC5B,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC9B;QACD,OAAO,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,CAAC,GAAG,EAAE,CAAC;SACjB;QACD,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;YACrB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;SACvB;QACD,cAAc,GAAG,CAAC,CAAC;QACnB,YAAY,GAAG,KAAK,CAAC;QACrB,WAAW,EAAE,CAAC;QACd,OAAO,YAAY,EAAE,CAAC;IAC1B,CAAC;IAlBe,uBAAY,eAkB3B,CAAA;IAED,SAAgB,eAAe,CAAC,KAAa,EAAE,YAAuB;QAClE,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC7E,IAAI,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAChD,WAAW,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;QAC/B,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACjC,IAAI,SAAS,GAAuC,EAAE,CAAC;QACvD,IAAI,YAAY,EAAE;YACd,KAAK,IAAI,CAAC,IAAI,YAAY,EAAE;gBACxB,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACtC;SACJ;QACD,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE,EAAE,sBAAsB;YACpD,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAC9B;QACD,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,sCAAsB,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3C;QACD,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAC3C,mBAAmB,qBAAQ,gBAAgB,CAAE,CAAC;QAC9C,WAAA,QAAQ,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IAChB,CAAC;IAvBe,0BAAe,kBAuB9B,CAAA;IAED,SAAgB,cAAc,CAAC,IAAY,EAAE,WAAW,GAAG,KAAK,EAAE,YAAuB;QACrF,IAAI,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,WAAW,EAAE;YACb,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,OAAO,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;gBACxB,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;oBAChD,MAAM;iBACT;aACJ;SACJ;aAAM;YACH,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACrE;QACD,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC;SACnD;QACD,OAAO,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAjBe,yBAAc,iBAiB7B,CAAA;AACL,CAAC,EArUgB,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqU1B;AAED,IAAI,uBAAU,CAAC,KAAK,EAAE;IACjB,MAAc,CAAC,UAAU,GAAG,UAAU,CAAC;CAC3C","file":"","sourceRoot":"/","sourcesContent":["import { defaultGlobalVariables, RecordVariableType, defaultRecordVariables, globalVariableConstrains, recordVariableConstrains } from \"./GameVariables\";\nimport { Emitter } from \"simba-eventkit\";\nimport { DeepReadonly, DeepReadonlyArray, throttle } from \"simba-utils\";\nimport { LocalStorage } from \"simba-localstorage\";\nimport { GameConfig } from \"../../GameConfig\";\nimport { getPlotsIndex } from \"./PlotsData\";\nimport { SDK } from \"simba-sdk\";\nimport { SpecialPlotId } from \"../model/PlotModel\";\n\nexport namespace GameRecord {\n    let emitter = new Emitter;\n\n    const _globalVariables = { ...defaultGlobalVariables };\n    const _recordVariables = { ...defaultRecordVariables };\n    let _recordVersion: number = 0;\n    let _initailized = false;\n\n    let _inTransaction = false;\n\n    export function startTransaction() {\n        _inTransaction = true;\n    }\n\n    export function endTransaction(forceSave = false) {\n        _inTransaction = false;\n        forceSave ? saveRecord() : autoSave();\n    }\n\n    let globalVarDirty = false;\n    export const globalVariables = new Proxy(_globalVariables, {\n        set: (target, p: string, value) => {\n            let constrains = globalVariableConstrains[p];\n            if (constrains) {\n                if (constrains.min !== undefined && value < constrains.min) {\n                    value = constrains.min;\n                }\n                if (constrains.max !== undefined && value > constrains.max) {\n                    value = constrains.max;\n                }\n            }\n            if (target[p] !== value) {\n                globalVarDirty = true;\n                let prevValue = target[p];\n                target[p] = value;\n                emitter.emit(\"g.\" + p, \"global\", p, prevValue, value);\n            }\n            return true;\n        }\n    });\n\n    export const recordVariables = new Proxy(_recordVariables, {\n        set: (target, p: string, value) => {\n            let constrains = recordVariableConstrains[p];\n            if (constrains) {\n                if (constrains.min !== undefined && value < constrains.min) {\n                    value = constrains.min;\n                }\n                if (constrains.max !== undefined && value > constrains.max) {\n                    value = constrains.max;\n                }\n            }\n            if (target[p] !== value) {\n                let prevValue = target[p];\n                target[p] = value;\n                emitter.emit(\"r.\" + p, \"record\", p, prevValue, value);\n            }\n            return true;\n        }\n    });\n\n    export function getVariableValue(varName: string) {\n        if (/^g\\./.test(varName)) {\n            return _globalVariables[varName.substr(2)];\n        } else if (/^r\\./.test(varName)) {\n            return _recordVariables[varName.substr(2)];\n        }\n        throw new Error(\"Invalid varName.\");\n    }\n\n    export function setVariableValue(varName: string, value: string | number) {\n        if (/^g\\./.test(varName)) {\n            globalVariables[varName.substr(2)] = value;\n        } else if (/^r\\./.test(varName)) {\n            recordVariables[varName.substr(2)] = value;\n        } else {\n            throw new Error(\"Invalid varName.\");\n        }\n    }\n\n    export function onGlobalVariableChange(varName: string,\n        callback: (scope: \"global\", varName: string, prevValue: string | number, value: string | number) => void) {\n        return emitter.on(\"g.\" + varName, callback);\n    }\n\n    export function onRecordVariableChange(varName: string,\n        callback: (scope: \"record\", varName: string, prevValue: string | number, value: string | number) => void) {\n        return emitter.on(\"r.\" + varName, callback);\n    }\n\n    export function onVariableChange(varName: string,\n        callback: (scope: \"record\" | \"record\", varName: string, prevValue: string | number, value: string | number) => void) {\n        if (!/^g\\./.test(varName) && !/^r\\./.test(varName)) {\n            throw new Error(\"Invalid varName.\");\n        }\n        return emitter.on(varName, callback);\n    }\n\n    interface RecordItem {\n        p: number[]; // plotId\n        v: Partial<RecordVariableType>; // variables diff\n        s?: number[]; // selected option\n        c?: object[]; // plot custom data\n    }\n\n    const plotsInfo: { [key: string]: { cnt: number } } = {};\n    const records: { name: string, d: RecordItem[] }[] = [];\n    let lastRecordVariables: RecordVariableType;\n    let currentRecordIndex: number = -1;\n\n    export function getPlotsInfo(): DeepReadonly<typeof plotsInfo> {\n        return plotsInfo;\n    }\n\n    export function getRecords(): DeepReadonly<typeof records> {\n        return records;\n    }\n\n    export function getCurrentRecordItems(): DeepReadonlyArray<RecordItem> {\n        return records[currentRecordIndex].d;\n    }\n\n    export function initRecords() {\n        if (_initailized) return;\n        _initailized = true;\n        Object.assign(_globalVariables, LocalStorage.getObject(GameConfig.gameId + \".gameGlobalVars\", defaultGlobalVariables));\n        Object.assign(records, LocalStorage.getObject(GameConfig.gameId + \".gameRecords\", []));\n        Object.assign(plotsInfo, LocalStorage.getObject(GameConfig.gameId + \".plotsInfo\", {}));\n        _recordVersion = LocalStorage.getInt(GameConfig.gameId + \".recordVersion\");\n\n        let data = SDK.getGameRecord();\n        let version = data[\"v\"];\n        if (version > _recordVersion) {\n            overwriteRecordWithData(data, false);\n        }\n    }\n\n    export function setSelectOptionForPlot(plotId: number, option: number) {\n        let history = records[currentRecordIndex].d;\n        let top = history[history.length - 1];\n        let idx = top.p.findIndex(v => v === plotId);\n        if (idx >= 0) {\n            if (!top.s) top.s = [];\n            top.s[idx] = option;\n            return;\n        }\n        throw new Error(\"Invalid option\");\n    }\n\n    // use PlotManager.completePlto, unless you know what you are doing.\n    export function setPlotCustomData(index: number, data: object) {\n        let items = records[currentRecordIndex].d;\n        let lastItem = items[items.length - 1];\n        if (!lastItem.c) lastItem.c = [];\n        lastItem.c[index] = data;\n        saveRecord();\n    }\n\n    let _started = false;\n    export function startGameWithRecord(index: number) {\n        if (_started) {\n            for (let k in _recordVariables) {\n                delete _recordVariables[k];\n            }\n        }\n        _started = true;\n        currentRecordIndex = index;\n        if (!records[index]) {\n            records[index] = { name: \"\", d: [] };\n        }\n        const arr = records[index].d;\n        Object.assign(_recordVariables, defaultRecordVariables);\n        for (let v of arr) {\n            Object.assign(_recordVariables, v.v);\n        }\n        lastRecordVariables = { ..._recordVariables };\n        if (!arr.length) {\n            arr.push({ p: [getPlotsIndex().firstPlot], v: {} });\n\n        }\n        return arr[arr.length - 1].p;\n    }\n\n    export function startPlot(plot: number, index = 0) {\n        if (plot >= 0) {\n            if (!plotsInfo[plot]) plotsInfo[plot] = { cnt: 1 };\n            else plotsInfo[plot].cnt++;\n        }\n        let history = records[currentRecordIndex].d;\n        let p: number[] = [];\n        if (history.length) {\n            p = [...history[history.length - 1].p];\n        }\n        p[index] = plot;\n        if (plot === SpecialPlotId.End && p.length > 1 && (index === p.length - 1)) { // 支线结束时,判断能否缩短数组\n            let i = p.length - 2;\n            let deleteCount = 1;\n            for (; i > 0; i--) {\n                if (p[i] !== SpecialPlotId.End) {\n                    break;\n                } else {\n                    deleteCount++;\n                }\n            }\n            p.length = p.length - deleteCount;\n        }\n        if (lastRecordVariables) {\n            let diff: Partial<RecordVariableType> = {};\n            for (let k in _recordVariables) {\n                if (_recordVariables[k] !== lastRecordVariables[k]) {\n                    diff[k] = _recordVariables[k];\n                }\n            }\n            records[currentRecordIndex].d.push({ p, v: diff });\n        } else {\n            records[currentRecordIndex].d.push({ p, v: {} });\n        }\n        lastRecordVariables = { ..._recordVariables };\n        autoSave();\n        return p;\n    }\n\n    export const autoSave = throttle(saveRecord, 1000, true);\n    export const autoUpload = throttle(uploadRecord, 5000, true);\n\n    export async function uploadRecord() {\n        if (_inTransaction) return;\n        console.log(\"准备上传云存档\");\n        SDK.uploadGameRecord({ g: _globalVariables, r: records, p: plotsInfo, v: _recordVersion });\n    }\n\n    export function overwriteRecordWithData(data: string | Object, upload = true) {\n        if (typeof data === \"string\") data = JSON.parse(data);\n        for (let k in _globalVariables) {\n            delete _globalVariables[k];\n        }\n        while (records.length) {\n            records.pop();\n        }\n        _recordVersion = data[\"v\"];\n        Object.assign(_globalVariables, data[\"g\"]);\n        Object.assign(records, data[\"r\"]);\n        Object.assign(plotsInfo, data[\"p\"]);\n        saveRecord(upload);\n    }\n\n    export function getRecordAsString() {\n        return JSON.stringify({ g: _globalVariables, r: records, p: plotsInfo, v: _recordVersion });\n    }\n\n    export function saveRecord(upload = true) {\n        if (_inTransaction) return;\n        if (globalVarDirty) {\n            LocalStorage.setObject(GameConfig.gameId + \".gameGlobalVars\", _globalVariables);\n        }\n        LocalStorage.setObject(GameConfig.gameId + \".gameRecords\", records);\n        LocalStorage.setObject(GameConfig.gameId + \".plotsInfo\", plotsInfo);\n        _recordVersion = (new Date).getTime();\n        LocalStorage.setInt(GameConfig.gameId + \".recordVersion\", _recordVersion);\n        upload && autoUpload();\n    }\n\n    export function emptyRecords() {\n        LocalStorage.remove(GameConfig.gameId + \".gameGlobalVars\");\n        LocalStorage.remove(GameConfig.gameId + \".gameRecords\");\n        LocalStorage.remove(GameConfig.gameId + \".plotsInfo\");\n        LocalStorage.remove(GameConfig.gameId + \".recordVersion\");\n        for (let k in _globalVariables) {\n            delete _globalVariables[k];\n        }\n        while (records.length) {\n            records.pop();\n        }\n        for (let k in plotsInfo) {\n            delete plotsInfo[k];\n        }\n        _recordVersion = 0;\n        _initailized = false;\n        initRecords();\n        return uploadRecord();\n    }\n\n    export function rollbackToIndex(index: number, preserveVars?: string[]) {\n        if (index < 0 || index >= records[currentRecordIndex].d.length) return false;\n        let currRecords = records[currentRecordIndex].d;\n        currRecords.length = index + 1;\n        currRecords[index].s = undefined;\n        let preserves: { [key: string]: string | number } = {};\n        if (preserveVars) {\n            for (let v of preserveVars) {\n                preserves[v] = _recordVariables[v];\n            } \n        }\n        for (let k in _recordVariables) { // clear all variables\n            delete _recordVariables[k];\n        }\n        Object.assign(_recordVariables, defaultRecordVariables);\n        for (let i = 0; i <= index; i++) {\n            let data = currRecords[i];\n            Object.assign(_recordVariables, data.v);\n        }\n        Object.assign(_recordVariables, preserves);\n        lastRecordVariables = { ..._recordVariables };\n        autoSave();\n        return true;\n    }\n\n    export function rollbackToPlot(plot: number, reverseFind = false, preserveVars?: string[]) {\n        let items = records[currentRecordIndex].d;\n        let index = 0;\n        if (reverseFind) {\n            index = items.length - 1;\n            for (; index >= 0; index--) {\n                if (items[index].p.findIndex(p => p === plot) >= 0) {\n                    break;\n                }\n            }\n        } else {\n            index = items.findIndex(v => v.p.findIndex(p => p === plot) >= 0);\n        }\n        if (index < 0) {\n            throw new Error(\"Plot \" + plot + \" not found!\");\n        }\n        return rollbackToIndex(index, preserveVars);\n    }\n}\n\nif (GameConfig.debug) {\n    (window as any).GameRecord = GameRecord;\n}"]}