SkillBase.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { __SkillData } from "../../../data/sdata/SManage";
  2. import AIBase from "../AI/AIBase";
  3. import FSprite from "../FSprite";
  4. /**
  5. * 技能基础属性
  6. */
  7. const {ccclass, property} = cc._decorator;
  8. @ccclass
  9. export default class SkillBase extends cc.Component {
  10. /**
  11. * 技能CD时间
  12. */
  13. @property({
  14. displayName: '技能编号'
  15. })
  16. public ID:number = 0;
  17. /**
  18. * 技能CD时间
  19. */
  20. @property({
  21. displayName: '技能CD时间(毫秒)'
  22. })
  23. public CD:number = 3000;
  24. /**
  25. * 技能CD时间
  26. */
  27. @property({
  28. displayName: '有效射程'
  29. })
  30. public range:number = 1000;
  31. /**
  32. * 技能CD时间
  33. */
  34. @property({
  35. displayName: '移动速度'
  36. })
  37. public speed:number = 500;
  38. /**
  39. * 技能释放到结束的时间
  40. */
  41. @property({
  42. displayName: '技能持续的时间(毫秒)'
  43. })
  44. public continued:number = 2000;
  45. /**
  46. * 开始计时
  47. */
  48. public time:number = 0;
  49. public sprite:FSprite;
  50. public AI:AIBase;
  51. /**
  52. * 技能数据
  53. */
  54. public _skillData:__SkillData
  55. onLoad(){
  56. this.sprite = this.node.getComponent(FSprite);
  57. this.AI = this.node.getComponent(AIBase);
  58. }
  59. /**
  60. * 技能是否准备好
  61. */
  62. public ready():boolean{
  63. let dx = new Date().getTime();
  64. if(this.time == 0){
  65. this.time = dx;
  66. return false
  67. }
  68. if(dx - this.time > this.CD){
  69. return true;
  70. }
  71. return false;
  72. }
  73. /**
  74. * 释放技能
  75. * @target 攻击目标
  76. * @callback 技能结束回调
  77. */
  78. public exe(target:FSprite,callback:()=>void){
  79. }
  80. }