{
  "format_version": "1.10.0",
  "particle_effect": {
    "description": {
      "identifier": "tsu_morph:shulker_bullet",
      "basic_render_parameters": {
        "material": "particles_blend",
        "texture": "textures/particle/particles"
      }
    },
    "components": {
      "minecraft:emitter_rate_steady": {
        "spawn_rate": 20,
        "max_particles": 50
      },
      "minecraft:emitter_lifetime_once": {
        "active_time": 1
      },
      "minecraft:emitter_shape_point": {},
      "minecraft:particle_lifetime_expression": {
        "max_lifetime": "Math.random(3, 3.6)"
      },
      "minecraft:particle_initial_speed": 0,
      "minecraft:particle_motion_dynamic": {
        "linear_acceleration": [
          0,
          -0.2,
          0
        ],
        "linear_drag_coefficient": 0.49
      },
      "minecraft:particle_appearance_billboard": {
        "size": [
          "(variable.particle_random_1 * 0.5f + 0.5f) * 0.2",
          "(variable.particle_random_1 * 0.5f + 0.5f) * 0.2"
        ],
        "facing_camera_mode": "lookat_xyz",
        "uv": {
          "texture_width": 128,
          "texture_height": 128,
          "flipbook": {
            "base_UV": [
              56,
              88
            ],
            "size_UV": [
              8,
              8
            ],
            "step_UV": [
              -8,
              0
            ],
            "frames_per_second": 8,
            "max_frame": 8,
            "stretch_to_lifetime": true
          }
        }
      },
      "minecraft:particle_appearance_tinting": {
        "color": [
          "variable.particle_age > (variable.particle_lifetime / 2.0) ? 1 - (0.0153 * (1 - Math.pow(0.7, variable.particle_age)) / (1 - 0.7)) : 1.0",
          "variable.particle_age > (variable.particle_lifetime / 2.0) ? 1 - (0.0387 * (1 - Math.pow(0.7, variable.particle_age)) / (1 - 0.7)) : 1.0",
          "variable.particle_age > (variable.particle_lifetime / 2.0) ? 1 - (0.0636 * (1 - Math.pow(0.7, variable.particle_age)) / (1 - 0.7)) : 1.0",
          "variable.particle_age > (variable.particle_lifetime / 2.0) ? 1 - 0.60 * ((variable.particle_age - (variable.particle_lifetime / 2.0)) / (variable.particle_lifetime / 2.0)) : 1.0"
        ]
      }
    }
  }
}