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); } }
protected override void OnGetPreview(ApplyEffectParameters applyEffectParameters, EffectPreview effectResult) { effectResult.RegisterHealthChange(applyEffectParameters.Receiver, _amount); }
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. }