async Task <UpdatedScheduledScaleEvent> IScaleManager.ScheduleScaleEvent(ScaleEvent scaleEvent, CancellationToken cancellationToken) { var events = await StateManager.GetStateAsync <List <ManagedScaleEvent> >(Events); var modifiedEvent = events.Find(e => e.Id == scaleEvent.Id); var state = modifiedEvent?.State ?? ScaleEventState.NotFound; if (modifiedEvent == null) { modifiedEvent = new ManagedScaleEvent { Id = scaleEvent.Id } } ; modifiedEvent.Name = scaleEvent.Name; modifiedEvent.RequiredScaleAt = scaleEvent.RequiredScaleAt; modifiedEvent.Scale = scaleEvent.Scale; modifiedEvent.StartScaleDownAt = scaleEvent.StartScaleDownAt; modifiedEvent.EstimatedScaleUpAt = modifiedEvent.RequiredScaleAt - EstimatedScaleTime; events.Add(modifiedEvent); await StateManager.SetStateAsync(Events, events, cancellationToken); return(new UpdatedScheduledScaleEvent { PreState = state, Id = modifiedEvent.Id, EstimatedScaleUpAt = modifiedEvent.EstimatedScaleUpAt, Name = modifiedEvent.Name, RequiredScaleAt = modifiedEvent.RequiredScaleAt, Scale = modifiedEvent.Scale, StartScaleDownAt = modifiedEvent.StartScaleDownAt, }); }
public override void OnMsg(int msgID, object args) { if (msgID == (int)Const_Util.UNIT_MSG.START_JUMP) { if (jumpOprEvent != null && !jumpOprEvent.IsFinish()) { return; } jumpOprEvent = new SeqEvent(); Vector3 originScale = cobj.GetRenderObjTr().localScale; Vector3 destScale = originScale * 1.34f; ParallelEvent jumpUpPara = new ParallelEvent(); ScaleEvent scaleTo = new ScaleEvent(cobj.GetRenderObjTr(), originScale, destScale, 0.4f); jumpUpPara.AddEvent(scaleTo); SeqEvent upEvent = new SeqEvent(); TimerEvent upTimeDelay = new TimerEvent(0.1f); upEvent.AddEvent(upTimeDelay); OneTimerEvent scaletoFunc = new OneTimerEvent(JumpEnough); upEvent.AddEvent(scaletoFunc); jumpUpPara.AddEvent(upEvent); TimerEvent timeDelay = new TimerEvent(0.8f); SeqEvent downEvent = new SeqEvent(); TimerEvent downTimeDelay = new TimerEvent(0.1f); downEvent.AddEvent(downTimeDelay); OneTimerEvent scalebackReset = new OneTimerEvent(JumpReset); downEvent.AddEvent(scalebackReset); ParallelEvent jumpDownPara = new ParallelEvent(); jumpDownPara.AddEvent(downEvent); ScaleEvent scaleBack = new ScaleEvent(cobj.GetRenderObjTr(), destScale, originScale, 0.4f); jumpDownPara.AddEvent(scaleBack); jumpOprEvent.AddEvent(jumpUpPara); jumpOprEvent.AddEvent(timeDelay); jumpOprEvent.AddEvent(jumpDownPara); jumpOprEvent.Begin(); } }
private void OnScaleEvent(ITransformable transformable, Vector3 delta) { ScaleEvent?.Invoke(transformable, new TransformationEventArgs(delta, ActivePivot)); }
public override void OnEvent(ScaleEvent evnt) { BoltEntity target = evnt.TargEnt; target.gameObject.transform.localScale = new Vector3 (evnt.Scale, evnt.Scale, evnt.Scale); }
protected void OnScale() { ScaleEvent?.Invoke(ScaleArgs); }