Example #1
0
    private void OnProjectileDestroyed(ProjectilePipelineParameters param)
    {
        var velocity     = param.projectile.Velocity;
        var baseRotation = velocity.Rotation();
        var spawnPos     = param.projectile.Position + Vector2.ClampMagnitude(velocity, Constants.COLLISION_CORRECTION_EPS);
        var spawnParam   = new ProjectileSpawnParameters(spawnPos, baseRotation, velocity.magnitude, _settings.ttl, param.inheritableModules, param.inheritableModules, param.projectile.IsDummy);

        _factory.Create(spawnParam);
        spawnParam.rotation = baseRotation + _settings.spreadAngle;
        _factory.Create(spawnParam);
        spawnParam.rotation = baseRotation - _settings.spreadAngle;
        _factory.Create(spawnParam);
    }
Example #2
0
 private void StopTimer(ProjectilePipelineParameters parameters)
 {
     UnsubscribeLoop();
 }
Example #3
0
 private void StartTimer(ProjectilePipelineParameters parameters)
 {
     FixedTravelTime = 0.0f;
     SubscribeLoop();
 }