@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); }
/** * 让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); }