Esempio n. 1
0
 public override void ExecuteStart(BehaviorExecutionParameters parameters)
 {
     if (parameters.BranchContext.Target.TryGetComponent <DestroyableComponent>(out var stats))
     {
         stats.Armor = (uint)((int)stats.Armor + Armor);
     }
 }
Esempio n. 2
0
        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,
            });
        }
Esempio n. 3
0
 public override void Dismantle(BehaviorExecutionParameters parameters)
 {
     if (parameters.Context.Associate is Player player)
     {
         player.OnSmashObject.RemoveListener(OnSmash);
     }
 }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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;
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
            });
        }
Esempio n. 10
0
        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);
            });
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
 /// <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);
 }
Esempio n. 13
0
 /// <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)
 {
 }
Esempio n. 14
0
 public override void ExecuteStart(BehaviorExecutionParameters parameters)
 {
     parameters.Context.Associate.OnSkillEvent.Invoke(parameters.BranchContext.Target, EffectHandler);
 }
Esempio n. 15
0
 public override void ExecuteStart(BehaviorExecutionParameters parameters)
 {
     parameters.Context.Associate.Transform.LookAt(parameters.BranchContext.Target.Transform.Position);
 }
Esempio n. 16
0
 /// <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);
 }
Esempio n. 17
0
 /// <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);
 }
Esempio n. 18
0
 public override void Dismantle(BehaviorExecutionParameters parameters)
 {
     parameters.BranchContext.Target = parameters.Context.Associate;
     Action.Dismantle(parameters);
 }
Esempio n. 19
0
 /// <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));
 }
Esempio n. 20
0
 public override void ExecuteStart(BehaviorExecutionParameters parameters)
 {
     parameters.PlayFX(EffectId, target: parameters.Context.Associate);
 }
Esempio n. 21
0
 /// <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);
 }