[code]
OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("BACK_ATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Fire", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Fire", "Press");
}
}
Transition("DASHATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("Fire", "Press");
}
}
Transition("JUMPATTACK_FALL")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Jump", "Jet");
//The following should be true during a jetjump, jump, or fall
// unless we're more than 0.35 seconds from the apex
//NOTE: This may not allow luke to jump attack during longer falls
// or falling from a force jump when it could.
//VelocityY(">", -6.3);
Button("Fire", "Press");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("snd_rc_vibro_attack");
//Deflect()
//{
//DeflectAngle(70, -70); // deflect anything from rear arc
//EnergyCost(4.0);
//}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("snd_rc_vibro_attack");
//Deflect()
//{
//DeflectAngle(-70, 70); // deflect anything from forward arc
//EnergyCost(4.0);
//}
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("snd_rc_vibro_attack");
//Deflect()
//{
//DeflectAngle(-70, 70); // deflect anything from forward arc
//EnergyCost(4.0);
//}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("snd_rc_vibro_attack");
//Deflect()
//{
//DeflectAngle(-70, 70); // deflect anything from forward arc
//EnergyCost(4.0);
//}
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
//Deflect()
//{
//DeflectAngle(-70, 70); // deflect anything from forward arc
//EnergyCost(4.0);
//}
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("snd_rc_vibro_attack");
//Deflect()
//{
//DeflectAngle(-110, 110); // deflect anything from forward arc
//EnergyCost(4.0);
//}
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
//Deflect()
//{
//DeflectAngle(-140, 140); // deflect anything from forward arc
//EnergyCost(2.0);
//}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("snd_rc_vibro_attack"); // the sound, that is
//Deflect()
//{
//DeflectAngle(-110, 110); // deflect anything from forward arc
//EnergyCost(4.0);
//}
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
//Deflect()
//{
//DeflectAngle(-110, 110); // deflect anything from forward arc
//EnergyCost(4.0);
//}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("snd_rc_vibro_attack");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("snd_rc_vibro_attack");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("snd_rc_vibro_attack");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_land")
{
AimType("FullBody");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
AnimatedMove();
InputLock("All");
Attack()
{
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(800);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(0.4);
ButtonsPressed("Any");
}
Or()
{
Break(0.4);
Thrust(">", 0.54);
}
}
}
[/code]