{
  "format_version": "1.10.0",
  "minecraft:client_entity": {
    "description": {
      "identifier": "nicothekid:skeleton_swordman",
      "textures": {
        "default": "textures/entity/nicos_mobs/skeleton/nicothekid_skeleton_swordman"
      },
      "spawn_egg": {
        "base_color": "#d9d9d9",
        "overlay_color": "#505050"
      },
      "geometry": {
        "default": "geometry.entity.nicothekid_skeleton"
      },
      "materials": {
        "default": "skeleton_warrior"
      },
      "enable_attachables": true,
      "render_controllers": [
        "controller.render.nicothekid_skeleton_warrior"
      ],
      "animations": {
        "attack_hand": "animation.nicothekid_skeleton_warrior.attack_hand",
        "attack_melee": "animation.nicothekid_skeleton_warrior.attack_melee",
        "attack_ranged": "animation.nicothekid_skeleton_warrior.attack_ranged",
        "attack_crossbow_hold": "animation.nicothekid_skeleton_warrior.attack_crossbow_hold",
        "attack_crossbow_charge": "animation.nicothekid_skeleton_warrior.attack_crossbow_charge",
        "attack_trident": "animation.nicothekid_skeleton_warrior.attack_trident",
        "attack_trident.rotations": "animation.nicothekid_skeleton_warrior.attack_trident.rotations",
        "attack.rotations": "animation.nicothekid_skeleton_warrior.attack.rotations",
        "base_pose": "animation.nicothekid_skeleton_warrior.base_pose",
        "bobbing": "animation.nicothekid_skeleton_warrior.bobbing",
        "charging": "animation.nicothekid_skeleton_warrior.charging",
        "damage_nearby_mobs": "animation.nicothekid_skeleton_warrior.damage_nearby_mobs",
        "holding": "animation.nicothekid_skeleton_warrior.holding",
        "look_at_target_default": "animation.nicothekid_skeleton_warrior.look_at_target_default",
        "look_at_target_gliding": "animation.nicothekid_skeleton_warrior.look_at_target_gliding",
        "look_at_target_swimming": "animation.nicothekid_skeleton_warrior.look_at_target_swimming",
        "riding.arms": "animation.nicothekid_skeleton_warrior.riding.arms",
        "riding.legs": "animation.nicothekid_skeleton_warrior.riding.legs",
        "sneaking": "animation.nicothekid_skeleton_warrior.sneaking",
        "swimming": "animation.nicothekid_skeleton_warrior.swimming",
        "use_item_progress": "animation.nicothekid_skeleton_warrior.use_item_progress",
        "walking": "animation.nicothekid_skeleton_warrior.walking",
        "controller_attack": "controller.animation.nicothekid_skeleton_warrior.attack",
        "controller_attack_crossbow": "controller.animation.nicothekid_skeleton_warrior.attack_crossbow",
        "controller_general": "controller.animation.nicothekid_skeleton_warrior.general",
        "controller_look_at_target": "controller.animation.nicothekid_skeleton_warrior.look_at_target",
        "controller_movement": "controller.animation.nicothekid_skeleton_warrior.movement"
      },
      "scripts": {
        "pre_animation": [
          "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;",
          "variable.attack_state = Math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3;",
          "variable.attack_state2 = Math.sin(variable.attack_time * 180.0) * 57.3;",
          "variable.attack = Math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3;",
          "variable.attack2 = Math.sin(variable.attack_time * 180.0) * 57.3;"
        ],
        "animate": [
          "controller_attack",
          "controller_attack_crossbow",
          "controller_look_at_target",
          "controller_movement",
          "bobbing",
          "holding",
          {
            "attack_trident": "variable.is_brandishing_spear"
          },
          {
            "charging": "query.is_charging"
          },
          {
            "damage_nearby_mobs": "variable.damage_nearby_mobs"
          },
          {
            "riding.arms": "query.is_riding"
          },
          {
            "riding.legs": "query.is_riding"
          },
          {
            "sneaking": "query.is_sneaking"
          },
          {
            "swimming": "variable.swim_amount > 0.0"
          },
          {
            "use_item_progress": "( variable.use_item_interval_progress > 0.0 ) || ( variable.use_item_startup_progress > 0.0 )"
          }
        ]
      }
    }
  }
}
