protected override void OnApply(ApplyEffectParameters applyEffectParameters)
    {
        var pushableComponent = applyEffectParameters.GetComponentFromOccupant <UnitPushableComponent>();

        if (pushableComponent != null)
        {
            pushableComponent.Push(GridHelper.VectorToDirection(applyEffectParameters.Direction));
        }
    }
    protected override void OnGetPreview(ApplyEffectParameters applyEffectParameters, EffectPreview effectPreview)
    {
        var pushableComponent = applyEffectParameters.GetComponentFromOccupant <UnitPushableComponent>();

        if (pushableComponent != null)
        {
            var vectorToDirection = GridHelper.VectorToDirection(applyEffectParameters.Direction);

            var collisionResults = applyEffectParameters.Helper.GetCollisions(pushableComponent.Unit, vectorToDirection);
            collisionResults.ForEach(result =>
            {
                effectPreview.RegisterHealthChange(result, UnitPushableComponent.DamageOnCollision);
                effectPreview.RegisterCollision(result);
            });

            effectPreview.RegisterPush(applyEffectParameters.Receiver, vectorToDirection);
        }
    }
예제 #3
0
 protected override void OnGetPreview(ApplyEffectParameters applyEffectParameters, EffectPreview effectResult)
 {
     effectResult.RegisterHealthChange(applyEffectParameters.Receiver, _amount);
 }
예제 #4
0
 protected override void OnApply(ApplyEffectParameters applyEffectParameters)
 {
     applyEffectParameters.Receiver.ApplyHealthChange(_amount);
 }
 protected abstract void OnApply(ApplyEffectParameters applyEffectParameters);
 protected abstract void OnGetPreview(ApplyEffectParameters applyEffectParameters, EffectPreview effectResult);
 protected override void OnApply(ApplyEffectParameters applyEffectParameters)
 {
     Assert.IsNotNull(_hazardData);
     applyEffectParameters.Receiver.Hazards.Add(_hazardData);
 }
 protected override void OnGetPreview(ApplyEffectParameters applyEffectParameters, EffectPreview effectResult)
 {
     // Todo.
 }