/// <summary> /// 释放技能 /// </summary> /// <param name="skillId"></param> public void ReleaseSkill(int skillid) { SkillID = skillid; IsWeaponSkill = IsWeapon(SkillID); SkillData skillData = m_CfgEternityProxy.GetSkillData(SkillID); m_Context.AddObject <SkillData>(skillData); Leyoutech.Utility.DebugUtility.LogWarning("技能", string.Format("OnStateMachineComplete->执行释放技能 ------> Entity = {0} , 主角 = {1},技能类型 = {2} ,{3}, 技能ID ={4}, IsTrigger = {5} ", m_ISpacecraftSkillProperty.EntityId(), m_ISpacecraftSkillProperty.IsMain(), skillData.BaseData.Value.CategoryType, IsWeaponSkill ? "武器技能" : "飞船技能", SkillID, skillData.BaseData.Value.IsTrigger )); PrepareRunningData(SkillID); if (m_ISpacecraftSkillProperty.IsMain()) { SkillRPCNet skillRPC = new SkillRPCNet(RpcCloseAction); m_Context.AddObject <SkillRPCNet>(skillRPC); } m_StageType = SkillStageType.Begin; m_StateMachine.SetInitialState(SkillStateToken.Begin); //进度条隐藏显示 ShowProgressBar(true); }
public override void OnInitialize(IFlyerProperty property) { m_FlyerProprety = property; m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_Context = new DefaultContext(); m_Context.AddObject(this, true); m_Context.AddObject(typeof(IBulletTargetProperty), property, true); m_Context.AddObject(typeof(IActionFactory), TimelineActionFactory.Factory, true); m_Context.AddObject(typeof(IBaseActionProperty), property, true); m_Context.AddObject(typeof(IMoveActionProperty), property, true); ContextAddOtherObject(); m_StateMachine = new FlyerStateMachine(m_Context); m_StateMachine.CompletedHandler += OnStateMachineComplete; m_StageType = FlyerStageType.Flying; m_StateMachine.SetInitialState(FlyerStateToken.Flying); }
public override void OnInitialize(ISpacecraftSkillProperty property) { m_ISpacecraftSkillProperty = property; m_CfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; m_PlayerSkillProxy = GameFacade.Instance.RetrieveProxy(ProxyName.PlayerSkillProxy) as PlayerSkillProxy; m_Context = new DefaultContext(); m_RunningData = new SkillRunningData(); m_Context.AddObject(this, true); m_Context.AddObject(typeof(IActionFactory), TimelineActionFactory.Factory, true); m_Context.AddObject(m_RunningData, true); m_Context.AddObject(typeof(IBaseActionProperty), property, true); m_Context.AddObject(typeof(IBindNodeActionProperty), property, true); ContextAddOtherObject(); m_StateMachine = new SkillStateMachine(m_Context); m_StateMachine.CompletedHandler += OnStateMachineComplete; m_StateMachine.ChangedHandler += OnStateMachineChanged; }
/// <summary> /// 其他上下文需要携带的数据 /// </summary> private void ContextAddOtherObject() { FlyerData flyerData = m_CfgEternityProxy.GetFlyerData(m_FlyerProprety.GetFlyerDataId()); m_Context.AddObject <FlyerData>(flyerData); }