monsterModel.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { ConfigConst, EConfigConst } from "../cfg/ConfigDef";
  2. import { ConfigMgr } from "../cfg/configMgr";
  3. import { MonsterItem } from "../cfg/monsterItem";
  4. import { Utils } from "../common/utils";
  5. import { ZooId } from "../zoo/zooId";
  6. import { BulletPlay } from "./bulletPlay";
  7. const {ccclass, property, executeInEditMode, playOnFocus} = cc._decorator;
  8. @ccclass
  9. export class MonsterModel extends cc.Component{
  10. hp:number = 1000;
  11. atk:number = 100;
  12. zooId: number;
  13. protected onLoad(): void {
  14. this.zooId = this.addComponent(ZooId).id;
  15. cc.log('[MonsterModel]', this.zooId);
  16. }
  17. beAttacked(harmNum: number){
  18. this.hp -= harmNum;
  19. }
  20. isOver(){
  21. return this.hp <= 0;
  22. }
  23. init(id: string, level: number){
  24. cc.log('[MonsterModel] [init]', `[id:${id}]-[level:${level}]`);
  25. let monsterData= ConfigMgr.inst.getCfgClassById<MonsterItem>(EConfigConst.monster, id, MonsterItem);
  26. let atk = Utils.pos2vec2(monsterData.data.atk);
  27. let hp = Utils.pos2vec2(monsterData.data.hp);
  28. this.hp = hp.x + level * hp.y;
  29. this.atk = atk.x + level * hp.y;
  30. }
  31. setBullet(data: []){
  32. if(!data) return;
  33. cc.log('[MonsterModel] [setBullet]', data);
  34. let len = Math.floor(data.length/2);
  35. for (let index = 0; index < len; index++) {
  36. let cpt = this.addComponent(BulletPlay);
  37. cpt.monsterZooid = this.zooId;
  38. cpt.init(data[1+index*2], data[2+index*2]);
  39. cpt.start();
  40. }
  41. // let cpt = this.addComponent(BulletPlay);
  42. // cpt.monsterZooid = this.zooId;
  43. // cpt.init('1001', 0);
  44. }
  45. }