Пример #1
0
  @Override
  public void pulse(int deltaTime) {
    if (timerBuffPulse == null) {
      timerBuffPulse = new TickTimer();
      timerBuffPulse.start(getTime(), BuffManager.INTERVAL_PULSE);
    }
    if (timerStatePulse == null) {
      timerStatePulse = new TickTimer();
      timerStatePulse.start(getTime(), 100);
    }
    super.pulse(deltaTime);

    // 单元移动了
    pulseMove(timeCurr);

    // 周期到了,则更新身上的buff
    if (timerBuffPulse.isPeriod(timeCurr)) {
      BuffManager.inst().pulse(this, timeCurr);
    }

    // 施放可以施放的有前摇的技能
    updateSkill(timeCurr);

    // 更新各种状态
    updateState(timeCurr);
  }
Пример #2
0
  /**
   * 让unitObj进入某种状态,time为持续时间
   *
   * @param stateKey
   * @param time
   */
  public void toState(UnitObjectStateKey stateKey, long time) {
    //		Log.temp.info("toState :{} {}", stateKey.toString(), time);
    long curr = getTime();
    if (state.get(stateKey) != null) {
      TickTimer timer = state.get(stateKey);
      long timeLeft = timer.getTimeLeft(curr);
      timer.start(getTime(), Math.max(time, timeLeft));
    } else {
      TickTimer timer = new TickTimer();
      timer.start(getTime(), time);
      state.put(stateKey, timer);
    }

    updateState(curr, true);
  }