Combo file missing brackets?
Posted: Sun Aug 07, 2011 11:55 pm
by Dakota
i just made a combo file contaning moves from luke, mace, mundi, and vader.
i get the missing bracket error for the unit who uses it when ever i use them combo and its weapon. i need to know if its the way i have it set up with the different click types (fire, reload, and firesecondary) being placed in order (you will notice it below how it is) or did i miss a bracket and can you help me find it. it took me over two hours just making the combo file and setting up all the moves in the animation folder. if anyone can help it will be greatly apprecaited.
heres the combo file
i get the missing bracket error for the unit who uses it when ever i use them combo and its weapon. i need to know if its the way i have it set up with the different click types (fire, reload, and firesecondary) being placed in order (you will notice it below how it is) or did i miss a bracket and can you help me find it. it took me over two hours just making the combo file and setting up all the moves in the animation folder. if anyone can help it will be greatly apprecaited.
heres the combo file
Hidden/Spoiler:
Animation("stand_attack1a_end");
Animation("stand_attack1b");
Animation("stand_attack1a_upper")
{
AimType("None");
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);
}
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("DEFLECT_JUMP")
{
Posture("Jump");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_CROUCH")
{
Posture("Crouch");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_ROLL")
{
Posture("Roll");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_SPRINT")
{
Posture("Sprint");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.3);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Attack()
{
DamageTime(13, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Transition("IDLE");
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a");
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK2")
{
If()
{
TimeStart(5, "Frames");
TimeEnd(16, "Frames");
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);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
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);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(7, 12, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
TimeStart(7, "Frames");
TimeEnd(17, "Frames");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three");
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(20, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(12.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
//TurnFactor(0.5);
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(4, 11, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Attack()
{
AttackID("Attack3-1");
DamageTime(19, 23, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
Duration(37, "Frames");
AlignedToThrust();
Attack()
{
AttackID("Attack3-1");
DamageTime(19, 23, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
ThrustFactor(0.0);
TurnFactor(0.1);
Transition("RECOVER3_WALK");
// {
// If()
// {
// Break(40, "Frames");
// ButtonsPressed("Any");
// }
// }
}
State("RECOVER3_WALK")
{
Posture("Stand");
Animation("stand_attack1c");
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
Duration(22, "Frames");
AnimatedMove()
{
VelocityZ(15.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Attack()
{
DamageTime(2, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(3.0);
}
Attack()
{
DamageTime(12, 16, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(3.0);
}
Transition("DASHATTACK2")
{
If()
{
Break(21, "Frames");
TimeStart(17, "Frames");
TimeEnd(22, "Frames");
Posture("Stand", "Sprint");
Button("Fire", "Press");
}
}
Transition("IDLE");
}
State("DASHATTACK2")
{
Posture("Stand");
Animation("stand_dashattack");
Sound("saber_swing", 34, "Frames");
Duration(38, "Frames");
AnimatedMove()
{
VelocityZ(10.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(3.0);
If()
{
Break(38, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(35, 43, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("DASHATTACK3");
}
State("DASHATTACK3")
{
Posture("Stand");
Animation("stand_dashattack");
//Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
If()
{
Break(43, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(35, 43, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.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("saber_attack_three");
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()
{
AttackId("JUMPATTACK");
DamageTime(0.33, 1.0, "FromAnim");
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);
}
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()
{
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);
}
}
}
Animation("stand_attack2a_end");
Animation("stand_attack2b");
Animation("stand_attack2a_upper")
{
AimType("None");
BlendInTime(0.0);
BlendOutTime(0.15);
BlendTimeTo("stand_attack2a_end", 0.0);
BlendTimeTo("stand_attack2b", 0.0);
}
Animation("stand_attack2a_lower")
{
BlendInTime(0.15);
BlendOutTime(0.15);
BlendTimeTo("stand_attack2a_end", 0.0);
BlendTimeTo("stand_attack2b", 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("FireSecondary", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("FireSecondary", "Press");
}
}
Transition("DASHFLIP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("FireSecondary", "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("FireSecondary", "Press");
}
}
}
State("DEFLECT_JUMP")
{
Posture("Jump");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_CROUCH")
{
Posture("Crouch");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_ROLL")
{
Posture("Roll");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_SPRINT")
{
Posture("Sprint");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack2_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.3);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Attack()
{
DamageTime(13, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Transition("IDLE");
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack2b_end");
Animation("stand_attack2c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack2a");
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(2, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK2")
{
If()
{
TimeStart(4, "Frames");
TimeEnd(14, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack2a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack2b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack2b_end", 0.0);
BlendTimeTo("stand_attack2c", 0.0);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("MaceA2");
DamageTime(1, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("RECOVER2");
}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack2b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
Attack()
{
AttackID("MaceA2");
DamageTime(1, 3, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
TimeStart(0.0);
TimeEnd(6, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack2c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three", 10, "Frames");
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(18, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(8.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
TurnFactor(0.5);
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(8, 16, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Attack()
{
AttackID("MaceA3");
DamageTime(16, 28, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack2c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three");
//set a duration so we will go to state RECOVER3 before the animation ends
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
Until()
{
Break(28, "Frames");
}
}
AlignedToThrust();
TurnFactor(0.5);
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
AttackID("MaceA3");
DamageTime(16, 28, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("IDLE");
}
State("DASHFLIP")
{
Posture("Stand");
Animation("stand_dashflip");
EnergyRestoreRate(0);
RestartAnimation();
MustShowOneFrame();
AlignedToThrust();
Sound("saber_swing", 8, "Frames");
Duration(14, "Frames");
AnimatedMove()
{
VelocityZ(12.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(3.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(5, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP2");
}
State("DASHFLIP2")
{
Posture("Stand");
Animation("stand_dashflip");
EnergyRestoreRate(0);
AlignedToThrust();
//Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
If()
{
Break(27, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(13, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP3")
{
EnergyCost(20);
If()
{
TimeStart(7, "Frames");
TimeEnd(25, "Frames");
Break(19, "Frames");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK_END")
{
If()
{
Break(25, "Frames");
}
}
}
State("DASHFLIP3")
{
Posture("Stand");
Animation("stand_dashflip2");
EnergyRestoreRate(0);
RestartAnimation();
MustShowOneFrame();
AlignedToThrust();
Sound("saber_swing", 8, "Frames");
Duration(14, "Frames");
AnimatedMove()
{
VelocityZ(7.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(3.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(0, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP4");
}
State("DASHFLIP4")
{
Posture("Stand");
Animation("stand_dashflip2");
EnergyRestoreRate(0);
AlignedToThrust();
//Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
If()
{
Break(27, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(13, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP")
{
EnergyCost(20);
If()
{
TimeStart(7, "Frames");
TimeEnd(25, "Frames");
Break(19, "Frames");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK_END")
{
If()
{
Break(25, "Frames");
}
}
}
State("DASHATTACK_END")
{
Posture("Stand");
Animation("stand_dashattack2_end");
Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
InputLock("All");
Attack()
{
DamageTime(2, 9, "Frames");
DamageLength(1.75);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("IDLE");
}// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack2_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack2_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("com_weap_throw");
Duration(0);
EnergyRestoreRate(0.0);
Gravity(4.0);
GravityVelocityTarget(-20.0); // accelerate us
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack2_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
Attack()
{
AttackID("Earthquake");
DamageTime(0, 4, "Frames");
DamageLength(1.0);
DamageWidth(0.5);
Damage(1200);
}
RestartAnimation();
Duration(4, "Frames");
EnergyRestoreRate(0.0);
AnimatedMove();
InputLock("All");
Transition("JUMPATTACK_LAND2");
}
State("JUMPATTACK_LAND2")
{
Posture("Stand");
Attack()
{
AttackID("Earthquake");
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.5);
Damage(0);
}
Animation("jumpattack2_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}
// 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("Reload", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Reload", "Press");
}
}
Transition("DASHATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("Reload", "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 leave too little time for the jumpattack_fall anim
// to play if darth is jetting very close to the ground, and may
// not allow darth to jump attack during a long fall from high up.
//VelocityY(">", -6.3);
Button("Reload", "Press");
}
}
}
State("DEFLECT_JUMP")
{
Posture("Jump");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_CROUCH")
{
Posture("Crouch");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_ROLL")
{
Posture("Roll");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_SPRINT")
{
Posture("Sprint");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack3_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_double", 4, "Frames");
Duration(35, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(6, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(6.0);
}
Attack()
{
DamageTime(17, 22, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(6.0);
}
Transition("IDLE");
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack3a");
Animation("stand_attack3a_end");
Animation("stand_attack3b");
Animation("stand_attack3b_end");
Animation("stand_attack3c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack3a_upper")
{
AimType("None");
BlendInTime(0.0);
BlendOutTime(0.15);
BlendTimeTo("stand_attack3a_end", 0.0);
BlendTimeTo("stand_attack3b", 0.0);
}
Animation("stand_attack3a_lower")
{
BlendInTime(0.15);
BlendOutTime(0.15);
BlendTimeTo("stand_attack3a_end", 0.0);
BlendTimeTo("stand_attack3b", 0.0);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(7, 11, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(300);
Push(3.0);
}
Transition("ATTACK2")
{
If()
{
Break(10, "Frames");
TimeStart(4, "Frames");
TimeEnd(15, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
Transition("IDLE");
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack3b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack3b_end", 0.0);
BlendTimeTo("stand_attack3c", 0.0);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(8, 13, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
Break(13, "Frames");
TimeStart(6, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack3c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_swing", 7, "Frames");
//set a duration so we will go to state RECOVER3 before the animation ends
AlignedToThrust();
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(12, 16, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack3")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
BlendTimeTo("stand_attack3c", 0.4);
}
Sound("saber_swing");
AnimatedMove()
{
VelocityZ(17.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
// Until()
// {
// Break(16, "Frames");
// }
}
TurnFactor(0.3);
Duration(10, "Frames");
InputLock("All", "!Thrust");
Attack()
{
DamageTime(4, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(800);
Push(14.0);
}
Transition("DASHATTACK2");
}
State("DASHATTACK2")
{
Posture("Stand");
Animation("stand_dashattack3")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
BlendTimeTo("stand_attack3c", 0.4);
}
Duration(30, "Frames");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattackend3")
{
BlendInTime(0.10);
BlendOutTime(0.25);
}
AlignedToThrust();
TurnFactor(0.3);
InputLock("All", "!Thrust", "!Fire");
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack3_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack3_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("com_weap_throw");
Duration(0);
EnergyRestoreRate(0.0);
Gravity(4.0);
GravityVelocityTarget(-15.0); // accelerate us
AnimatedMove()
{
VelocityFromThrust(90.0);
VelocityFromStrafe(0.0);
}
InputLock("All", "!Thrust"); // lock all buttons for duration of state
AlignedToThrust();
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Sound("saber_swing");
Animation("jumpattack3_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
Attack()
{
DamageTime(0, 8, "Frames");
DamageLength(1.75);
DamageWidth(0.75);
Damage(800);
Push(10.0);
}
EnergyRestoreRate(0.0);
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Transition("JUMPATTACK_RECOVER");
}
State("JUMPATTACK_RECOVER")
{
Posture("Stand");
Animation("jumpattack3_recover")
{
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
TurnFactor(0.3);
InputLock("All", "!Thrust");
Transition("IDLE");
}
Animation("stand_attack1b");
Animation("stand_attack1a_upper")
{
AimType("None");
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);
}
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("DEFLECT_JUMP")
{
Posture("Jump");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_CROUCH")
{
Posture("Crouch");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_ROLL")
{
Posture("Roll");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_SPRINT")
{
Posture("Sprint");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.3);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Attack()
{
DamageTime(13, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Transition("IDLE");
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a");
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK2")
{
If()
{
TimeStart(5, "Frames");
TimeEnd(16, "Frames");
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);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
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);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(7, 12, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
TimeStart(7, "Frames");
TimeEnd(17, "Frames");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three");
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(20, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(12.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
//TurnFactor(0.5);
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(4, 11, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Attack()
{
AttackID("Attack3-1");
DamageTime(19, 23, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
Duration(37, "Frames");
AlignedToThrust();
Attack()
{
AttackID("Attack3-1");
DamageTime(19, 23, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
ThrustFactor(0.0);
TurnFactor(0.1);
Transition("RECOVER3_WALK");
// {
// If()
// {
// Break(40, "Frames");
// ButtonsPressed("Any");
// }
// }
}
State("RECOVER3_WALK")
{
Posture("Stand");
Animation("stand_attack1c");
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
Duration(22, "Frames");
AnimatedMove()
{
VelocityZ(15.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Attack()
{
DamageTime(2, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(3.0);
}
Attack()
{
DamageTime(12, 16, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(3.0);
}
Transition("DASHATTACK2")
{
If()
{
Break(21, "Frames");
TimeStart(17, "Frames");
TimeEnd(22, "Frames");
Posture("Stand", "Sprint");
Button("Fire", "Press");
}
}
Transition("IDLE");
}
State("DASHATTACK2")
{
Posture("Stand");
Animation("stand_dashattack");
Sound("saber_swing", 34, "Frames");
Duration(38, "Frames");
AnimatedMove()
{
VelocityZ(10.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(3.0);
If()
{
Break(38, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(35, 43, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("DASHATTACK3");
}
State("DASHATTACK3")
{
Posture("Stand");
Animation("stand_dashattack");
//Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
If()
{
Break(43, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(35, 43, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.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("saber_attack_three");
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()
{
AttackId("JUMPATTACK");
DamageTime(0.33, 1.0, "FromAnim");
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);
}
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()
{
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);
}
}
}
Animation("stand_attack2a_end");
Animation("stand_attack2b");
Animation("stand_attack2a_upper")
{
AimType("None");
BlendInTime(0.0);
BlendOutTime(0.15);
BlendTimeTo("stand_attack2a_end", 0.0);
BlendTimeTo("stand_attack2b", 0.0);
}
Animation("stand_attack2a_lower")
{
BlendInTime(0.15);
BlendOutTime(0.15);
BlendTimeTo("stand_attack2a_end", 0.0);
BlendTimeTo("stand_attack2b", 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("FireSecondary", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("FireSecondary", "Press");
}
}
Transition("DASHFLIP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("FireSecondary", "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("FireSecondary", "Press");
}
}
}
State("DEFLECT_JUMP")
{
Posture("Jump");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_CROUCH")
{
Posture("Crouch");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_ROLL")
{
Posture("Roll");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_SPRINT")
{
Posture("Sprint");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack2_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.3);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(4, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Attack()
{
DamageTime(13, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(400);
Push(6.0);
}
Transition("IDLE");
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack2b_end");
Animation("stand_attack2c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack2a");
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(2, 9, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK2")
{
If()
{
TimeStart(4, "Frames");
TimeEnd(14, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack2a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack2b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack2b_end", 0.0);
BlendTimeTo("stand_attack2c", 0.0);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("MaceA2");
DamageTime(1, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("RECOVER2");
}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack2b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
Attack()
{
AttackID("MaceA2");
DamageTime(1, 3, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
TimeStart(0.0);
TimeEnd(6, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack2c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three", 10, "Frames");
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(18, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(8.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
TurnFactor(0.5);
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(8, 16, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Attack()
{
AttackID("MaceA3");
DamageTime(16, 28, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack2c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_attack_three");
//set a duration so we will go to state RECOVER3 before the animation ends
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
Until()
{
Break(28, "Frames");
}
}
AlignedToThrust();
TurnFactor(0.5);
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
AttackID("MaceA3");
DamageTime(16, 28, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("IDLE");
}
State("DASHFLIP")
{
Posture("Stand");
Animation("stand_dashflip");
EnergyRestoreRate(0);
RestartAnimation();
MustShowOneFrame();
AlignedToThrust();
Sound("saber_swing", 8, "Frames");
Duration(14, "Frames");
AnimatedMove()
{
VelocityZ(12.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(3.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(5, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP2");
}
State("DASHFLIP2")
{
Posture("Stand");
Animation("stand_dashflip");
EnergyRestoreRate(0);
AlignedToThrust();
//Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
If()
{
Break(27, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(13, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP3")
{
EnergyCost(20);
If()
{
TimeStart(7, "Frames");
TimeEnd(25, "Frames");
Break(19, "Frames");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK_END")
{
If()
{
Break(25, "Frames");
}
}
}
State("DASHFLIP3")
{
Posture("Stand");
Animation("stand_dashflip2");
EnergyRestoreRate(0);
RestartAnimation();
MustShowOneFrame();
AlignedToThrust();
Sound("saber_swing", 8, "Frames");
Duration(14, "Frames");
AnimatedMove()
{
VelocityZ(7.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(3.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(0, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP4");
}
State("DASHFLIP4")
{
Posture("Stand");
Animation("stand_dashflip2");
EnergyRestoreRate(0);
AlignedToThrust();
//Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
If()
{
Break(27, "Frames");
}
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash2");
DamageTime(13, 21, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("DASHFLIP")
{
EnergyCost(20);
If()
{
TimeStart(7, "Frames");
TimeEnd(25, "Frames");
Break(19, "Frames");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK_END")
{
If()
{
Break(25, "Frames");
}
}
}
State("DASHATTACK_END")
{
Posture("Stand");
Animation("stand_dashattack2_end");
Sound("saber_swing");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
InputLock("All");
Attack()
{
DamageTime(2, 9, "Frames");
DamageLength(1.75);
DamageWidth(0.75);
Damage(600);
Push(5.0);
}
Transition("IDLE");
}// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack2_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack2_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("com_weap_throw");
Duration(0);
EnergyRestoreRate(0.0);
Gravity(4.0);
GravityVelocityTarget(-20.0); // accelerate us
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack2_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
Attack()
{
AttackID("Earthquake");
DamageTime(0, 4, "Frames");
DamageLength(1.0);
DamageWidth(0.5);
Damage(1200);
}
RestartAnimation();
Duration(4, "Frames");
EnergyRestoreRate(0.0);
AnimatedMove();
InputLock("All");
Transition("JUMPATTACK_LAND2");
}
State("JUMPATTACK_LAND2")
{
Posture("Stand");
Attack()
{
AttackID("Earthquake");
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.5);
Damage(0);
}
Animation("jumpattack2_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}
// 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("Reload", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Reload", "Press");
}
}
Transition("DASHATTACK")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("Reload", "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 leave too little time for the jumpattack_fall anim
// to play if darth is jetting very close to the ground, and may
// not allow darth to jump attack during a long fall from high up.
//VelocityY(">", -6.3);
Button("Reload", "Press");
}
}
}
State("DEFLECT_JUMP")
{
Posture("Jump");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_CROUCH")
{
Posture("Crouch");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_ROLL")
{
Posture("Roll");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("DEFLECT_SPRINT")
{
Posture("Sprint");
MustShowOneFrame();
Transition("IDLE")
{
If()
{
Break(1, "Frames");
}
}
}
State("BACK_ATTACK")
{
Posture("Stand");
Animation("stand_attack3_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_double", 4, "Frames");
Duration(35, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(6, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(6.0);
}
Attack()
{
DamageTime(17, 22, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(6.0);
}
Transition("IDLE");
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack3a");
Animation("stand_attack3a_end");
Animation("stand_attack3b");
Animation("stand_attack3b_end");
Animation("stand_attack3c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack3a_upper")
{
AimType("None");
BlendInTime(0.0);
BlendOutTime(0.15);
BlendTimeTo("stand_attack3a_end", 0.0);
BlendTimeTo("stand_attack3b", 0.0);
}
Animation("stand_attack3a_lower")
{
BlendInTime(0.15);
BlendOutTime(0.15);
BlendTimeTo("stand_attack3a_end", 0.0);
BlendTimeTo("stand_attack3b", 0.0);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(7, 11, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(300);
Push(3.0);
}
Transition("ATTACK2")
{
If()
{
Break(10, "Frames");
TimeStart(4, "Frames");
TimeEnd(15, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
Transition("IDLE");
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack3b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack3b_end", 0.0);
BlendTimeTo("stand_attack3c", 0.0);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
DamageTime(8, 13, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(300);
Push(3.0);
}
Transition("ATTACK3")
{
If()
{
Break(13, "Frames");
TimeStart(6, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack3c")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
}
Sound("saber_swing", 7, "Frames");
//set a duration so we will go to state RECOVER3 before the animation ends
AlignedToThrust();
InputLock("All", "!Thrust"); // lock all controls for duration of state
Attack()
{
DamageTime(12, 16, "Frames");
DamageLength(1.5);
DamageWidth(1.0);
Damage(600);
Push(5.0);
}
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack3")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
BlendTimeTo("stand_attack3c", 0.4);
}
Sound("saber_swing");
AnimatedMove()
{
VelocityZ(17.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
// Until()
// {
// Break(16, "Frames");
// }
}
TurnFactor(0.3);
Duration(10, "Frames");
InputLock("All", "!Thrust");
Attack()
{
DamageTime(4, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(800);
Push(14.0);
}
Transition("DASHATTACK2");
}
State("DASHATTACK2")
{
Posture("Stand");
Animation("stand_dashattack3")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
BlendTimeTo("stand_attack3c", 0.4);
}
Duration(30, "Frames");
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattackend3")
{
BlendInTime(0.10);
BlendOutTime(0.25);
}
AlignedToThrust();
TurnFactor(0.3);
InputLock("All", "!Thrust", "!Fire");
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack3_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack3_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("com_weap_throw");
Duration(0);
EnergyRestoreRate(0.0);
Gravity(4.0);
GravityVelocityTarget(-15.0); // accelerate us
AnimatedMove()
{
VelocityFromThrust(90.0);
VelocityFromStrafe(0.0);
}
InputLock("All", "!Thrust"); // lock all buttons for duration of state
AlignedToThrust();
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Sound("saber_swing");
Animation("jumpattack3_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
Attack()
{
DamageTime(0, 8, "Frames");
DamageLength(1.75);
DamageWidth(0.75);
Damage(800);
Push(10.0);
}
EnergyRestoreRate(0.0);
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Transition("JUMPATTACK_RECOVER");
}
State("JUMPATTACK_RECOVER")
{
Posture("Stand");
Animation("jumpattack3_recover")
{
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
TurnFactor(0.3);
InputLock("All", "!Thrust");
Transition("IDLE");
}