xlsConfig.ts 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import GameController from "../GameController"
  2. import { gameMethod } from "./gameMethod"
  3. // type for attr.excel
  4. export type xlsAttrAttr = {id:number,name:string,showName:string,attrDesc:string,numType:number,upper:number,icon:string,powerConversion:number,#:备注}
  5. // type for audio.excel
  6. export type xlsAudioInfo = {id:string,name:string,vol:number}
  7. // type for chapter.excel
  8. export type xlsChapterInfo = {id:number,grid:number[],map:string,name:string}
  9. export type xlsChapterLayout = {id:number,infoId:number,grid:number,type:number,correlationId:number,unlock:number}
  10. // type for emitter.excel
  11. export type xlsEmitterInfo = {id:number,name:string,icon:string,type:number,upLimit:number,restoreInterval:number,restoreNum:number,prop:number[],demand:number[],chargingType:number,chargingCost:number[],expiryTime:number}
  12. // type for equip.excel
  13. export type xlsEquipInfo = {id:number,name:string,icon:string,desc:string}
  14. // type for fish.excel
  15. // type for guide.excel
  16. export type xlsGuideInfo = {id:string,event:string,way:string,variable:number[],ytype:number,condition:number[],type:number,pram:any[],pram1:any[]}
  17. // type for help.excel
  18. // type for item.excel
  19. export type xlsItemKind = {kind:string,name:string}
  20. export type xlsItemInfo = {id:string,name:string,icon:string,desc:string,pinzhi:number,type:string,detailType:string,param:number,from:number[],produce:string}
  21. // type for kaiqi.excel
  22. export type xlsKaiqiInfo = {id:string,name:string,desc:string,icon:string,needGuide:number,type1:number,param1:number,sevOpenDay:number,tip:string,record:number}
  23. // type for languageClient.excel
  24. export type xlsLanguageClientText = {key:string,cn:string,us:string,kr:string,tw:string,jp:string}
  25. // type for languageSever.excel
  26. export type xlsLanguageSeverHouduan = {}
  27. // type for language.excel
  28. export type xlsLanguageLang = {key:string,cn:string,kr:string,tw:string,jp:string}
  29. // type for level.excel
  30. export type xlsLevelLevel = {level:number,exp:number}
  31. // type for math.excel
  32. export type xlsMathInfo = {key:string,pram:{"count"?:number,"count1"?:number,"str"?:string,"item"?:number[],"items"?:number[][],"kv"?:{[key:string]:number}}}
  33. // type for mergeProp.excel
  34. export type xlsMergePropInfo = {id:number,name:string,icon:string,type:number,quality:number}
  35. // type for merge.excel
  36. export type xlsMergeInfo = {id:number,formula:number[],item1:number[],rate1:number,item2:number[],rate2:number,item3:number[],rate3:number,item4:number[],rate4:number}
  37. // type for monster.excel
  38. // type for name.excel
  39. export type xlsNameName = {}
  40. // type for package.excel
  41. export type xlsPackageInfo = {id:string,group:string,plat:string,wayhttp:string,cfgUrl:string,params:any[],logo:string,loadingTips1:string,loadingTips2:string}
  42. // type for pet.excel
  43. // type for pingbici.excel
  44. export type xlsPingbiciInfo = {}
  45. // type for shop.excel
  46. // type for skill.excel
  47. // type for task.excel
  48. export type xlsTaskDesc = {kind:string,name:string,wgId:number,weekJumpId:string,jumpId:string}
  49. export type xlsTaskMain = {id:string,nextid:string,kind:string,need:number,item:number[]}
  50. // type for wing.excel
  51. export class XlsConfig {
  52. xlsEmitterInfo: xlsEmitterInfo[]
  53. xlsKaiqiInfo: xlsKaiqiInfo[]
  54. xlsEquipInfo: xlsEquipInfo[]
  55. xlsLanguageClientText: xlsLanguageClientText[]
  56. xlsLanguageSeverHouduan: xlsLanguageSeverHouduan[]
  57. xlsAudioInfo: xlsAudioInfo[]
  58. xlsChapterInfo: xlsChapterInfo[]
  59. xlsChapterLayout: xlsChapterLayout[]
  60. <<<<<<< Updated upstream
  61. xlsItemKind: xlsItemKind[]
  62. xlsItemInfo: xlsItemInfo[]
  63. xlsAttrAttr: xlsAttrAttr[]
  64. xlsMergePropInfo: xlsMergePropInfo[]
  65. xlsNameName: xlsNameName[]
  66. xlsMergeInfo: xlsMergeInfo[]
  67. =======
  68. xlsAttrAttr: xlsAttrAttr[]
  69. xlsEmitterInfo: xlsEmitterInfo[]
  70. xlsGuideInfo: xlsGuideInfo[]
  71. xlsKaiqiInfo: xlsKaiqiInfo[]
  72. xlsItemKind: xlsItemKind[]
  73. xlsItemInfo: xlsItemInfo[]
  74. xlsLevelLevel: xlsLevelLevel[]
  75. xlsLanguageClientText: xlsLanguageClientText[]
  76. xlsLanguageSeverHouduan: xlsLanguageSeverHouduan[]
  77. xlsMergeMerge: xlsMergeMerge[]
  78. xlsNameName: xlsNameName[]
  79. xlsPingbiciInfo: xlsPingbiciInfo[]
  80. xlsMathInfo: xlsMathInfo[]
  81. >>>>>>> Stashed changes
  82. xlsPackageInfo: xlsPackageInfo[]
  83. xlsLevelLevel: xlsLevelLevel[]
  84. xlsGuideInfo: xlsGuideInfo[]
  85. xlsMathInfo: xlsMathInfo[]
  86. xlsTaskDesc: xlsTaskDesc[]
  87. xlsTaskMain: xlsTaskMain[]
  88. <<<<<<< Updated upstream
  89. xlsPingbiciInfo: xlsPingbiciInfo[]
  90. =======
  91. xlsMergePropInfo: xlsMergePropInfo[]
  92. >>>>>>> Stashed changes
  93. xlsLanguageLang: xlsLanguageLang[]
  94. constructor(bundleName:string, callback: Function, progressCallback?: Function) {
  95. cc.assetManager.loadBundle(bundleName, (err, bundle) => {
  96. if (err) {
  97. GameController.clear()
  98. cc.game.restart()
  99. if (progressCallback) {
  100. progressCallback(0, 0.99);
  101. }
  102. return
  103. }
  104. if (gameMethod.isEmpty(bundle) && cc.sys.platform == cc.sys.WECHAT_GAME) {
  105. //小游戏平台,缓存过期,自动清理缓存,重启游戏
  106. console.error("加载配置表的bundle失败,清理缓存重新加载")
  107. cc.assetManager.cacheManager.clearCache()
  108. GameController.clear()
  109. cc.game.restart()
  110. if (progressCallback) {
  111. progressCallback(0, 0.99);
  112. }
  113. return
  114. }
  115. bundle.loadDir("",(finish: number, total: number, item: any)=>{
  116. if (progressCallback) {
  117. progressCallback(finish, total);
  118. }
  119. }, (err2, assets: cc.JsonAsset[]) => {
  120. if (err2) {
  121. GameController.clear()
  122. cc.game.restart()
  123. if (progressCallback) {
  124. progressCallback(0, 0.99);
  125. }
  126. return
  127. }
  128. let current = 0;
  129. assets.forEach(element => {
  130. this["xls" + this.firstUpCase(element.name)] = element.json;
  131. current++;
  132. });
  133. callback(this)
  134. })
  135. })
  136. }
  137. // 首字母大写
  138. private firstUpCase(str: string) {
  139. return str[0].toUpperCase() + str.substring(1)
  140. }
  141. }