7897083ea9ec0616e6c4079dc7fc8eedbf6cb1a7 19 KB

123456789101112131415161718
  1. {
  2. "code": "var Vector3 = Laya.Vector3;\r\nimport { AssetManager } from \"../Tools/AssetManager\";\r\nimport { Transform3DHelper, GameTools } from \"../Tools/GameTools\";\r\nimport { EventManager, StageState } from \"../Tools/EventManager\";\r\nimport { Hostage } from \"./Hostage\";\r\nimport { AccountManager } from \"../Net/AccountManager\";\r\nimport { PlayerControl } from \"./PlayerControl\";\r\nimport { GameManager } from \"./GameManager\";\r\nimport InGameView from \"../View/InGameView\";\r\nimport { StageControl } from \"./StageControl\";\r\nexport var ChaseNpcState;\r\n(function (ChaseNpcState) {\r\n ChaseNpcState[ChaseNpcState[\"Idle\"] = 0] = \"Idle\";\r\n ChaseNpcState[ChaseNpcState[\"Run\"] = 1] = \"Run\";\r\n ChaseNpcState[ChaseNpcState[\"Die\"] = 2] = \"Die\";\r\n ChaseNpcState[ChaseNpcState[\"Atk\"] = 3] = \"Atk\";\r\n})(ChaseNpcState || (ChaseNpcState = {}));\r\n;\r\nexport class ChaseNpc extends Laya.Script {\r\n constructor() {\r\n super();\r\n this.frontdie = false;\r\n this.reardie = false;\r\n this.canmove = false;\r\n this.isdead = false;\r\n this.atked = false;\r\n this.begin = false;\r\n this.m_chasenpcspeed = 0;\r\n this.pursuediatance = 0;\r\n this.atkdistance = 10;\r\n this.NPCRushSpeed = 0;\r\n this.Distance = 0;\r\n this.ChaseDistance = 0;\r\n this.NpcStartPos = new Vector3();\r\n this.dir = new Vector3();\r\n this.currotV = new Vector3();\r\n this.currot = new Laya.Quaternion;\r\n this.CurrectRotate = new Laya.Quaternion();\r\n this.curspeed = 0;\r\n this.offest = new Vector3();\r\n this.curpos = new Vector3();\r\n this.die = false;\r\n ChaseNpc.ins = this;\r\n EventManager.StageOn(StageState.Start, this, this.Begin);\r\n EventManager.StageOn(StageState.Lose, this, this.GameOver);\r\n EventManager.StageOn(StageState.Win, this, this.GameOver);\r\n EventManager.StageOn(StageState.Press, this, this.AddSpeed);\r\n EventManager.StageOn(StageState.UnPress, this, this.SlowSpeed);\r\n }\r\n static get Instance() {\r\n if (ChaseNpc.ins) {\r\n return ChaseNpc.ins;\r\n }\r\n else {\r\n return new ChaseNpc();\r\n }\r\n }\r\n onAwake() {\r\n this.m_chasenpcmodel = this.owner;\r\n }\r\n onStart() {\r\n this.m_chasenpcanimator = this.m_chasenpcmodel.getComponent(Laya.Animator);\r\n this.m_hostage = this.owner.parent.parent.getChildByName(\"player\").getChildAt(0);\r\n this.NpcStartPos = this.m_chasenpcmodel.transform.position.clone();\r\n this.m_chasenpcspeed = StageControl.Instance.curstage.npcspeed;\r\n this.Distance = AccountManager.Instance.curplayerData.NpcChaseDistance * 1.65;\r\n this.ChaseDistance = AccountManager.Instance.curplayerData.NpcRushDistance * 1.65;\r\n this.NPCRushSpeed = AccountManager.Instance.curplayerData.NPCRushSpeed;\r\n }\r\n Begin() {\r\n this.ChangeState(ChaseNpcState.Run);\r\n this.begin = true;\r\n }\r\n onUpdate() {\r\n if (!this.begin)\r\n return;\r\n if (this.isdead)\r\n return;\r\n let _host = this.m_hostage.getComponent(Hostage);\r\n if (_host.isdead) {\r\n this.ChangeState(ChaseNpcState.Idle);\r\n return;\r\n }\r\n if (this.frontdie || this.reardie) {\r\n this.ChangeState(ChaseNpcState.Die);\r\n return;\r\n }\r\n var distance = Vector3.distance(PlayerControl.Instance.Player.transform.position, this.m_chasenpcmodel.transform.position);\r\n if (distance < this.Distance && !this.atked) {\r\n Vector3.subtract(this.m_hostage.transform.position, this.m_chasenpcmodel.transform.position, this.currotV);\r\n Vector3.normalize(this.currotV, this.currotV);\r\n this.m_chasenpcmodel.transform.lookAt(new Vector3(this.m_chasenpcmodel.transform.position.x - this.currotV.x, this.m_chasenpcmodel.transform.position.y, this.m_chasenpcmodel.transform.position.z - this.currotV.z), new Vector3(0, 1, 0));\r\n this.NPCMoveDir = this.currotV;\r\n this.canmove = true;\r\n _host.canmove = true;\r\n let _dis = this.m_chasenpcmodel.transform.position.z - this.NpcStartPos.z;\r\n if (_dis >= this.ChaseDistance) {\r\n this.atked = true;\r\n this.m_chasenpcspeed = this.NPCRushSpeed;\r\n this.ChangeState(ChaseNpcState.Atk);\r\n }\r\n }\r\n this.Move(this.NPCMoveDir, this.m_chasenpcspeed);\r\n this.RayCheck();\r\n }\r\n Move(_dir, _speed) {\r\n let stage = Number(AccountManager.Instance.curplayerData.GainAccount(\"stage\"));\r\n if (stage <= 2)\r\n return;\r\n if (this.canmove) {\r\n var sp = GameTools.Instance.lerp(this.curspeed, _speed, 0.1);\r\n this.curspeed = sp;\r\n Vector3.scale(_dir, this.curspeed, this.offest);\r\n Vector3.add(this.m_chasenpcmodel.transform.position, this.offest, this.curpos);\r\n Vector3.lerp(this.m_chasenpcmodel.transform.position, this.curpos, 0.15, this.curpos);\r\n this.curpos = new Vector3(this.curpos.x, this.curpos.y, this.curpos.z);\r\n this.m_chasenpcmodel.transform.position = this.curpos;\r\n }\r\n }\r\n AddSpeed() {\r\n this.m_chasenpcspeed = StageControl.Instance.curstage.npcspeed;\r\n }\r\n SlowSpeed() {\r\n this.m_chasenpcspeed = StageControl.Instance.curstage.npcspeed / 2;\r\n }\r\n GameOver() {\r\n EventManager.StageOff(StageState.Press, this, this.AddSpeed);\r\n EventManager.StageOff(StageState.UnPress, this, this.SlowSpeed);\r\n EventManager.StageOff(StageState.Start, this, this.Begin);\r\n EventManager.StageOff(StageState.Lose, this, this.GameOver);\r\n EventManager.StageOff(StageState.Win, this, this.GameOver);\r\n }\r\n ChangeState(_state) {\r\n if (this.m_chasenpcstate == _state)\r\n return;\r\n this.m_chasenpcstate = _state;\r\n switch (this.m_chasenpcstate) {\r\n case ChaseNpcState.Atk:\r\n this.Attack();\r\n break;\r\n case ChaseNpcState.Idle:\r\n this.Idle();\r\n break;\r\n case ChaseNpcState.Run:\r\n this.Run();\r\n break;\r\n case ChaseNpcState.Die:\r\n this.Die();\r\n break;\r\n }\r\n }\r\n Idle() {\r\n this.m_chasenpcanimator.play(\"idle\");\r\n }\r\n Attack() {\r\n this.m_chasenpcanimator.play(\"atk\");\r\n Laya.timer.once(500, this, () => {\r\n this.canmove = false;\r\n });\r\n }\r\n Win() {\r\n this.m_chasenpcanimator.play(\"win\");\r\n }\r\n Run() {\r\n this.m_chasenpcanimator.play(\"run\");\r\n }\r\n Die() {\r\n if (this.die)\r\n return;\r\n this.die = true;\r\n this.PiaoZi();\r\n GameManager.Instance.KillNum++;\r\n InGameView.Instance.InitUI();\r\n this.isdead = true;\r\n EventManager.StageOff(StageState.Start, this, this.Begin);\r\n if (this.frontdie) {\r\n this.m_chasenpcanimator.play(\"diefront\");\r\n }\r\n if (this.reardie) {\r\n this.m_chasenpcanimator.play(\"dierear\");\r\n }\r\n this.m_chasenpcanimator.play(\"diefront\");\r\n this.canmove = false;\r\n }\r\n PiaoZi() {\r\n let headshoot = new Laya.Image();\r\n headshoot.skin = \"Game/res/textrue/headshoot.png\";\r\n headshoot.scaleX = 1;\r\n headshoot.scaleY = 1;\r\n headshoot.anchorX = 0.5;\r\n headshoot.anchorY = 0.5;\r\n Laya.stage.addChild(headshoot);\r\n Laya.timer.once(1000, this, () => {\r\n headshoot.visible = false;\r\n Laya.timer.clear(this, this.UIFollow);\r\n });\r\n GameManager.Instance.UIArray.push(headshoot);\r\n let UIPos = this.m_chasenpcmodel.getChildByName(\"UIPos\");\r\n let screenpos2 = new Vector3();\r\n Laya.timer.frameLoop(1, this, this.UIFollow, [UIPos, headshoot, screenpos2]);\r\n }\r\n UIFollow(UIPos, UI, POS) {\r\n AssetManager.Instance.maincamera.worldToViewportPoint(UIPos.transform.position, POS);\r\n UI.pos(POS.x, POS.y);\r\n }\r\n RayCheck() {\r\n let startpos = new Vector3(this.m_chasenpcmodel.transform.position.x, this.m_chasenpcmodel.transform.position.y + 0.5, this.m_chasenpcmodel.transform.position.z);\r\n let dir = Transform3DHelper.getForward(this.m_chasenpcmodel.transform);\r\n let ray = new Laya.Ray(startpos, dir);\r\n let hitres = new Laya.HitResult();\r\n let isHit = AssetManager.Instance.mainscene.physicsSimulation.rayCast(ray, hitres, 3, 200);\r\n if (isHit) {\r\n let target = hitres.collider.owner.parent;\r\n if (target.name == \"hostage\") {\r\n let _hostage = target.getComponent(Hostage);\r\n _hostage.isdead = true;\r\n }\r\n else if (target.name == \"bonfire\") {\r\n this.ChangeState(ChaseNpcState.Die);\r\n }\r\n else if (target.name == \"stone\") {\r\n this.m_chasenpcspeed = 0;\r\n }\r\n else if (target.name == \"\") {\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ChaseNpc.js.map",
  3. "references": [
  4. "E:/LayaProject/ArcherWorrior/src/Tools/AssetManager.ts",
  5. "E:/LayaProject/ArcherWorrior/src/Tools/GameTools.ts",
  6. "E:/LayaProject/ArcherWorrior/src/Tools/EventManager.ts",
  7. "E:/LayaProject/ArcherWorrior/src/Tools/GamePool.ts",
  8. "E:/LayaProject/ArcherWorrior/src/Game/Hostage.ts",
  9. "E:/LayaProject/ArcherWorrior/src/Net/AccountManager.ts",
  10. "E:/LayaProject/ArcherWorrior/src/Game/PlayerControl.ts",
  11. "E:/LayaProject/ArcherWorrior/src/Game/NpcRunner.ts",
  12. "E:/LayaProject/ArcherWorrior/src/Game/GameManager.ts",
  13. "E:/LayaProject/ArcherWorrior/src/View/InGameView.ts",
  14. "E:/LayaProject/ArcherWorrior/src/Game/StageControl.ts"
  15. ],
  16. "map": "{\"version\":3,\"file\":\"ChaseNpc.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/Game/ChaseNpc.ts\"],\"names\":[],\"mappings\":\"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\"}"
  17. }