Combo file missing brackets?

In this forum you will find and post information regarding the modding of Star Wars Battlefront 2. DO NOT POST MOD IDEAS/REQUESTS.

Moderator: Moderators

Post Reply
User avatar
Dakota
Field Commander
Field Commander
Posts: 991
Joined: Mon Dec 06, 2010 8:21 pm
Projects :: making random weapon assets
Games I'm Playing :: SWBF2 and more
xbox live or psn: PS3 beats xbox
Location: at a computer desk floating around in space

Combo file missing brackets?

Post 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
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");
}
Bob
Brigadier General
Brigadier General
Posts: 633
Joined: Thu May 27, 2010 4:28 am
Location: at home

Re: Combo file missing brackets?

Post by Bob »

it's because you have more than one ATTACK1, BACKATTACK and stuff, a combo can only contain one of these. just take a .combo file from one of yor guys, think about which attacks you want and then copypasta.
example: we have mace's combo as template but want vaders 1. attack as the first attack of your custom guy. select the ATTACK1 stuff and the recover part in mace's combo, delete it and then select the ATTACK1 stuff and the recover part in vader's .combo, copy it and paste it exactly where you deleted that part in mace's combo.
Of course you can also use it as third or second attack.
don't forget to make a fitting animset.
User avatar
Dakota
Field Commander
Field Commander
Posts: 991
Joined: Mon Dec 06, 2010 8:21 pm
Projects :: making random weapon assets
Games I'm Playing :: SWBF2 and more
xbox live or psn: PS3 beats xbox
Location: at a computer desk floating around in space

Re: Combo file missing brackets?

Post by Dakota »

Bob wrote:it's because you have more than one ATTACK1, BACKATTACK and stuff, a combo can only contain one of these. just take a .combo file from one of yor guys, think about which attacks you want and then copypasta.
example: we have mace's combo as template but want vaders 1. attack as the first attack of your custom guy. select the ATTACK1 stuff and the recover part in mace's combo, delete it and then select the ATTACK1 stuff and the recover part in vader's .combo, copy it and paste it exactly where you deleted that part in mace's combo.
Of course you can also use it as third or second attack.
don't forget to make a fitting animset.
actually i already have the animset done but i needed to know what i had done wrong in this, i know that the jedi creation documents said i could add in "secret moves" but i was just trying to add in the moves for all three of these heros just so that i could set this up to have mixable combos.

i know mav did something like this with his heros in the dark times except his was set up as regular attack combo and heavy attack combo and they could be mixed for the full combo.

maybe if i set these attacks up as extra ones or set the attack1 thing to another group of numbers for the other combos.

if you notice the wampa has the clap attack instead of block, what i mean by setting them up as extra attaccks is trying to set them up as clap/extra attacks so that they work.


i have set up a hero that works with a full left click combo, a dash attack, no block, the middle mouse button being a saber attack, and the right click button being a saber attack but i wanted to try this for using even more than this.

EDIT: i redid the combo file and am testing it now
Hidden/Spoiler:
removed
EDIT2: i think i may need to add transitions for the different combo types to work better i'm going to try that and be back with the updates

EDIT3: ok i got the new combo file done with transitions and now i get a new error

ERROR[configmunge odf\hero_combo.combo]:This file is missing a closing bracket somewhere!
1 Errors 0 Warnings

heres the new 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("ATTACK4")
{
If()
{
TimeStart(5, "Frames");
TimeEnd(16, "Frames");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("ATTACK7")
{
If()
{
TimeStart(5, "Frames");
TimeEnd(16, "Frames");
Posture("Stand");
Button("Reload", "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("ATTACK6")
{
If()
{
TimeStart(7, "Frames");
TimeEnd(17, "Frames");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("ATTACK9")
{
If()
{
TimeStart(7, "Frames");
TimeEnd(17, "Frames");
Posture("Stand");
Button("Reload", "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("DASHATTACK4")
{
If()
{
Break(21, "Frames");
TimeStart(17, "Frames");
TimeEnd(22, "Frames");
Posture("Stand", "Sprint");
Button("Reload", "Press");
}
}
Transition("DASHFLIP")
{
If()
{
Break(21, "Frames");
TimeStart(17, "Frames");
TimeEnd(22, "Frames");
Posture("Stand", "Sprint");
Button("FireSecondary", "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("DASHATTACK4")
{
If()
{
Break(21, "Frames");
TimeStart(17, "Frames");
TimeEnd(22, "Frames");
Posture("Stand", "Sprint");
Button("Reload", "Press");
}
}
Transition("DASHFLIP")
{
If()
{
Break(21, "Frames");
TimeStart(17, "Frames");
TimeEnd(22, "Frames");
Posture("Stand", "Sprint");
Button("FireSecondary", "Press");
}
}
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_SABRE2")
{
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_ATTACK2")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("FireSecondary", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK4")
{
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_FALL2")
{
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("BACK_ATTACK2")
{
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("ATTACK4")
{
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("ATTACK5")
{
If()
{
TimeStart(4, "Frames");
TimeEnd(14, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("ATTACK2")
{
If()
{
TimeStart(4, "Frames");
TimeEnd(14, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("ATTACK8")
{
If()
{
TimeStart(4, "Frames");
TimeEnd(14, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

Transition("RECOVER4");
}

State("RECOVER4")
{
Posture("Stand");
Animation("stand_attack2a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("ATTACK5")
{
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("ATTACK6")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("ATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("ATTACK9")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

Transition("RECOVER5");
}

State("RECOVER5")
{
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("ATTACK6")
{
If()
{
TimeStart(0.0);
TimeEnd(6, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}

InputLock("All", "!Thrust");
AlignedToThrust();

Transition("IDLE");
}

State("ATTACK6")
{
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("ATTACK6_LAND");
}

State("ATTACK6_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");
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK2")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("DASHATTACK4")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

}

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")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("DASHATTACK4")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

{
EnergyCost(20);
If()
{
TimeStart(7, "Frames");
TimeEnd(25, "Frames");
Break(19, "Frames");
Button("FireSecondary", "Press");
}
}

Transition("DASHATTACK_END")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("DASHATTACK4")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

{
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");
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("DASHATTACK4")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

}

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")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("DASHATTACK4")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}

{
EnergyCost(20);
If()
{
TimeStart(7, "Frames");
TimeEnd(25, "Frames");
Break(19, "Frames");
Button("FireSecondary", "Press");
}
}

Transition("DASHATTACK4_END")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}
Transition("DASHATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("DASHATTACK4")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
{
If()
{
Break(25, "Frames");
}
}
}

State("DASHATTACK4_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("JUMPATTACK2_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("JUMPATTACK2_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}

State("JUMPATTACK2_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("JUMPATTACK2_LAND");
}

State("JUMPATTACK2_LAND")
{
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_SABRE3")
{
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_ATTACK3")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Reload", "Press");
Thrust(">", 0.25);
ThrustAngle(135, 225);
}
}
Transition("ATTACK7")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Button("Reload", "Press");
}
}

Transition("DASHATTACK5")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Sprint");
Button("Reload", "Press");
}
}
Transition("JUMPATTACK3_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("BACK_ATTACK3")
{
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("ATTACK7")
{
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("ATTACK8")
{
If()
{
Break(10, "Frames");
TimeStart(4, "Frames");
TimeEnd(15, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
{
Transition("ATTACK2")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("ATTACK5")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}

Transition("IDLE");
}

State("ATTACK8")
{
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("ATTACK9")
{
If()
{
Break(13, "Frames");
TimeStart(6, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Reload", "Press");
}
}
{
Transition("ATTACK3")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("ATTACK7")
{
If()
{
TimeStart(3, "Frames");
TimeEnd(18, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("FireSecondary", "Press");
}
}

Transition("IDLE");
}

State("ATTACK9")
{
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("DASHATTACK5")
{
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("DASHATTACK6");
}

State("DASHATTACK6")
{
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("DASHATTACK6_RECOVER");
}

State("DASHATTACK6_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("JUMPATTACK3_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("JUMPATTACK3_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}

State("JUMPATTACK3_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("JUMPATTACK3_RECOVER");
}

State("JUMPATTACK3_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");
}
i edited the combo file and now i have the same error as the first time (can someone please post so that i don't have to keep editing

i can't post the file up since its too many characters.

also i went through and checked it all 3 times with notepad++ and couldn't find a missing bracket
Post Reply