public override void ExecuteStart(BehaviorExecutionParameters parameters) { if (parameters.BranchContext.Target.TryGetComponent <DestroyableComponent>(out var stats)) { stats.Armor = (uint)((int)stats.Armor + Armor); } }
public override void Dismantle(BehaviorExecutionParameters parameters) { if (!(parameters.Context.Associate is Player player)) { return; } if (!player.TryGetComponent <ControllablePhysicsComponent>( out var controllablePhysicsComponent)) { return; } controllablePhysicsComponent.Flying = false; player.Zone.BroadcastMessage(new SetJetPackModeMessage { AirSpeed = Airspeed, MaxAirSpeed = MaxAirspeed, VerticalVelocity = VerticalVelocity, DoHover = EnableHover, EffectId = EffectId, BypassChecks = true, Use = false, Associate = player, }); }
public override void Dismantle(BehaviorExecutionParameters parameters) { if (parameters.Context.Associate is Player player) { player.OnSmashObject.RemoveListener(OnSmash); } }
public override Task ExecuteStart(BehaviorExecutionParameters parameters) { if (parameters.BranchContext.Target.TryGetComponent <DestroyableComponent>(out var stats)) { stats.Imagination = (uint)((int)stats.Imagination + Imagination); } return(Task.CompletedTask); }
public override void Dismantle(BehaviorExecutionParameters parameters) { Logger.Debug($"Dismantling Buff id {_buffInfo.BuffId}"); var target = _targetCaster ? parameters.Context.Associate : parameters.BranchContext.Target; if (!target.TryGetComponent <BuffComponent>(out var buffComponent)) { buffComponent = target.AddComponent <BuffComponent>(); } buffComponent.RemoveBuff(_buffInfo); }
public override void ExecuteStart(BehaviorExecutionParameters parameters) { Logger.Debug($"Executing RemoveBuff. Buff id {_buffId}"); var target = parameters.BranchContext.Target; if (!target.TryGetComponent <BuffComponent>(out var buffComponent)) { buffComponent = target.AddComponent <BuffComponent>(); } buffComponent.RemoveBuffById(_buffId); }
public override void Dismantle(BehaviorExecutionParameters behaviorExecutionParameters) { if (!behaviorExecutionParameters.Context.Associate.TryGetComponent <DestroyableComponent>( out var stats)) { return; } stats.MaxHealth -= (uint)Life; stats.MaxArmor -= (uint)Armor; stats.MaxImagination -= (uint)Imagination; }
public override Task ExecuteStart(BehaviorExecutionParameters behaviorExecutionParameters) { if (!behaviorExecutionParameters.Context.Associate.TryGetComponent <DestroyableComponent>( out var stats)) { return(Task.CompletedTask); } stats.MaxHealth += (uint)Life; stats.MaxArmor += (uint)Armor; stats.MaxImagination += (uint)Imagination; return(Task.CompletedTask); }
public override void ExecuteStart(BehaviorExecutionParameters parameters) { var rotateOffset = Vector3.Transform(new Vector3(0, 0, Distance), parameters.Context.Associate.Transform.Rotation); var obj = GameObject.Instantiate <AuthoredGameObject>( parameters.Context.Associate.Zone, Lot, parameters.Context.Associate.Transform.Position + rotateOffset, parameters.Context.Associate.Transform.Rotation, parameters.Context.Associate ); // Run in the background as long running task as game object construction can lead to game messages Task.Run(() => { Object.Start(obj); GameObject.Construct(obj); // Schedule the destruction in the game loop parameters.Schedule(() => Object.Destroy(obj), parameters.BranchContext.Duration); }); }
public override void ExecuteStart(BehaviorExecutionParameters parameters) { var quickBuild = GameObject.Instantiate <AuthoredGameObject>( parameters.Context.Associate.Zone, Lot, parameters.Context.Associate.Transform.Position, parameters.Context.Associate.Transform.Rotation, parameters.Context.Associate ); quickBuild.Transform.Position = parameters.Context.Associate.Transform.Position; Object.Start(quickBuild); GameObject.Construct(quickBuild); GameObject.Serialize(quickBuild); var _ = Task.Run(async() => { await Task.Delay(parameters.BranchContext.Duration); Object.Destroy(quickBuild); }); }
public override Task ExecuteStart(BehaviorExecutionParameters parameters) { var obj = GameObject.Instantiate <AuthoredGameObject>( parameters.Context.Associate.Zone, Lot, parameters.Context.Associate.Transform.Position, parameters.Context.Associate.Transform.Rotation ); obj.Author = parameters.Context.Associate; Object.Start(obj); GameObject.Construct(obj); var _ = Task.Run(async() => { await Task.Delay(parameters.BranchContext.Duration); Object.Destroy(obj); }); return(Task.CompletedTask); }
/// <summary> /// Deserializes a sync skill bitstream using the provided context and branch context /// </summary> /// <param name="context">The global context to use</param> /// <param name="branchContext">The branch context to use</param> /// <returns><c>BehaviorExecutionParameters</c> gained by deserializing the sync skill</returns> public override void SerializeSync(BitWriter writer, BehaviorExecutionParameters parameters) { SerializeSync(writer, (T)parameters); }
/// <summary> /// Wrapper to call the generic typed version of this method /// </summary> /// <param name="parameters">The parameters to execute the dismantle with</param> public override void Dismantle(BehaviorExecutionParameters parameters) { }
public override void ExecuteStart(BehaviorExecutionParameters parameters) { parameters.Context.Associate.OnSkillEvent.Invoke(parameters.BranchContext.Target, EffectHandler); }
public override void ExecuteStart(BehaviorExecutionParameters parameters) { parameters.Context.Associate.Transform.LookAt(parameters.BranchContext.Target.Transform.Position); }
/// <summary> /// Wrapper to call the generic typed version of this method /// </summary> /// <param name="parameters">The parameters to use for serialization</param> public override void SerializeSync(BehaviorExecutionParameters parameters) { SerializeSync((T)parameters); }
/// <summary> /// Wrapper to call the generic typed version of this method /// </summary> /// <param name="parameters">The parameters to execute the dismantle with</param> public override async Task DismantleAsync(BehaviorExecutionParameters parameters) { await DismantleAsync((T)parameters); }
public override void Dismantle(BehaviorExecutionParameters parameters) { parameters.BranchContext.Target = parameters.Context.Associate; Action.Dismantle(parameters); }
/// <summary> /// Wrapper for the generic typed version of this method /// </summary> /// <param name="parameters">The parameters to execute the sync skill with</param> public override Task ExecuteSync(BehaviorExecutionParameters parameters) { return(ExecuteSync((T)parameters)); }
public override void ExecuteStart(BehaviorExecutionParameters parameters) { parameters.PlayFX(EffectId, target: parameters.Context.Associate); }
/// <summary> /// Wrapper for the generic typed version of this method /// </summary> /// <param name="parameters">The parameters to execute the sync skill with</param> public override void ExecuteSync(BehaviorExecutionParameters parameters) { ExecuteSync((T)parameters); }