CheckpointCheck.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. import { GameEvent } from "../../common/config/GameEvent";
  15. /**
  16. * 通关
  17. */
  18. @ecs.register('CheckpointCheckPass')
  19. export class CheckpointCheckPassComp extends ecs.Comp {
  20. reset() {
  21. }
  22. }
  23. /**
  24. * 失败
  25. */
  26. @ecs.register('CheckpointCheckFail')
  27. export class CheckpointCheckFailComp extends ecs.Comp {
  28. reset() {
  29. }
  30. }
  31. export class CheckpointCheckSystem extends ecs.ComblockSystem implements ecs.IEntityEnterSystem {
  32. filter(): ecs.IMatcher {
  33. return ecs.allOf(CheckpointModelComp).anyOf(CheckpointCheckPassComp, CheckpointCheckFailComp);
  34. }
  35. entityEnter(e: Checkpoint): void {
  36. // e.CheckpointModel.curVehicle
  37. const passComp = e.get(CheckpointCheckPassComp)
  38. const failComp = e.get(CheckpointCheckFailComp)
  39. if(passComp){
  40. DataSdk.reportEvent(REPORT_EVENT.LEVEL_PASS,ecs.getSingleton(SingletonModuleComp)?.account?.AccountModel?.lv)
  41. oops.audio.playEffect('common/audio/level_complete')
  42. e.upgrade()
  43. oops.gui.open(UIID.LevelPass)
  44. this.exit(e)
  45. return
  46. }
  47. if(failComp){
  48. DataSdk.reportEvent(REPORT_EVENT.LEVEL_FAIL,JSON.stringify({
  49. lv:ecs.getSingleton(SingletonModuleComp)?.account?.AccountModel?.lv,
  50. peopleCount:ecs.getSingleton(SingletonModuleComp).account?.checkpoint?.CheckpointModel?.peopleCount
  51. }))
  52. oops.gui.open(UIID.LevelFail)
  53. this.exit(e)
  54. return
  55. }
  56. }
  57. exit(e:Checkpoint){
  58. e.remove(CheckpointCheckPassComp)
  59. e.remove(CheckpointCheckFailComp)
  60. e.remove(StationOperationComp)
  61. e.remove(VehicleOperationComp)
  62. }
  63. }