3d54b7019c9c2283d16796a35867cba1e13896b5 9.6 KB

1234567891011121314151617181920
  1. {
  2. "code": "var Vector3 = Laya.Vector3;\r\nimport { Level, LevelData, missiondata } from \"./LevelMaker\";\r\nimport { EventManager, EventType } from \"./EventManager\";\r\nimport { PlayerAccount } from \"../Network/PlayerAccount\";\r\nimport { GameUtils } from \"../Util/GameUtils\";\r\nimport Dictionary from \"../Util/Dictionary\";\r\nimport { AccountConfig, AccountUser } from \"./DataMaker\";\r\nimport { PlayerData } from \"./Player\";\r\nimport { MonsterData } from \"./Warrior\";\r\nimport { builddata, buildtype } from \"./Building\";\r\nimport { RoadData } from \"./Road\";\r\nimport { GirlData } from \"./Girl\";\r\nexport class LevelManager {\r\n constructor() {\r\n this.missiondatas = new Dictionary();\r\n this.leveldatas = new Dictionary();\r\n this.levelConfigs = new Dictionary();\r\n LevelManager.instance = this;\r\n console.log(\"关卡初始化...\");\r\n this.LevelInit();\r\n }\r\n static get Instance() {\r\n return LevelManager.instance;\r\n }\r\n LevelInit() {\r\n this.LevelConfigInit();\r\n }\r\n LevelConfigInit() {\r\n var mission = PlayerAccount.CurAccountData.GetConfig(AccountConfig.mission);\r\n for (var key in mission) {\r\n var misdata = mission[key];\r\n var id = Number(misdata.ID);\r\n var curmisdata = new missiondata(id);\r\n curmisdata.win = Number(misdata.win);\r\n curmisdata.lose = Number(misdata.lose);\r\n curmisdata.masterdrop = Number(misdata.masterdrop);\r\n curmisdata.move = Number(misdata.move);\r\n var misdatacolor = misdata.color.split(\";\");\r\n curmisdata.color = new Laya.Vector4(Number(misdatacolor[0]) / 255, Number(misdatacolor[1]) / 255, Number(misdatacolor[2]) / 255, 1);\r\n var curmisdatatrial = misdata.trial;\r\n curmisdata.trial = curmisdatatrial == 1;\r\n curmisdata.type = misdata.type;\r\n this.missiondatas.add(id, curmisdata);\r\n }\r\n var leveldataconfig = PlayerAccount.CurAccountData.GetConfig(AccountConfig.config);\r\n var leveldataS = \"\";\r\n for (var key in leveldataconfig) {\r\n var curconfig = leveldataconfig[key][\"config\"];\r\n leveldataS += curconfig;\r\n }\r\n leveldataconfig = JSON.parse(leveldataS);\r\n for (var key in leveldataconfig) {\r\n var configdata = leveldataconfig[key];\r\n var id = Number(configdata.id);\r\n var leveldata = new LevelData(id);\r\n var camera = configdata.camera.split(\",\");\r\n leveldata.camerapos = new Vector3(-Number(camera[0]), Number(camera[1]), Number(camera[2]));\r\n leveldata.cameraerot = new Vector3(-Number(camera[3]), 180 - Number(camera[4]), Number(camera[5]));\r\n var player = configdata.player.split(\",\");\r\n leveldata.playerdata = new PlayerData(Number(player[0]), new Laya.Vector4(-Number(player[1]), Number(player[2]), Number(player[3])));\r\n if (configdata[\"end\"] && configdata[\"end\"] != \"\") {\r\n var curend = configdata[\"end\"].split(\",\");\r\n leveldata.endpos = new Vector3(-Number(curend[0]), Number(curend[1]), Number(curend[2]));\r\n leveldata.enderoty = 360 - Number(curend[3]);\r\n }\r\n if (configdata.enemy && configdata.enemy != \"\") {\r\n var curmonsters = configdata.enemy.split(\":\");\r\n for (var i = 0; i < curmonsters.length; i++) {\r\n var curmonster = curmonsters[i].split(\",\");\r\n var curenemy = new MonsterData(Number(curmonster[0]), new Laya.Vector4(-Number(curmonster[1]), Number(curmonster[2]), Number(curmonster[3]), Number(curmonster[4])));\r\n curenemy.boos = curmonster[5] == \"1\";\r\n leveldata.enemydatas.push(curenemy);\r\n }\r\n }\r\n if (configdata.barrier && configdata.barrier != \"\") {\r\n var curbarriers = configdata.barrier.split(\":\");\r\n for (var i = 0; i < curbarriers.length; i++) {\r\n var curbarrier = curbarriers[i].split(\",\");\r\n var curobs = new builddata(buildtype.barrier, Number(curbarrier[0]), new Laya.Vector4(-Number(curbarrier[1]), Number(curbarrier[2]), Number(curbarrier[3]), Number(curbarrier[4])));\r\n leveldata.builddatas.push(curobs);\r\n }\r\n }\r\n if (configdata.stand && configdata.stand != \"\") {\r\n var curstands = configdata.stand.split(\":\");\r\n for (var i = 0; i < curstands.length; i++) {\r\n var curstand = curstands[i].split(\",\");\r\n var curst = new builddata(buildtype.stand, Number(curstand[0]), new Laya.Vector4(-Number(curstand[3]), Number(curstand[4]), Number(curstand[5]), Number(curstand[6])));\r\n curst.monsterid = Number(curstand[1]);\r\n curst.boos = curstand[2] == 1;\r\n leveldata.builddatas.push(curst);\r\n }\r\n }\r\n if (configdata.road && configdata.road != \"\") {\r\n var curroad = configdata.road.split(\":\");\r\n for (var i = 0; i < curroad.length; i++) {\r\n var currd = curroad[i].split(\",\");\r\n var curr = new RoadData(Number(currd[0]));\r\n curr.pos = new Vector3(-Number(currd[1]), Number(currd[2]), Number(currd[3]));\r\n curr.erot = new Vector3(Number(currd[4]), Number(currd[5]), Number(currd[6]));\r\n curr.scale = new Vector3(Number(currd[7]), Number(currd[8]), Number(currd[9]));\r\n leveldata.roaddatas.push(curr);\r\n }\r\n }\r\n if (configdata.girl && configdata.girl != \"\") {\r\n var curgirl = configdata.girl.split(\":\");\r\n for (var i = 0; i < curgirl.length; i++) {\r\n var mg = curgirl[i].split(\",\");\r\n var startpos = new Laya.Vector4(-Number(mg[1]), Number(mg[2]), Number(mg[3]), Number(mg[4]));\r\n var mgdata = new GirlData(Number(mg[0]), startpos);\r\n leveldata.girldatas.push(mgdata);\r\n }\r\n }\r\n if (this.missiondatas.containKey(id)) {\r\n var misda = this.missiondatas.getValue(id);\r\n leveldata.missiondata = misda;\r\n }\r\n this.leveldatas.add(id, leveldata);\r\n var curlevel = new Level(leveldata.id, leveldata);\r\n this.levelConfigs.add(curlevel.levelid, curlevel);\r\n }\r\n var levelcount = this.levelConfigs.count;\r\n while (this.levelConfigs.count < 500) {\r\n var curcount = this.levelConfigs.count;\r\n var randomindex = GameUtils.getRandomInt(levelcount * 0.5, this.levelConfigs.count);\r\n var randomlevel = this.levelConfigs.getValue(randomindex);\r\n var newdata = new LevelData(curcount + 1);\r\n newdata.camerapos = randomlevel.leveldata.camerapos;\r\n newdata.cameraerot = randomlevel.leveldata.cameraerot;\r\n newdata.endpos = randomlevel.leveldata.endpos;\r\n newdata.enderoty = randomlevel.leveldata.enderoty;\r\n newdata.playerdata = randomlevel.leveldata.playerdata;\r\n newdata.girldatas = randomlevel.leveldata.girldatas;\r\n newdata.enemydatas = randomlevel.leveldata.enemydatas;\r\n newdata.builddatas = randomlevel.leveldata.builddatas;\r\n newdata.roaddatas = randomlevel.leveldata.roaddatas;\r\n newdata.missiondata = randomlevel.leveldata.missiondata;\r\n var curnelevel = new Level(curcount + 1, newdata);\r\n this.levelConfigs.add(curnelevel.levelid, curnelevel);\r\n }\r\n }\r\n CreateLevel(_level) {\r\n this.curlevel = _level;\r\n _level.Create();\r\n EventManager.Trigger(EventType.LevelCreateComplete, [_level]);\r\n }\r\n ReadyLevel() {\r\n var stage = Number(PlayerAccount.CurAccountData.GetUser(AccountUser.stage));\r\n console.log(\"ready level\", stage + 1);\r\n this.curlevel = this.levelConfigs.getValue(Number(stage + 1));\r\n this.CreateLevel(this.curlevel);\r\n }\r\n ClearLevel() {\r\n if (this.curlevel)\r\n this.curlevel.Clear();\r\n }\r\n}\r\nLevelManager.teststage = 14;\r\n",
  3. "references": [
  4. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/LevelMaker.ts",
  5. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/EventManager.ts",
  6. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/GameManager.ts",
  7. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/AssetManager.ts",
  8. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/LocalConfig.ts",
  9. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Network/PlayerAccount.ts",
  10. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Util/GameUtils.ts",
  11. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Util/Dictionary.ts",
  12. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/DataMaker.ts",
  13. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Player.ts",
  14. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Warrior.ts",
  15. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Building.ts",
  16. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Road.ts",
  17. "D:/Work/samurai2-laya/laya/samuraiflash-tt/src/Main/Girl.ts"
  18. ]
  19. }