//This JSON was modified by Rainvay_ZCYF (@ZouChenyunfei). Please do not use this document without permission.
{
  "format_version": "1.10.0",
  "particle_effect": {
    "description": {
      "identifier": "minecraft:totem_particle",
      "basic_render_parameters": {
        "material": "particles_blend",
        "texture": "textures/particle/particles"
      }
    },
    "components": {
      "minecraft:emitter_rate_steady": {
        "spawn_rate": 320,
        "max_particles": 480
      },
      "minecraft:emitter_lifetime_once": {
        "active_time": 2
      },
      "minecraft:emitter_shape_point": {
        "offset": [ 0.0, 0.0, 0.0 ],
        "direction": [ "Math.random(-1.0, 1.0)", "Math.random(-1.0, 1.0)", "Math.random(-1.0, 1.0)" ]
      },
      "minecraft:particle_initial_speed": "Math.random(12.0, 25.0)",
      "minecraft:particle_lifetime_expression": {
        "max_lifetime": "3.0 + Math.random(0.0, 0.6)"
      },
      "minecraft:particle_motion_dynamic": {
        "linear_acceleration": [ 0, -13.6, 0 ],
        "linear_drag_coefficient": 7
      },
      "minecraft:particle_motion_collision": {
        "coefficient_of_restitution": 0.1,
        "collision_drag": 100,
        "collision_radius": 0.004
      },
      "minecraft:particle_appearance_billboard": {
        "size": [
          "(0.1 + variable.particle_random_1*0.05)",
          "(0.1 + variable.particle_random_1*0.05)"
        ],
        "facing_camera_mode": "rotate_xyz",
        "uv": {
          "texture_width": 128,
          "texture_height": 128,
          "flipbook": {
            "base_UV": [ 64, 88 ],
            "size_UV": [ 8, 8 ],
            "step_UV": [ -8, 0 ],
            "frames_per_second": 8,
            "max_frame": 8,
            "stretch_to_lifetime": true,
            "loop": false
          }
        }
      },
    "minecraft:particle_appearance_tinting": {
        "color": [ "((variable.particle_random_4 * variable.particle_random_4) * 0.3 + 0.7 - variable.particle_random_2 * variable.particle_random_2 * 0.3) * (variable.particle_random_3 > 0.6 ? (variable.particle_random_3 * 1.3 > 1 ? 1 : variable.particle_random_3 * 1.3) : variable.particle_random_3 * 0.2)", "((variable.particle_random_4 * variable.particle_random_4) * 0.2 + 0.7 - variable.particle_random_2 * 0.25)" , 0.0, "variable.particle_age / variable.particle_lifetime > 0.5 ? 1.5 - variable.particle_age / variable.particle_lifetime : 1.0" ]
      }
    }
  }
}