
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/pocket_domain', 15, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pocket_dimension', 'Pocket_Reality_Realization_Reality_Anim', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setX(-3)
        .setY(8)
        .setZ(-3)
        .setXRotDegrees(-164)
        .setYRotDegrees(-14)
        .setZRotDegrees(6)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setX(5)
        .setY(7)
        .setZ(0)
        .setXRotDegrees(-154)
        .setYRotDegrees(25)
        .setZRotDegrees(-41)
        .animate('InOutCubic', animation);
	}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/ocular', 15, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:illusion', 'Breakdown', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson()) {
	builder.get('body')
        .moveY(-10)
        .animate('InOutCubic', animation);
		
    builder.get('head')
        .setXRotDegrees(47.5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('chest')
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .setXRotDegrees(8)
        .setYRotDegrees(20)
        .setZRotDegrees(7.5)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(8)
        .setYRotDegrees(-20)
        .setZRotDegrees(-7.5)
        .animate('InOutCubic', animation);

    builder.get('right_leg')
        .setXRotDegrees(-82.5)
        .setYRotDegrees(12.5)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('left_leg')
        .setXRotDegrees(-82.5)
        .setYRotDegrees(-12.5)
        .animate('InOutCubic', animation);

}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/muscle_block', 15, (builder) => {
		let animation_ss = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:super_strength', 'Block_Abil', builder.getPartialTicks());
if (animation_ss > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setXRotDegrees(-85)
        .setYRotDegrees(-50)
        .setZRotDegrees(-70)
        .animate('InOutCubic', animation_ss);

    builder.get('left_arm')
        .setXRotDegrees(-85)
        .setYRotDegrees(50)
        .setZRotDegrees(70)
        .animate('InOutCubic', animation_ss);

}
 if (animation_ss > 0.0 && builder.isFirstPerson()) {
            // do first-person animations
    builder.get('right_arm').setXRotDegrees(-55).setYRotDegrees(15).setZRotDegrees(0).setY(1).setZ(-3).animate('InOutCubic', animation_ss);
    builder.get('left_arm').setXRotDegrees(-55).setYRotDegrees(-15).setZRotDegrees(0).setY(1).setZ(-3).animate('InOutCubic', animation_ss);
        } else {
            // do third-person animations
        }
		
		
let animation_geo = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Block_Abil', builder.getPartialTicks());
if (animation_geo > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setXRotDegrees(-85)
        .setYRotDegrees(-50)
        .setZRotDegrees(-70)
        .animate('InOutCubic', animation_geo);

    builder.get('left_arm')
        .setXRotDegrees(-85)
        .setYRotDegrees(50)
        .setZRotDegrees(70)
        .animate('InOutCubic', animation_geo);

}
 if (animation_geo > 0.0 && builder.isFirstPerson()) {
            // do first-person animations
    builder.get('right_arm').setXRotDegrees(-55).setYRotDegrees(15).setZRotDegrees(0).setY(1).setZ(-3).animate('InOutCubic', animation_geo);
    builder.get('left_arm').setXRotDegrees(-55).setYRotDegrees(-15).setZRotDegrees(0).setY(1).setZ(-3).animate('InOutCubic', animation_geo);
        } else {
            // do third-person animations
        }
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/cryo_armoury_2', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:cryokinetic_armoury', 'Arsenal_Anim_Spear', builder.getPartialTicks(),7, 9);
if (animation > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .moveY(5)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .moveY(5)
        .animate('InOutCubic', animation);

}


let animation_2 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:cryokinetic_armoury', 'Arsenal_Anim_Kama', builder.getPartialTicks());
if (animation_2 > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setXRotDegrees(15)
        .setZRotDegrees(85)
        .animate('InOutCubic', animation_2);

    builder.get('left_arm')
        .setXRotDegrees(-15)
        .setZRotDegrees(-85)
        .animate('InOutCubic', animation_2);

}
	

    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/cryo_armoury', 2, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:cryokinetic_armoury", "Arsenal_Anim_Kama_2")) {
		let animation_2 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:cryokinetic_armoury', 'Arsenal_Anim_Kama_2', builder.getPartialTicks());
if (animation_2 > 0 && !builder.isFirstPerson()) {
    builder.get('body')
        .setYRotDegrees(680)
        .animate('InOutCubic', animation_2);

}
		}

				 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Right_Hand")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:cryokinetic_armoury', 'Arsenal_Anim_Spear', builder.getPartialTicks(),1, 7);
if (animation > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setXRotDegrees(-90)
        .setYRotDegrees(35)
        .setZRotDegrees(-180)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(-66)
        .setYRotDegrees(37)
        .setZRotDegrees(-3)
        .animate('InOutCubic', animation);

}
	}
	
					 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Left_Hand")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:cryokinetic_armoury', 'Arsenal_Anim_Spear', builder.getPartialTicks(),1, 7);
if (animation > 0 && !builder.isFirstPerson()) {
    builder.get('left_arm')
        .setXRotDegrees(-90)
        .setYRotDegrees(-35)
        .setZRotDegrees(-180)
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .setXRotDegrees(66)
        .setYRotDegrees(37)
        .setZRotDegrees(-3)
        .animate('InOutCubic', animation);

}
	}

    });
});




PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/stockpile', 2, (builder) => {
		 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Right_Hand")) {
const progress_flick = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:stockpile', 'Stockpile_SuperFlick_Anim', builder.getPartialTicks());
if (progress_flick > 0.0 && !builder.isFirstPerson()) {

    builder.get('right_arm')
        .setXRotDegrees(-90)
        .setYRotDegrees(-7.5)
        .setZRotDegrees(90)
        .animate('InOutCubic', progress_flick );

    builder.get('left_arm')
        .setX(4)
        .setY(4)
        .setZ(-2)
        .setXRotDegrees(-155.5)
        .setYRotDegrees(6.5)
        .setZRotDegrees(-73)
        .animate('InOutCubic', progress_flick );

		}
if (progress_flick > 0.0 && builder.isFirstPerson()) {
    builder.get('right_arm').setXRotDegrees(-8.5).setYRotDegrees(-32.5).setZRotDegrees(-33).animate('InOutCubic', progress_flick );
    builder.get('right_arm').setY(-1).setX(-5).setZ(4).animate('InOutBack', progress_flick );

    builder.get('left_arm').setXRotDegrees(-70).setYRotDegrees(22.5).setZRotDegrees(35).animate('InOutCubic', progress_flick );
    builder.get('left_arm').setY(0).setX(0).setZ(-3).animate('InOutBack', progress_flick );


	}
}

 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Left_Hand")) {
const progress_flick = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:stockpile', 'Stockpile_SuperFlick_Anim', builder.getPartialTicks());
if (progress_flick > 0.0 && !builder.isFirstPerson()) {

    builder.get('left_arm')
        .setXRotDegrees(-90)
        .setYRotDegrees(7.5)
        .setZRotDegrees(-90)
        .animate('InOutCubic', progress_flick );

    builder.get('right_arm')
        .setX(-4)
        .setY(4)
        .setZ(-2)
        .setXRotDegrees(-155.5)
        .setYRotDegrees(-6.5)
        .setZRotDegrees(73)
        .animate('InOutCubic', progress_flick );

		}
if (progress_flick > 0.0 && builder.isFirstPerson()) {
    builder.get('left_arm').setXRotDegrees(-8.5).setYRotDegrees(32.5).setZRotDegrees(33).animate('InOutCubic', progress_flick );
    builder.get('left_arm').setY(-1).setX(5).setZ(4).animate('InOutBack', progress_flick );

    builder.get('right_arm').setXRotDegrees(-70).setYRotDegrees(-22.5).setZRotDegrees(-35).animate('InOutCubic', progress_flick );
    builder.get('right_arm').setY(0).setX(0).setZ(-3).animate('InOutBack', progress_flick );


	}
}

		 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Right_Hand")) {
const progress = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:stockpile', 'Stockpile_SuperSmash_Anim', builder.getPartialTicks());
if (progress > 0.0 && !builder.isFirstPerson()) {


                builder.get('right_arm')
       		  .setZ(4)
             	  .setXRotDegrees(-90)
        		.setYRotDegrees(0)
        		.setZRotDegrees(0)
                    .animate('InOutCubic', progress);
    	builder.get('left_arm')
       	 .setXRotDegrees(-26)
        	.setYRotDegrees(-5)
        	.setZRotDegrees(5)
        	.animate('InOutCubic', progress);
                builder.get('body')
        		.rotateYDegrees(-45)
                    .animate('InOutCubic', progress);
                builder.get('head')
        		.rotateYDegrees(-45)
                    .animate('InOutCubic', progress);
	}
if (progress > 0.0 && builder.isFirstPerson()) {


                builder.get('right_arm')
       		  .setY(-2)
                    .animate('InOutCubic', progress);

	}
}

 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Left_Hand")) {
const progress = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:stockpile', 'Stockpile_SuperSmash_Anim', builder.getPartialTicks());
if (progress > 0.0 && !builder.isFirstPerson()) {

                builder.get('left_arm')
       		  .setZ(4)
             	  .setXRotDegrees(-90)
        		.setYRotDegrees(0)
        		.setZRotDegrees(0)
                    .animate('InOutCubic', progress);
    	builder.get('right_arm')
       	 .setXRotDegrees(-26)
        	.setYRotDegrees(5)
        	.setZRotDegrees(-5)
        	.animate('InOutCubic', progress);
                builder.get('body')
        		.rotateYDegrees(45)
                    .animate('InOutCubic', progress);
                builder.get('head')
        		.rotateYDegrees(45)
                    .animate('InOutCubic', progress);
	}
if (progress > 0.0 && builder.isFirstPerson()) {


                builder.get('left_arm')
       		  .setY(-2)
                    .animate('InOutCubic', progress);

	}
}
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:stockpile', 'Stamina_Transfer.Anim', builder.getPartialTicks());
if (animation > 0) {
    builder.get('left_arm')
        .moveX(1)
        .moveY(1)
        .setZ(0)
        .setXRotDegrees(-75)
        .setYRotDegrees(75)
        .setZRotDegrees(-7)
        .animate('InOutCubic', animation);
}
    });
});


PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/uncatalyzed_powers', 2, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:uncatalyzed_traits", "Deformed_Body")) {
    builder.get('chest')
        .scaleY(1.2)
        .scaleX(1.3)
        .scaleZ(1.5).moveY(-1);
		builder.get('left_arm')
        .scaleY(1.4)
        .scaleX(0.8)
        .scaleZ(0.8).moveY(1);

}

if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:uncatalyzed_traits", "Deformed_Legs")) {
    builder.get('right_leg')
        .scaleY(1.2)
        .scaleX(1.2)
        .scaleZ(1.2).moveY(-1);
		
	builder.get('left_leg')
        .scaleY(1.2)
        .scaleX(1.2)
        .scaleZ(1.2).moveY(-1);

}

    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/undead_nobody', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'No_Body', builder.getPartialTicks());
if (animation > 0) {
    builder.get('body')
        .moveY(-12)
        .animate('InOutCubic', animation);

}

    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/undead_nolegs', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'No_Legs', builder.getPartialTicks());
if (animation > 0) {
    builder.get('body')
        .moveY(-8)
        .animate('InOutCubic', animation);

}

    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/undead_nofeet', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'No_Feet', builder.getPartialTicks());
if (animation > 0) {
    builder.get('body')
        .moveY(-3)
        .animate('InOutCubic', animation);

}

    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/genetic_tester', 2, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:genetic_tester", "Right_Hand")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:genetic_tester', 'Genetic_Tester_Anim', builder.getPartialTicks());
if (animation > 0) {
    builder.get('right_arm')
        .setXRotDegrees(-13.8)
        .setYRotDegrees(-1.8)
        .setZRotDegrees(-66)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(-42)
        .setYRotDegrees(-26)
        .setZRotDegrees(4.8)
        .animate('InOutCubic', animation);

			}
		}
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:genetic_tester", "Left_Hand")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:genetic_tester', 'Genetic_Tester_Anim', builder.getPartialTicks());
if (animation > 0) {
    builder.get('right_arm')
        .setXRotDegrees(-42)
        .setYRotDegrees(26)
        .setZRotDegrees(-4.8)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(-13.8)
        .setYRotDegrees(1.8)
        .setZRotDegrees(66)
        .animate('InOutCubic', animation);

			}
		}

    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/injection', 2, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:injection", "Right_Hand")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:injection', 'Inject', builder.getPartialTicks());
if (animation > 0) {
    builder.get('right_arm')
        .setXRotDegrees(-65)
        .setYRotDegrees(21)
        .setZRotDegrees(-78)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(-45)
        .setYRotDegrees(6)
        .setZRotDegrees(20)
        .animate('InOutCubic', animation);

			}
		}
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:injection", "Left_Hand")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:injection', 'Inject', builder.getPartialTicks());
if (animation > 0) {
    builder.get('left_arm')
        .setXRotDegrees(-65)
        .setYRotDegrees(-21)
        .setZRotDegrees(78)
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .setXRotDegrees(-45)
        .setYRotDegrees(-6)
        .setZRotDegrees(-20)
        .animate('InOutCubic', animation);

			}
		}

    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/kitsune_sphere', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:kitsune_mimicry', 'Kitsune.Fox_Fire.Sphere.Animation', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson()) {

    builder.get('right_arm')
        .rotateZDegrees(35).rotateYDegrees(25)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .rotateZDegrees(-35).rotateYDegrees(-25)
        .animate('InOutCubic', animation);
		
		builder.get('head')
        .rotateXDegrees(-25)
        .animate('InOutCubic', animation);

}

    });
});


PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/kitsune_electro', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:kitsune_mimicry', 'Kitsune.Fox_Fire.Electro.Pose', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson()) {

    builder.get('right_arm')
        .rotateZDegrees(75)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .rotateZDegrees(-75)
        .animate('InOutCubic', animation);

}

    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/kitsune', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:kitsune_mimicry', 'Kitsune_Pose', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson()) {
    builder.get('head')
        .moveY(0.25)
        .animate('InOutCubic', animation);

    builder.get('chest')
        .rotateXDegrees(7.5)
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .rotateXDegrees(2.5)
        .rotateYDegrees(0.4)
        .rotateZDegrees(4.9)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .rotateXDegrees(-4.9)
        .rotateYDegrees(-0.4)
        .rotateZDegrees(-4.9)
        .animate('InOutCubic', animation);

    builder.get('right_leg')
        .moveX(-0.25)
        .moveZ(0.75)
        .animate('InOutCubic', animation);

    builder.get('left_leg')
        .moveX(0.25)
        .moveZ(0.75)
        .rotateXDegrees(2.5)
        .animate('InOutCubic', animation);

}

    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/kitsune_sprint', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:kitsune_mimicry', 'Kitsune_Pose_Sprint', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson() && !builder.getPlayer().isSwimming()) {
	    builder.get('body')
		.moveY(12).moveZ(15)
        .setXRotDegrees(-90)
        .animate('InOutCubic', animation);
		
    builder.get('head')
        .moveZ(-1)
        .rotateXDegrees(-82.5)
        .animate('InOutCubic', animation);

    builder.get('chest')
        .rotateXDegrees(-12.5)
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .moveZ(-1.5)
        .rotateXDegrees(-90)
        .animate('InOutCubic', animation);
		
    builder.get('left_arm')
        .moveZ(-1.5)
        .rotateXDegrees(-90)
        .animate('InOutCubic', animation);

    builder.get('right_leg')
        .moveX(-1.5)
        .moveY(1)
        .moveZ(-1)
        .rotateXDegrees(-45)
        .animate('InOutCubic', animation);

    builder.get('left_leg')
        .moveX(1.5)
        .moveY(1)
        .moveZ(-1)
        .rotateXDegrees(-45)
        .animate('InOutCubic', animation);
	

}

    });
});


PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/age_1', 2, (builder) => {

let age_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:base_power', 'Age_Teen_Head', builder.getPartialTicks());
if (age_1 > 0 && !builder.isFirstPerson()) {
    builder.get('head')
        .scaleX(1.1)
        .scaleY(1.1)
        .scaleZ(1.1)
        .animate('InOutCubic', age_1);
}
    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/age_2', 2, (builder) => {
let age_2 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:base_power', 'Age_Child_Head', builder.getPartialTicks());
if (age_2 > 0 && !builder.isFirstPerson()) {
    builder.get('head')
        .scaleX(1.4)
        .scaleY(1.4)
        .scaleZ(1.4)
        .animate('InOutCubic', age_2);

}
    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/age_3', 2, (builder) => {
let age_3 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:base_power', 'Age_Baby_Head', builder.getPartialTicks());
if (age_3 > 0 && !builder.isFirstPerson()) {
    builder.get('head')
        .scaleX(1.5)
        .scaleY(1.5)
        .scaleZ(1.5)
        .animate('InOutCubic', age_3);

}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/kneel_over', 2, (builder) => {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:intuitive_aptitude', 'Brain_Study', builder.getPartialTicks());
if (animation > 0 && !builder.isFirstPerson()) {
	builder.get('body')
        .moveY(-8)
        .animate('InOutCubic', animation);


    builder.get('head')
        .setX(0)
        .setY(2.25)
        .setZ(-3)
        .rotateXDegrees(10)
        .animate('InOutCubic', animation);

    builder.get('chest')
        .setX(0)
        .setY(2)
        .setZ(-3)
        .setXRotDegrees(20)
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .setX(-5)
        .setY(5)
        .setZ(-3)
        .setXRotDegrees(-29)
        .setYRotDegrees(-23)
        .setZRotDegrees(19)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setX(5)
        .setY(4)
        .setZ(-2)
        .animate('InOutCubic', animation);

    builder.get('right_leg')
        .setX(-1.9)
        .setY(12)
        .setZ(-4)
        .setXRotDegrees(75)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('left_leg')
        .setX(1.9)
        .setY(7)
        .setZ(-3)
        .setXRotDegrees(10)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/muscle_1', 2, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:muscle_inducement", "Muscle_Stage_1")) {
const progress_buff = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Buff_Anim', builder.getPartialTicks());
if (progress_buff > 0.0 && !builder.isFirstPerson()) {

builder.get('head').moveY(-0.85).animate('InOutCubic', progress_buff);

	builder.get('chest')
	.scaleX(1.12).scaleY(1.12).scaleZ(1.12).moveY(-0.85).animate('InOutCubic', progress_buff);


    builder.get('right_arm')
	.scaleX(1.05).scaleY(1.05).scaleZ(1.05).moveY(-0.5).moveX(-0.5).animate('InOutCubic', progress_buff);

    builder.get('left_arm')
	.scaleX(1.05).scaleY(1.05).scaleZ(1.05).moveY(-0.5).moveX(0.5).animate('InOutCubic', progress_buff);
	
	builder.get('left_leg')
	.moveX(0.5).animate('InOutCubic', progress_buff);
	
	builder.get('right_leg')
	.moveX(-0.5).animate('InOutCubic', progress_buff);
		}
	}
	    });
});
	
	PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/muscle_2', 2, (builder) => {
			if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:muscle_inducement", "Muscle_Stage_2")) {
const progress_buff = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Buff_Anim', builder.getPartialTicks());
if (progress_buff > 0.0 && !builder.isFirstPerson()) {

	builder.get('head').moveY(-1.1).animate('InOutCubic', progress_buff);

	builder.get('chest')
	.scaleX(1.2).scaleY(1.2).scaleZ(1.2).moveY(-1.75).animate('InOutCubic', progress_buff);


    builder.get('right_arm')
	.scaleX(1.15).scaleY(1.15).scaleZ(1.15).moveY(-1.25).moveX(-0.5).animate('InOutCubic', progress_buff);

    builder.get('left_arm')
	.scaleX(1.15).scaleY(1.15).scaleZ(1.15).moveY(-1.25).moveX(0.5).animate('InOutCubic', progress_buff);
	
	builder.get('left_leg').scaleX(1.05).scaleY(1.05).scaleZ(1.05)
	.moveX(0.75).moveY(-1).animate('InOutCubic', progress_buff);
	
	builder.get('right_leg').scaleX(1.05).scaleY(1.05).scaleZ(1.05)
	.moveX(-0.75).moveY(-1).animate('InOutCubic', progress_buff);
		}
	}
	    });
});
	
		PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/muscle_3', 2, (builder) => {
			if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:muscle_inducement", "Muscle_Stage_3")) {
const progress_buff = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Buff_Anim', builder.getPartialTicks());
if (progress_buff > 0.0 && !builder.isFirstPerson()) {

	builder.get('head').scaleX(0.92).scaleY(0.92).scaleZ(0.92)
	.moveY(-1.1).animate('InOutCubic', progress_buff);

	builder.get('chest')
	.scaleX(1.22).scaleY(1.22).scaleZ(1.2).moveY(-1.75).animate('InOutCubic', progress_buff);


    builder.get('right_arm')
	.scaleX(1.18).scaleY(1.18).scaleZ(1.18).moveY(-1.25).moveX(-1).animate('InOutCubic', progress_buff);

    builder.get('left_arm')
	.scaleX(1.15).scaleY(1.15).scaleZ(1.15).moveY(-1.25).moveX(1).animate('InOutCubic', progress_buff);
	
	builder.get('left_leg').scaleX(1.05).scaleY(1.05).scaleZ(1.05)
	.moveX(0.85).moveY(-1).animate('InOutCubic', progress_buff);
	
	builder.get('right_leg').scaleX(1.05).scaleY(1.05).scaleZ(1.05)
	.moveX(-0.85).moveY(-1).animate('InOutCubic', progress_buff);
		}
	}
	    });
});
	PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/muscle_4', 2, (builder) => {
			if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:muscle_inducement", "Muscle_Stage_4")) {
const progress_buff_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Buff_Anim', builder.getPartialTicks());
if (progress_buff_1 > 0.0 && !builder.isFirstPerson()) {

builder.get('head').scaleX(0.85).scaleY(0.85).scaleZ(0.85).moveY(-1.2).animate('InOutCubic', progress_buff_1);

	builder.get('chest')
	.scaleX(1.25).scaleY(1.25).scaleZ(1.25).moveY(-1.4).animate('InOutCubic', progress_buff_1);


    builder.get('right_arm')
	.scaleX(1.25).scaleY(1.25).scaleZ(1.25).moveY(-1.1).moveX(-1.25).animate('InOutCubic', progress_buff_1);

    builder.get('left_arm')
	.scaleX(1.25).scaleY(1.25).scaleZ(1.25).moveY(-1.1).moveX(1.25).animate('InOutCubic', progress_buff_1);
	
	builder.get('left_leg').scaleX(0.9).scaleY(0.9).scaleZ(0.9)
	.moveX(1.05).moveY(1.5).animate('InOutCubic', progress_buff_1);
	
	builder.get('right_leg').scaleX(0.9).scaleY(0.9).scaleZ(0.9)
	.moveX(-1.05).moveY(1.5).animate('InOutCubic', progress_buff_1);
		}
	}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/buff_up_1', 2, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:super_strength", "Ground_Pound")) {
let animation_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:super_strength', 'Ground_Pound', builder.getPartialTicks(),1 , 4);
if (animation_1 > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setX(-5)
        .setY(0)
        .setZ(0)
        .setXRotDegrees(-55)
        .animate('InOutCubic', animation_1);

    builder.get('left_arm')
        .setXRotDegrees(5)
        .setYRotDegrees(7.5)
        .setZRotDegrees(-5)
        .animate('InOutCubic', animation_1);

    builder.get('right_leg')
        .setXRotDegrees(10)
        .setYRotDegrees(7.5)
        .animate('InOutCubic', animation_1);

    builder.get('left_leg')
        .animate('InOutCubic', animation_1);

			}
		}
		
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:muscle_inducement", "Ground_Pound")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Ground_Pound', builder.getPartialTicks(),1 , 4);
if (animation > 0 && !builder.isFirstPerson()) {
    builder.get('right_arm')
        .setX(-5)
        .setY(0)
        .setZ(0)
        .setXRotDegrees(-55)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(5)
        .setYRotDegrees(7.5)
        .setZRotDegrees(-5)
        .animate('InOutCubic', animation);

    builder.get('right_leg')
        .setXRotDegrees(10)
        .setYRotDegrees(7.5)
        .animate('InOutCubic', animation);

    builder.get('left_leg')
        .animate('InOutCubic', animation);

			}
		}
	    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/buff_up_2', 2, (builder) => {
let animation_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:super_strength', 'Ground_Pound', builder.getPartialTicks(),5 ,8);
if (animation_1 > 0 && !builder.isFirstPerson()) {
	builder.get('body')
        .moveY(-8)
        .animate('InOutCubic', animation_1);
    builder.get('head')
        .setX(0)
        .setY(0.5)
        .setZ(-2.5)
        .setXRotDegrees(20)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation_1);

    builder.get('chest')
        .setX(0)
        .setY(0)
        .setZ(-2)
        .setXRotDegrees(17.5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation_1);

    builder.get('right_arm')
        .setX(-5)
        .setY(5)
        .setZ(-3)
        .setXRotDegrees(0)
        .setYRotDegrees(-77.5)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation_1);

    builder.get('left_arm')
        .setXRotDegrees(54)
        .setYRotDegrees(-12)
        .setZRotDegrees(-16)
        .animate('InOutCubic', animation_1);

    builder.get('right_leg')
        .setX(-2.15)
        .setY(12)
        .setZ(-4)
        .setXRotDegrees(77.5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation_1);

    builder.get('left_leg')
        .setX(2.1500000000000004)
        .setY(5)
        .setZ(-1)
        .setXRotDegrees(-5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation_1);

}


let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:muscle_inducement', 'Ground_Pound', builder.getPartialTicks(),5 ,8);
if (animation > 0 && !builder.isFirstPerson()) {
	builder.get('body')
        .moveY(-8)
        .animate('InOutCubic', animation);
    builder.get('head')
        .setX(0)
        .setY(0.5)
        .setZ(-2.5)
        .setXRotDegrees(20)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('chest')
        .setX(0)
        .setY(0)
        .setZ(-2)
        .setXRotDegrees(17.5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('right_arm')
        .setX(-5)
        .setY(5)
        .setZ(-3)
        .setXRotDegrees(0)
        .setYRotDegrees(-77.5)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(54)
        .setYRotDegrees(-12)
        .setZRotDegrees(-16)
        .animate('InOutCubic', animation);

    builder.get('right_leg')
        .setX(-2.15)
        .setY(12)
        .setZ(-4)
        .setXRotDegrees(77.5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('left_leg')
        .setX(2.1500000000000004)
        .setY(5)
        .setZ(-1)
        .setXRotDegrees(-5)
        .setYRotDegrees(0)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/wall_climb_anim', 2, (builder) => {

const progress_wall = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:single_ability_power', 'Wall_Climb_Anim', builder.getPartialTicks());
if (progress_wall > 0.0 && !builder.isFirstPerson()) {
	builder.get('head').rotateXDegrees(-25).animate('InOutCubic', progress_wall);
	builder.get('body').setXRotDegrees(0).setYRotDegrees(0).setZRotDegrees(0).animate('InOutCubic', progress_wall);
    builder.get('body').translateX(0).translateY(0).translateZ(0).animate('InOutCubic', progress_wall);

	}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/wall_climb_anim_top', 2, (builder) => {

const progress_wall = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:single_ability_power', 'Wall_Climb_Anim_4', builder.getPartialTicks());
if (progress_wall > 0.0 && !builder.isFirstPerson()) {
	builder.get('body').setXRotDegrees(90).setYRotDegrees(0).setZRotDegrees(0).moveY(5).moveZ(-10).animate('InOutCubic', progress_wall);

	}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/wall_climb_anim_1', 2, (builder) => {

const progress_wall = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:single_ability_power', 'Wall_Climb_Anim_1', builder.getPartialTicks());
if (progress_wall > 0.0 && !builder.isFirstPerson()) {
builder.get('right_arm')
    .setXRotDegrees(-158)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('left_arm')
    .setX(5)
    .setY(7)
    .setZ(0)
    .setXRotDegrees(-158)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('right_leg')
    .setX(-1.9)
    .setY(9)
    .setZ(-3)
    .setXRotDegrees(7.5)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('left_leg')
    .setXRotDegrees(-7.5)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

	}
    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/wall_climb_anim_2', 2, (builder) => {
		
		
const progress_wall = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:single_ability_power', 'Wall_Climb_Anim_2', builder.getPartialTicks());
if (progress_wall > 0.0 && !builder.isFirstPerson()) {
builder.get('right_arm')
    .setXRotDegrees(-158)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('left_arm')
    .setXRotDegrees(-158)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('right_leg')
    .setXRotDegrees(-7.5)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('left_leg')
    .setXRotDegrees(-7.5)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

	}
    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/wall_climb_anim_3', 2, (builder) => {
const progress_wall = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:single_ability_power', 'Wall_Climb_Anim_3', builder.getPartialTicks());
if (progress_wall > 0.0 && !builder.isFirstPerson()) {
builder.get('right_arm')
    .setX(-5)
    .setY(7)
    .setZ(0)
    .setXRotDegrees(-158)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('left_arm')
    .setXRotDegrees(-158)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('right_leg')
    .setXRotDegrees(-7.5)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

builder.get('left_leg')
    .setX(1.9)
    .setY(9)
    .setZ(-3)
    .setXRotDegrees(7.5)
    .setYRotDegrees(0)
    .setZRotDegrees(0).animate('InOutCubic', progress_wall);

	}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/pyrokinesis', 2, (builder) => {
	const progress = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'FireStarter_Aim', builder.getPartialTicks());
	if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Right_Hand")) {
	if (progress > 0.0 && !builder.isFirstPerson()) {
	
	const halfPi = 1.57079632679;
                builder.get('right_arm')
                    .setXRotDegrees(-55)
                    .setYRot(builder.getModel().head.yRot + 0.2)
					.setZRot(builder.getModel().head.zRot - 0.5)
                    .animate('InOutCubic', progress);
	}
	if (progress > 0.0 && builder.isFirstPerson()) {
            // do first-person animations
    builder.get('right_arm').rotateYDegrees(105).moveY(-2).moveZ(-9).moveX(-8).animate('InOutCubic', progress);
        }
	}
	if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Left_Hand")) {
	if (progress > 0.0 && !builder.isFirstPerson()) {
	
	const halfPi = 1.57079632679;
                builder.get('left_arm')
                    .setXRotDegrees(-55)
                    .setYRot(builder.getModel().head.yRot - 0.2)
					.setZRot(builder.getModel().head.zRot + 0.5)
                    .animate('InOutCubic', progress);
	}
	if (progress > 0.0 && builder.isFirstPerson()) {
            // do first-person animations
    builder.get('left_arm').rotateYDegrees(-105).moveY(-2).moveZ(-9).moveX(8).animate('InOutCubic', progress);
        }
	}
			
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:pyrokinesis", "Fire_Spin_Abil")) {
		const progress_spin = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'Fire_Spin_Abil', builder.getPartialTicks(), 1, 2);
		if (progress_spin > 0.0 && !builder.isFirstPerson()) {
	
	builder.get('right_arm')
    .setXRotDegrees(-67)
    .setYRotDegrees(-25)
    .setZRotDegrees(7).animate('InOutCubic', progress_spin);

builder.get('left_arm')
    .setXRotDegrees(61)
    .setYRotDegrees(-15)
    .setZRotDegrees(8).animate('InOutCubic', progress_spin);
		}
	}
	
	
	const progress_barrier = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'Flame_Barrier_Abil', builder.getPartialTicks());
	if (progress_barrier > 0.0 && !builder.isFirstPerson()) {
	
	const halfPi = 1.57079632679;
                builder.get('right_arm')
                    .setXRot(builder.getModel().head.xRot -halfPi)
                    .setYRot(builder.getModel().head.yRot + 0.1)
					.setZRot(builder.getModel().head.zRot - 0.2)
                    .animate('InOutCubic', progress_barrier);
					
					builder.get('left_arm')
                    .setXRot(builder.getModel().head.xRot -halfPi)
                    .setYRot(builder.getModel().head.yRot - 0.1)
					.setZRot(builder.getModel().head.zRot + 0.2)
                    .animate('InOutCubic', progress_barrier);




	}
	if (progress_barrier > 0.0 && builder.isFirstPerson()) {
            // do first-person animations
    builder.get('right_arm').rotateYDegrees(15).animate('InOutCubic', progress_barrier);
	builder.get('left_arm').rotateYDegrees(-15).animate('InOutCubic', progress_barrier);
        }
		
    });
});

ClientEvents.tick(event => {
	if (abilityUtil.hasPower(event.player, "heroes:pyrokinesis")) {
		if (abilityUtil.isEnabled(event.player, "heroes:pyrokinesis", "Fire_Spin_Abil")) {
		let mode = Client.options.getCameraType()
		if (mode != 'third_person_back' && mode != 'third_person_front') {
		event.player.persistentData.camera_reset = 1
        Client.options.setCameraType('third_person_back')
			}
		}
		let end = event.player.persistentData.camera_reset
		if (!abilityUtil.isEnabled(event.player, "heroes:pyrokinesis", "Fire_Spin_Abil") && end == 1) {
			event.player.persistentData.camera_reset = 0
			 Client.options.setCameraType('first_person')
		}
	}
})

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/pyrokinesis_1', 2, (builder) => {
		
	if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:pyrokinesis", "Fire_Spin_Abil")) {
		const progress_spin_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'Fire_Spin_Abil', builder.getPartialTicks(),3 ,5);
		if (progress_spin_1 > 0.0 && !builder.isFirstPerson()) {
	
	builder.get('left_arm').rotateZDegrees(-85).animate('InOutCubic', progress_spin_1);
	builder.get('right_arm').rotateZDegrees(85).animate('InOutCubic', progress_spin_1);
		}
	}
	if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:pyrokinesis", "Fire_Spin_Abil")) {
		const progress_spin = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'Fire_Spin_Abil', builder.getPartialTicks(),3 ,16);
		if (progress_spin > 0.0 && !builder.isFirstPerson()) {
	
	builder.get('body').rotateYDegrees(-720).animate('InOutCubic', progress_spin);
		}
	}
		
		
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Right_Hand")) {
		const progress_smelt = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'FireStarter_Aim_Smelt', builder.getPartialTicks());
		if (progress_smelt > 0.0 && !builder.isFirstPerson()) {
	
	builder.get('right_arm')
    .setXRotDegrees(-105)
    .setYRotDegrees(-36)
    .setZRotDegrees(80).animate('InOutCubic', progress_smelt);

builder.get('left_arm')
    .setXRotDegrees(-60)
    .setYRotDegrees(38)
    .setZRotDegrees(20).animate('InOutCubic', progress_smelt);
		}
	}
	
	if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:base_power", "Left_Hand")) {
		const progress_smelt_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'FireStarter_Aim_Smelt', builder.getPartialTicks());
		if (progress_smelt_1 > 0.0 && !builder.isFirstPerson()) {
	
	builder.get('left_arm')
    .setXRotDegrees(-105)
    .setYRotDegrees(36)
    .setZRotDegrees(-80).animate('InOutCubic', progress_smelt_1);

builder.get('right_arm')
    .setXRotDegrees(-60)
    .setYRotDegrees(-38)
    .setZRotDegrees(-20).animate('InOutCubic', progress_smelt_1);
		}
	}
    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/pyrokinesis_2', 2, (builder) => {
		
				if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:pyrokinesis", "Fire_Spin_Abil")) {
		const progress_spin_1 = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:pyrokinesis', 'Fire_Spin_Abil', builder.getPartialTicks(),14 ,16);
		if (progress_spin_1 > 0.0 && !builder.isFirstPerson()) {
	
	
	builder.get('right_arm')
    .setXRotDegrees(32.5)
    .setYRotDegrees(0)
    .setZRotDegrees(32.5).animate('InOutCubic', progress_spin_1);

builder.get('left_arm')
    .setXRotDegrees(-50.5)
    .setYRotDegrees(37.5)
    .setZRotDegrees(26).animate('InOutCubic', progress_spin_1);
		}
	}

    });
});


PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/undead', 200, (builder) => {
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:regenerative_segmentation", "Part_Bullet.Spiiin_Arm")) {
			let animation_spin = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'Part_Bullet.Spiiin_Arm', builder.getPartialTicks(),1 , 3);
            const halfPi = 1.57079632679;
			if (animation_spin > 0.0) {
                builder.get('right_arm')
                    .setXRot(builder.getModel().head.xRot + halfPi)
                    .setYRot(builder.getModel().head.yRot)
                    .setZRot(builder.getModel().head.zRot)
                    .animate('InOutCubic', animation_spin);
					
			}
		}

    });
});
PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/undead_2', 200, (builder) => {
		
		 if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:regenerative_segmentation", "Blood_Blades_Anim")) {
let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'Blood_Blades_Anim', builder.getPartialTicks(), 1, 4);
if (animation > 0) {
    builder.get('right_arm')
        .setXRotDegrees(-157.5)
        .setYRotDegrees(-22.5)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(-158)
        .setYRotDegrees(23.3)
        .setZRotDegrees(-2.2)
        .animate('InOutCubic', animation);

	}
}

		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:regenerative_segmentation", "Part_Bullet.Spiiin_Arm")) {
		let animation_spin = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'Part_Bullet.Spiiin_Arm', builder.getPartialTicks(), 3, 7);
		if (animation_spin > 0.0 && !builder.isFirstPerson()) {
			builder.get('right_arm').rotateZ(360).animate('InOutCubic', animation_spin);
		}
		}
		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:regenerative_segmentation", "No_Right_Arm")) {
		builder.get('right_arm')
        .setXRotDegrees(0)
        .setYRotDegrees(0)
        .setZRotDegrees(0);

}

if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:regenerative_segmentation", "No_Left_Arm")) {
		builder.get('left_arm')
        .setXRotDegrees(0)
        .setYRotDegrees(0)
        .setZRotDegrees(0);

}

    });
});

PalladiumEvents.registerAnimations((event) => {
    event.register('heroes/undead_3', 200, (builder) => {
		let animation = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'Blood_Blades_Anim', builder.getPartialTicks(), 9, 12);
if (animation > 0) {
    builder.get('right_arm')
        .setXRotDegrees(-67.5)
        .setYRotDegrees(-22.5)
        .setZRotDegrees(0)
        .animate('InOutCubic', animation);

    builder.get('left_arm')
        .setXRotDegrees(-68)
        .setYRotDegrees(23.3)
        .setZRotDegrees(-2.2)
        .animate('InOutCubic', animation);

}

		if (abilityUtil.isEnabled(builder.getPlayer(), "heroes:regenerative_segmentation", "Part_Bullet.Spiiin_Arm")) {
			let animation_spin = animationUtil.getAnimationTimerAbilityValue(builder.getPlayer(), 'heroes:regenerative_segmentation', 'Part_Bullet.Spiiin_Arm', builder.getPartialTicks(),8 , 10);
			if (animation_spin > 0.0) {
            const halfPi = 1.57079632679;
                builder.get('right_arm')
                    .setXRot(builder.getModel().head.xRot - halfPi)
                    .setYRot(builder.getModel().head.yRot)
                    .setZRot(builder.getModel().head.zRot)
                    .animate('InOutCubic', animation_spin);
			}
		}


    });
});