123456789101112131415161718192021222324 |
- {
- "code": "import Car from \"./Car\";\r\nvar Vector3 = Laya.Vector3;\r\nimport { TrackType } from \"./DefinedType\";\r\nimport EnemyController from \"./EnemyController\";\r\nimport Game_Tool from \"../Util/Game_Tool\";\r\nimport { GlobalVariable } from \"../game_module/GlobalVariable\";\r\nvar Tween = Laya.Tween;\r\nimport { Mathf } from \"../Util/Mathf\";\r\nimport AIController from \"./AIController\";\r\nimport { PoolManager } from \"./PoolManager\";\r\nimport AimController, { Aim } from \"./AimController\";\r\nimport PlayerController from \"./PlayerController\";\r\nimport { SceneController } from \"./SceneController\";\r\nimport GameManager from \"./GameManager\";\r\nimport { EffectController } from \"./EffectController\";\r\nimport { EventManager, EventType } from \"./EventManager\";\r\nimport { PlayerManager } from \"./PlayerManager\";\r\nimport { WXSdk } from \"../game_module/WXSdk\";\r\nimport { SettingController } from \"./SettingController\";\r\nexport class BossCar extends Car {\r\n constructor() {\r\n super(...arguments);\r\n this._speed = new Vector3(0, 0, 0.3);\r\n this.speed = new Vector3(0, 0, 0.3);\r\n this.isMoveBar = false;\r\n }\r\n onAwake() {\r\n super.onAwake();\r\n this.hitbox = this.selfobj.getChildByName(\"Hitbox\");\r\n this.carMain = this.selfobj.getChildByName(\"BossCar\").getChildByName(\"Car_Main\");\r\n this.mat = this.carMain.meshRenderer.material;\r\n this.tex = this.mat.albedoTexture;\r\n this.healthBar = this.selfobj.getChildByName(\"HealthBarRoot\").transform;\r\n this.carGun = this.carMain.getChildByName(\"Car_Gun\");\r\n this.shootP = this.carGun.getChildByName(\"ShootP\").transform;\r\n this.effectPoint = this.selfobj.getChildByName(\"effectPoint\");\r\n }\r\n onStart() {\r\n }\r\n StartMove() {\r\n Laya.timer.frameLoop(1, this, this._move);\r\n }\r\n _move() {\r\n if (GameManager.Instance.isgamePause)\r\n return;\r\n this.tran.translate(this.speed);\r\n this.CheackMove();\r\n this._movehp();\r\n }\r\n SetTrack(track, tar, carType, enemycardata) {\r\n this.tar = tar;\r\n this.tarTra = this.tar.transform;\r\n this.trackType = track;\r\n this.carType = carType;\r\n let t = (Math.random() > 0.5 ? -1 : 1) * Game_Tool.randomFl(1, 3);\r\n this.InitData(enemycardata);\r\n switch (track) {\r\n case TrackType.midP:\r\n this.trackTarX = GlobalVariable.midX;\r\n this.trackTarZ = GlobalVariable.midZ + t;\r\n break;\r\n case TrackType.leftP:\r\n this.trackTarX = -GlobalVariable.sideX;\r\n this.trackTarZ = GlobalVariable.sideZ + t;\r\n break;\r\n case TrackType.right:\r\n this.trackTarX = GlobalVariable.sideX;\r\n this.trackTarZ = GlobalVariable.sideZ + t;\r\n break;\r\n }\r\n this.TweenSpaw();\r\n this.StartMove();\r\n this.SetAim();\r\n this.SetHpBar();\r\n }\r\n TweenSpaw() {\r\n this.tween1 = Tween.to(this.tran, { localPositionX: this.trackTarX, localRotationEulerY: 0 }, 600, Laya.Ease.linearIn, Laya.Handler.create(this, () => {\r\n this.tween1.clear();\r\n }, null, false));\r\n Laya.timer.once(GlobalVariable.bossStartShootTime * 1000, this, this.CreateBullet);\r\n }\r\n CheackMove() {\r\n let dis = this.tarTra.localPositionZ - this.tran.localPositionZ;\r\n if (dis <= this.trackTarZ - 2) {\r\n this.speed.z -= 0.01;\r\n this.speed.z = Mathf.MixNumber(this.speed.z, this._speed.z, 0.1);\r\n }\r\n else if (dis <= this.trackTarZ) {\r\n this.speed.z = Mathf.MixNumber(this.speed.z, this._speed.z, 0.01);\r\n }\r\n else {\r\n this.speed.z += 0.005;\r\n }\r\n }\r\n InitData(enemycardata) {\r\n this.enemycardata = enemycardata;\r\n this.carHp = Number(this.enemycardata.car_hp);\r\n this.frqTime = Number(this.enemycardata.frequency[0]);\r\n this.bCount = Number(this.enemycardata.hit_count[0]);\r\n this.hit_rate = Number(this.enemycardata.hit_rate);\r\n }\r\n CreateBullet() {\r\n Laya.timer.loop(this.frqTime * 1000, this, this._CreateBullet);\r\n }\r\n _CreateBullet() {\r\n if (GameManager.Instance.isgamePause)\r\n return;\r\n for (let index = 0; index < this.bCount; index++) {\r\n let a = index;\r\n Laya.timer.frameOnce(a * GlobalVariable.bossBulletSpawTime + 1, this, this.CB, [a], false);\r\n }\r\n }\r\n CB(s) {\r\n EnemyController.Instance.CreateEnemyBullet(this.trackType, this.shootP, this.hit_rate);\r\n }\r\n SetAim() {\r\n let aim = new Aim(EnemyController.carPriority[this.enemycardata.car_id][\"1\"], this.hitbox.transform, null, 3, null, null, this);\r\n AimController.Instance.SetAim(this.hitbox.id, aim);\r\n AimController.Instance.JundgerAim();\r\n }\r\n Atked() {\r\n this.carHp -= PlayerManager.bulletAttack;\r\n if (this.carHp <= 0) {\r\n this.RemoveHp();\r\n this.Wreck();\r\n return;\r\n }\r\n let value = this.carHp / this.enemycardata.car_hp;\r\n this.hpBar.value = value;\r\n if (value <= 0.5)\r\n this.CreateEffect();\r\n this.SetMat();\r\n }\r\n HitEffect(point) {\r\n EffectController.Instance.CreateEffect(EffectController.effectName.hit, this.effectPoint, point);\r\n }\r\n SetMat() {\r\n this.mat.albedoTexture = null;\r\n Laya.timer.frameOnce(5, this, () => {\r\n this.mat.albedoTexture = this.tex;\r\n });\r\n }\r\n CreateEffect() {\r\n if (this.huoEffect)\r\n return;\r\n this.huoEffect = EffectController.Instance.CreateEffect(EffectController.effectName.huo, this.hitbox, null, true);\r\n }\r\n SetHpBar() {\r\n this.hpBar = AIController.Instance.CreateHpBar();\r\n this.camera = SceneController.Instance._camera;\r\n this.tempPos = Mathf.VecZero;\r\n this.isMoveBar = true;\r\n }\r\n _movehp() {\r\n if (!this.isMoveBar)\r\n return;\r\n this.hpBar.pos(this.tempPos.x, this.tempPos.y);\r\n }\r\n SetSpeed() {\r\n }\r\n RemoveHp() {\r\n if (this.hpBar) {\r\n this.hpBar.removeSelf();\r\n this.hpBar.destroy();\r\n }\r\n }\r\n Wreck() {\r\n WXSdk.LongVibrate();\r\n SettingController.Instance.PlayerExplotion();\r\n AimController.Instance.RemoveAim(this.hitbox.id);\r\n this.mat.albedoTexture = this.tex;\r\n this.RemoveCar();\r\n EffectController.Instance.CreateEffect(EffectController.effectName.boom, SceneController.Instance._effectNode, this.tran.position.clone());\r\n this.TurnOver();\r\n EventManager.event(EventType.Event.RefreshRemainEnemyCount);\r\n }\r\n RemoveCar() {\r\n if (this.huoEffect)\r\n PoolManager.Instance.SetDisableObject(this.huoEffect);\r\n AimController.Instance.JundgerAim();\r\n }\r\n TurnOver() {\r\n Laya.timer.clearAll(this);\r\n this.CreateRigs();\r\n let x = (Math.random() > 0.5 ? 1 : -1) * Game_Tool.randomInt(0, 1);\r\n let y = 0;\r\n let z = Game_Tool.randomInt(0, 1);\r\n this.rig.applyImpulse(new Vector3(0, 10, 10), new Vector3(x, y, z));\r\n Laya.timer.once(2000, this, this.TurnOverRemoveSelf);\r\n }\r\n TurnOverRemoveSelf() {\r\n AIController.Instance.ClearCar(this.trackType);\r\n PoolManager.Instance.SetDisableObject(this.selfobj);\r\n this.destroy();\r\n PlayerController.Instance.CreateAiForPlayer();\r\n }\r\n Reset() {\r\n Laya.timer.clearAll(this);\r\n if (this.huoEffect)\r\n PoolManager.Instance.SetDisableObject(this.huoEffect);\r\n this.RemoveHp();\r\n this.mat.albedoTexture = this.tex;\r\n AimController.Instance.RemoveAim(this.hitbox.id);\r\n AIController.Instance.ClearCar(this.trackType);\r\n PoolManager.Instance.SetDisableObject(this.selfobj);\r\n this.destroy();\r\n }\r\n onDisable() {\r\n }\r\n onDestroy() {\r\n Laya.timer.clearAll(this);\r\n super.onDestroy();\r\n }\r\n}\r\n",
- "references": [
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/Car.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/DefinedType.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EnemyController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Game_Tool.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/GlobalVariable.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Mathf.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/AIController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PoolManager.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/AimController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Window/MainUi.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SceneController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/GameManager.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EffectController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EventManager.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerManager.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/WXSdk.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SettingController.ts"
- ]
- }
|