CheckpointCheck.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { v3 } from "cc";
  2. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  3. import { MoveToComp } from "../../common/ecs/position/MoveTo";
  4. import { Checkpoint } from "../Checkpoint";
  5. import { CheckpointModelComp } from "../model/CheckpointModel";
  6. import { ECSEntity } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECSEntity";
  7. import { StationOperationComp } from "./StationOperation";
  8. import { VehicleOperationComp } from "./VehicleOperation";
  9. import { CheckpointUpgradeComp } from "./CheckpointUpgrade";
  10. import { oops } from "../../../../../extensions/oops-plugin-framework/assets/core/Oops";
  11. import { UIID } from "../../common/config/GameUIConfig";
  12. import { DataSdk, REPORT_EVENT } from "../../common/utils/datasdk";
  13. import { SingletonModuleComp } from "../../common/SingletonModuleComp";
  14. /**
  15. * 通关
  16. */
  17. @ecs.register('CheckpointCheckPass')
  18. export class CheckpointCheckPassComp extends ecs.Comp {
  19. reset() {
  20. }
  21. }
  22. /**
  23. * 失败
  24. */
  25. @ecs.register('CheckpointCheckFail')
  26. export class CheckpointCheckFailComp extends ecs.Comp {
  27. reset() {
  28. }
  29. }
  30. export class CheckpointCheckSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
  31. filter(): ecs.IMatcher {
  32. return ecs.allOf(CheckpointModelComp).anyOf(CheckpointCheckPassComp, CheckpointCheckFailComp);
  33. }
  34. entityEnter(e: Checkpoint): void {
  35. // e.CheckpointModel.curVehicle
  36. const passComp = e.get(CheckpointCheckPassComp)
  37. const failComp = e.get(CheckpointCheckFailComp)
  38. if(passComp){
  39. DataSdk.reportEvent(REPORT_EVENT.LEVEL_PASS,ecs.getSingleton(SingletonModuleComp)?.account?.AccountModel?.lv)
  40. oops.audio.playEffect('common/audio/level_complete')
  41. e.upgrade()
  42. oops.gui.open(UIID.LevelPass)
  43. this.exit(e)
  44. return
  45. }
  46. if(failComp){
  47. DataSdk.reportEvent(REPORT_EVENT.LEVEL_FAIL,JSON.stringify({
  48. lv:ecs.getSingleton(SingletonModuleComp)?.account?.AccountModel?.lv,
  49. peopleCount:ecs.getSingleton(SingletonModuleComp).account?.checkpoint?.CheckpointModel?.peopleCount
  50. }))
  51. oops.gui.open(UIID.LevelFail)
  52. this.exit(e)
  53. return
  54. }
  55. }
  56. exit(e:Checkpoint){
  57. e.remove(CheckpointCheckPassComp)
  58. e.remove(CheckpointCheckFailComp)
  59. e.remove(StationOperationComp)
  60. e.remove(VehicleOperationComp)
  61. }
  62. }