Anyone know how to fix this? Help would be great, thanks
Hero Groundcrack help
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
- Cerfon Rournes
- Master Bounty Hunter

- Posts: 1558
- Joined: Thu Jul 08, 2010 5:53 pm
- Projects :: WIP. I will reveal what it is later on..
- Games I'm Playing :: SWBF2-SWRC
- xbox live or psn: No gamertag set
- Location: New York, USA
- Contact:
Hero Groundcrack help
Post by Cerfon Rournes »
Hey GT! I need some help with Mace's groundcrack. I made a custom animation set for my hero, and it includes Mace's Jump/land attack. I munged it, and everytime I do the Jump attack, It looks like this:
I want it to look like this:
I'm not sure what I'm missing, I put com_sfx_groundcrack,com_sfx_groundcrack2, and com_sfx_jedismash In my sides/all/effects folder, didn't fix the problem.
Anyone know how to fix this? Help would be great, thanks
Hidden/Spoiler:
Hidden/Spoiler:
Anyone know how to fix this? Help would be great, thanks
-
Press_Tilty
- Chief Warrant Officer

- Posts: 331
- Joined: Fri Jun 04, 2010 10:57 pm
- Projects :: Korsava IV - Pre WIP
- Games I'm Playing :: MW2-Reach-BF2
- Location: Seattle Area
Re: Hero Groundcrack help
Post by Press_Tilty »
I know nothing about this, but did you tell it to do that? Just loading the files isn't going to do anything unless you tell it to load the fc.
- Cerfon Rournes
- Master Bounty Hunter

- Posts: 1558
- Joined: Thu Jul 08, 2010 5:53 pm
- Projects :: WIP. I will reveal what it is later on..
- Games I'm Playing :: SWBF2-SWRC
- xbox live or psn: No gamertag set
- Location: New York, USA
- Contact:
Re: Hero Groundcrack help
Post by Cerfon Rournes »
Ya you're right. I didn't tell it to load the files, because i don't know what to put in the?.. odf I guess?Press_Tilty wrote:I know nothing about this, but did you tell it to do that? Just loading the files isn't going to do anything unless you tell it to load the fc.
-
Press_Tilty
- Chief Warrant Officer

- Posts: 331
- Joined: Fri Jun 04, 2010 10:57 pm
- Projects :: Korsava IV - Pre WIP
- Games I'm Playing :: MW2-Reach-BF2
- Location: Seattle Area
Re: Hero Groundcrack help
Post by Press_Tilty »
No idea. I just made the same mistake. Except with units.
- Fiodis
- Master of the Force

- Posts: 4145
- Joined: Wed Nov 12, 2008 9:27 pm
- Projects :: Rannoch + Tientia + Tools Programming
Re: Hero Groundcrack help
You need to set up an explosion like Mace's saber has. Look in its odf. Then look in Mace's combo file, in the jumpattack states, and see the line PlayExplosion? Add it in the same spot in your Jedi's combo.
- Cerfon Rournes
- Master Bounty Hunter

- Posts: 1558
- Joined: Thu Jul 08, 2010 5:53 pm
- Projects :: WIP. I will reveal what it is later on..
- Games I'm Playing :: SWBF2-SWRC
- xbox live or psn: No gamertag set
- Location: New York, USA
- Contact:
Re: Hero Groundcrack help
Post by Cerfon Rournes »
K I added that to the combo file, didn't work.Fiodis wrote:You need to set up an explosion like Mace's saber has. Look in its odf. Then look in Mace's combo file, in the jumpattack states, and see the line PlayExplosion? Add it in the same spot in your Jedi's combo.
Hidden/Spoiler:
OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
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")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}
Duration(0.0); // infinite duration, looping anim
InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);
DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
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_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("saber_swing");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("saber_triple");
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Deflect()
{
DeflectAngle(-140, 140); // deflect anything from forward arc
EnergyCost(2.0);
}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("saber_throw"); // the sound, that is
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("saber_swing");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "!Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_swing");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
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("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
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")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}
Duration(0.0); // infinite duration, looping anim
InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);
DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
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_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("saber_swing");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("saber_triple");
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Deflect()
{
DeflectAngle(-140, 140); // deflect anything from forward arc
EnergyCost(2.0);
}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("saber_throw"); // the sound, that is
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("saber_swing");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "!Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_swing");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
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("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}
Here is my jedi's Combo file without any changes
Hidden/Spoiler:
OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
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")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}
Duration(0.0); // infinite duration, looping anim
InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);
DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
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_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("saber_swing");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("saber_triple");
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Deflect()
{
DeflectAngle(-140, 140); // deflect anything from forward arc
EnergyCost(2.0);
}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("saber_throw"); // the sound, that is
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("saber_swing");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "!Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_swing");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_land")
{
AimType("FullBody");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
AnimatedMove();
InputLock("All");
Attack()
{
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(800);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(0.4);
ButtonsPressed("Any");
}
Or()
{
Break(0.4);
Thrust(">", 0.54);
}
}
}
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
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")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}
Duration(0.0); // infinite duration, looping anim
InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);
DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
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_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("saber_swing");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("saber_triple");
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Deflect()
{
DeflectAngle(-140, 140); // deflect anything from forward arc
EnergyCost(2.0);
}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("saber_throw"); // the sound, that is
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("saber_swing");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "!Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_swing");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("IDLE");
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_land")
{
AimType("FullBody");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
AnimatedMove();
InputLock("All");
Attack()
{
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(800);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(0.4);
ButtonsPressed("Any");
}
Or()
{
Break(0.4);
Thrust(">", 0.54);
}
}
}
-
kinetosimpetus
- Imperial Systems Expert

- Posts: 2381
- Joined: Wed Mar 25, 2009 4:15 pm
- Projects :: A secret project
- Games I'm Playing :: Warframe STO
Re: Hero Groundcrack help
Post by kinetosimpetus »
Fiodis wrote:You need to set up an explosion like Mace's saber has. Look in its odf.
- Cerfon Rournes
- Master Bounty Hunter

- Posts: 1558
- Joined: Thu Jul 08, 2010 5:53 pm
- Projects :: WIP. I will reveal what it is later on..
- Games I'm Playing :: SWBF2-SWRC
- xbox live or psn: No gamertag set
- Location: New York, USA
- Contact:
Re: Hero Groundcrack help
Post by Cerfon Rournes »
Here is the odf.kinetosimpetus wrote:Fiodis wrote:You need to set up an explosion like Mace's saber has. Look in its odf.
Hidden/Spoiler:
[ExplosionClass]
ClassLabel = "explosion"
[Properties]
// Important
HurtOwner = 0
Push = "8.0"
PushRadiusInner = "2.5"
PushRadiusOuter = "7.5"
Shake = "0.6"
ShakeLength = "0.60"
ShakeRadiusInner = "5.0"
ShakeRadiusOuter = "5.0"
LifeSpan = "0.3"
Damage = "400.0"
DamageRadiusInner = "0.0"
DamageRadiusOuter = "8.0"
Effect = "com_sfx_groundcrack"
//Effect = "com_sfx_jedismash"
ArmorScale = "1.0"
HealthScale = "1.0"
ShieldScale = "0.5"
VehicleScale = "3.0"
SoundProperty = "mace_quake_exp"
ClassLabel = "explosion"
[Properties]
// Important
HurtOwner = 0
Push = "8.0"
PushRadiusInner = "2.5"
PushRadiusOuter = "7.5"
Shake = "0.6"
ShakeLength = "0.60"
ShakeRadiusInner = "5.0"
ShakeRadiusOuter = "5.0"
LifeSpan = "0.3"
Damage = "400.0"
DamageRadiusInner = "0.0"
DamageRadiusOuter = "8.0"
Effect = "com_sfx_groundcrack"
//Effect = "com_sfx_jedismash"
ArmorScale = "1.0"
HealthScale = "1.0"
ShieldScale = "0.5"
VehicleScale = "3.0"
SoundProperty = "mace_quake_exp"
-
AQT
- Gametoast Staff

- Posts: 4910
- Joined: Sat Nov 03, 2007 4:55 pm
- Location: SoCal, USA
Re: Hero Groundcrack help
That's the explosion ODF. Fiodis was referring to the lightsaber ODF. That's where you reference the explosion ODF in order for it to work.
See?
Hidden/Spoiler:
[WeaponClass]
ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"
[Properties]
ExplosionName = "rep_mace_groundcrack_exp"
//SmashEffect = "com_sfx_groundcrack"
GeometryName = "rep_weap_inf_lightsabre"
ComboAnimationBank = "human_sabre melee rep_hero_macewindu"
FirePointName = "hp_fire"
LightSaberLength = "1.0"
LightSaberWidth = "0.08"
LightSaberTexture = "violetlightsaber"
LightSaberTrailColor = "189 7 255 128"
ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"
[Properties]
ExplosionName = "rep_mace_groundcrack_exp"
//SmashEffect = "com_sfx_groundcrack"
GeometryName = "rep_weap_inf_lightsabre"
ComboAnimationBank = "human_sabre melee rep_hero_macewindu"
FirePointName = "hp_fire"
LightSaberLength = "1.0"
LightSaberWidth = "0.08"
LightSaberTexture = "violetlightsaber"
LightSaberTrailColor = "189 7 255 128"
- Cerfon Rournes
- Master Bounty Hunter

- Posts: 1558
- Joined: Thu Jul 08, 2010 5:53 pm
- Projects :: WIP. I will reveal what it is later on..
- Games I'm Playing :: SWBF2-SWRC
- xbox live or psn: No gamertag set
- Location: New York, USA
- Contact:
Re: Hero Groundcrack help
Post by Cerfon Rournes »
K, I added that to my lightsaber odf:AQT wrote:That's the explosion ODF. Fiodis was referring to the lightsaber ODF. That's where you reference the explosion ODF in order for it to work.See?Hidden/Spoiler:[WeaponClass]
ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"
[Properties]
ExplosionName = "rep_mace_groundcrack_exp"
//SmashEffect = "com_sfx_groundcrack"
GeometryName = "rep_weap_inf_lightsabre"
ComboAnimationBank = "human_sabre melee rep_hero_macewindu"
FirePointName = "hp_fire"
LightSaberLength = "1.0"
LightSaberWidth = "0.08"
LightSaberTexture = "violetlightsaber"
LightSaberTrailColor = "189 7 255 128"
Hidden/Spoiler:
[WeaponClass]
ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"
[Properties]
ExplosionName = "rep_mace_groundcrack_exp"
//SmashEffect = "com_sfx_groundcrack"
GeometryName = "all_weap_inf_lightsabre"
ComboAnimationBank = "human_sabre melee all_hero_luke_jedi"
FirePointName = "hp_fire"
LightSaberLength = "1.0"
LightSaberWidth = "0.08"
LightSaberTexture = "greenlightsabre"
LightSaberTrailColor = "82 255 7 128"
ClassLabel = "melee"
ClassParent = "com_weap_inf_lightsaber"
[Properties]
ExplosionName = "rep_mace_groundcrack_exp"
//SmashEffect = "com_sfx_groundcrack"
GeometryName = "all_weap_inf_lightsabre"
ComboAnimationBank = "human_sabre melee all_hero_luke_jedi"
FirePointName = "hp_fire"
LightSaberLength = "1.0"
LightSaberWidth = "0.08"
LightSaberTexture = "greenlightsabre"
LightSaberTrailColor = "82 255 7 128"
Hidden/Spoiler:
[img]OffhandAnimation("stand_useforce", "FIRE")
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
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")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}
Duration(0.0); // infinite duration, looping anim
InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);
DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
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_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("saber_swing");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("saber_triple");
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Deflect()
{
DeflectAngle(-140, 140); // deflect anything from forward arc
EnergyCost(2.0);
}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("saber_throw"); // the sound, that is
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("saber_swing");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "!Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_swing");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_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("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}[/img]
{
Loop("FinalFrame");
AimType("Torso");
BlendInTime(0.15);
BlendOutTime(0.15);
}
OffhandAnimation("stand_useforce", "FIRE2");
OffhandAnimation("stand_useforce", "CHARGE");
Animation("stand_attack1a_end");
Animation("stand_attack1b");
//Animation("stand_attack1a_upper")
//{
// AimType("Torso");
// BlendInTime(0.0);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
//Animation("stand_attack1a_lower")
//{
// BlendInTime(0.15);
// BlendOutTime(0.15);
// BlendTimeTo("stand_attack1a_end", 0.0);
// BlendTimeTo("stand_attack1b", 0.0);
//}
// Throw stuff....
ThrowAnimation("stand_throw");
State("CATCH_SABRE")
{
Posture("Stand");
// Sound("saber_catch");
Animation("stand_catch")
{
AimType("None");
BlendOutTime(0.2);
}
InputLock("All", "!Thrust");
AlignedToThrust();
}
State("IDLE")
{
Duration(0.0); // infinite duration
EnergyRestoreRate(); // (0.0, "FromSoldier")
InputLock(0.15, "Sprint", "Jump", "Crouch");
Transition("DEFLECT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Posture("Stand", "Crouch");
Energy(">=", 2.5); // at least half a second worth of deflect time
Button("FireSecondary", "Press");
}
}
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")
{
Posture("Stand");
Sound("imp_weap_lightsabre_block");
Animation("stand_block_idle")
{
Loop();
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
LowResPose(0, "Frames");
}
Duration(0.0); // infinite duration, looping anim
InputLock(0.0, "All", "!Thrust"); // lock all but move controller for duration of state
EnergyRestoreRate(-10.0); // drain energy while ready to deflect
Deflect()
{
DeflectAngle(-110, 110); // deflect anything from forward arc
EnergyCost(0.0);
DeflectAnimation("stand_block_front1", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_front2", "Forward")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left1", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_left2", "Left")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right1", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
DeflectAnimation("stand_block_right2", "Right")
{
// AimType("Torso");
BlendInTime(0.00);
BlendOutTime(0.05);
LowResPose(5, "Frames");
}
}
Transition("ATTACK1")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Fire", "Press");
}
}
Transition("DEFLECT_ROLL") // same as the code checking for rolling
{
EnergyCost(25.0);
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
Thrust(">", 0.9);
ThrustAngle(-120, 120);
}
}
Transition("DEFLECT_CROUCH")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Crouch", "Press");
}
}
Transition("DEFLECT_JUMP")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Jump", "Press");
}
}
Transition("DEFLECT_SPRINT")
{
If()
{
Break(); // all transitions are breaking if Duration is 0
Button("Sprint", "Down");
}
}
Transition("IDLE")
{
If()
{
Break();
Energy("<=", 0.0); // if no energy left
}
Or()
{
Break(20, "Frames"); // all transitions are breaking if Duration is 0
Button("FireSecondary", "Press");
}
Or()
{
Break(); // all transitions are breaking if Duration is 0
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_attack_backwards")
{
BlendInTime(0.15);
BlendOutTime(0.15);
}
Sound("saber_swing");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
Edge(0);
DamageTime(5, 10, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(14, 20, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(300);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(5, 8, "Frames");
DamageLength(1.5);
DamageWidth(0.75);
Damage(200);
Push(4.0);
}
Transition("IDLE")
{
If()
{
Break(25, "Frames");
}
}
}
//Forward declare animations to allow BlendTimeTo references:
Animation("stand_attack1b_end");
Animation("stand_attack1c");
State("ATTACK1")
{
Posture("Stand");
Animation("stand_attack1a")
{
BlendInTime(0.1); // was 0.5
AimType("None");
}
Sound("saber_attack_three");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
AlignedToThrust();
Attack()
{
Edge(1);
DamageTime(2, 7, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(400);
Push(3.0);
}
Attack()
{
Edge(0);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(13, 17, "Frames");
DamageLength(1.5);
DamageWidth(.95);
Damage(300);
Push(3.0);
}
Transition("ATTACK1_WINDDOWN")
{
If()
{
TimeStart(9, "Frames");
TimeEnd(22, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER1");
}
State("RECOVER1")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK1_WINDDOWN")
{
Posture("Stand");
Animation("stand_attack1a_end")
{
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
AlignedToThrust();
InputLock("All", "!Thrust");
Transition("ATTACK2")
{
If()
{
Break(0.2); // break out after 0.2 seconds
}
}
}
State("ATTACK2")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
Sound("saber_swing");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(5.0);
}
Duration(12, "Frames");
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
// Transition("ATTACK3")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
// }
// Transition("RECOVER2");
Transition("ATTACK2_LAND");
}
State("ATTACK2_LAND")
{
Posture("Stand");
Animation("stand_attack1b")
{
// SyncType("attack1b", "ByTime");
AimType("None");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1b_end", 0.0);
BlendTimeTo("stand_attack1c", 0.0);
BlendTimeTo("stand_attack1a", 0.25);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Attack()
{
AttackID("A2");
Edge(0);
DamageTime(9, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
Attack()
{
Edge(1);
DamageTime(12, 15, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(3.0);
}
// Transition("ATTACK_JUMP")
// {
// If()
// {
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Jump", "Press");
// }
// }
Transition("ATTACK3")
{
If()
{
TimeStart("-12", "Frames");
TimeEnd(23, "Frames"); //, "SyncIfOvertime");
Posture("Stand");
Button("Fire", "Press");
}
}
Transition("RECOVER2");
}
//State("ATTACK_JUMP")
//{
// Posture("Jump");
// Animation("jump_backward");
// AnimatedMove() // animation controls velocity for entire state
// {
// VelocityZ(-8.0);
// VelocityX(0.0);
// VelocityFromThrust(0.0);
// VelocityFromStrafe(3.0);
// }
//
// InputLock("All", "!Strafe");
// AlignedToThrust();
//
// Transition("JUMPATTACK_FALL2")
// {
// If()
// {
// Break(10, "Frames");
// Button("Fire", "Press");
// }
// }
//
// Transition("IDLE")
// {
// If()
// {
// Break(10, "Frames");
// Posture("Any", "!Jump", "!Jet");
// }
// }
//}
State("RECOVER2")
{
Posture("Stand");
Animation("stand_attack1b_end")
{
// SyncType("attack1c", "ByTime");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.15);
}
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(1.0);
VelocityFromStrafe(1.0);
}
InputLock("All", "!Thrust");
AlignedToThrust();
Transition("IDLE");
}
State("ATTACK3")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
Sound("saber_triple");
//set a duration so we will go to state _LAND before the animation ends
Duration(19, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(9.0);
VelocityFromStrafe(3.0);
}
AlignedToThrust();
StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
Edge(1);
DamageTime(5, 9, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Transition("ATTACK3_LAND");
}
State("ATTACK3_LAND")
{
Posture("Stand");
Animation("stand_attack1c")
{
// SyncType("attack1c", "ByTime");
AimType("Torso");
BlendInTime(0.06);
BlendOutTime(0.15);
BlendTimeTo("stand_attack1c", 0.5);
}
//set a duration so we will go to state RECOVER3 before the animation ends
Duration(30, "Frames");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
//StrafeFactor(0.5);
TurnFactor(0.5);
InputLock("All", "!Thrust", "!Fire"); // lock all controls for duration of state
Attack()
{
AttackID("A3-0");
Edge(0);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
Attack()
{
AttackID("A3-1");
Edge(1);
DamageTime(18, 21, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(600);
Push(3.0);
}
//Transition("DASHATTACK")
//{
// If()
// {
// Break(25, "Frames");
// TimeStart(0.0);
// TimeEnd(0.25, "FromEnd"); //, "SyncIfOvertime");
// Posture("Stand");
// Button("Fire", "Press");
// }
//}
Transition("RECOVER3");
}
State("RECOVER3")
{
Posture("Stand");
Animation("stand_attack1c");
InputLock("All", "!Thrust");
AnimatedMove() // animation controls velocity for entire state
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(2.0);
VelocityFromStrafe(2.0);
}
AlignedToThrust();
Transition("IDLE");
}
State("DASHATTACK")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
BlendOutTime(0.25);
}
Sound("saber_triple");
Duration(20, "Frames");
AnimatedMove()
{
VelocityZ(11.0);
VelocityX(0.0);
VelocityFromThrust(5.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
InputLock("All", "!Thrust");
Deflect()
{
DeflectAngle(-140, 140); // deflect anything from forward arc
EnergyCost(2.0);
}
Attack()
{
Edge(0);
DamageTime(4, 8, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(0);
DamageTime(10, 16, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
Edge(1);
DamageTime(6, 17, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Transition("DASHATTACK_LAND");
}
State("DASHATTACK_LAND")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
Sound("saber_throw"); // the sound, that is
AnimatedMove()
{
VelocityZ(0.0);
VelocityX(0.0);
VelocityFromThrust(0.5);
VelocityFromStrafe(0.5);
}
TurnFactor(0.3);
Duration(32, "Frames");
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_RA1");
Edge(0);
DamageTime(16, 22, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(500);
Push(4.0);
}
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("DASHATTACK_RECOVER");
}
State("DASHATTACK_RECOVER")
{
Posture("Stand");
Animation("stand_dashattack")
{
AimType("FullBody");
BlendInTime(0.10);
//BlendOutTime(0.10);
}
InputLock("All", "!Thrust");
Attack()
{
AttackID("Dash_end_twirl");
Edge(0);
DamageTime(28, 40, "Frames");
DamageLength(1.5);
DamageWidth(.75);
Damage(300);
Push(4.0);
}
Transition("IDLE");
}
// forward declare jumpattack_land, since jumpattack_fall refers to it:
Animation("jumpattack_land");
State("JUMPATTACK_FALL")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_double");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
// from ATTACK_JUMP only
State("JUMPATTACK_FALL2")
{
Posture("Jump");
Animation("jumpattack_fall")
{
Loop("FinalFrame");
AimType("None");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
AnimatedMove()
{
VelocityZ(150.0);
VelocityX(0.0);
VelocityFromThrust(0.0);
VelocityFromStrafe(1.0);
}
TurnFactor(0.3);
Sound("saber_swing");
Gravity(0.3);
GravityVelocityTarget(-2.5, "Impulse", "ZeroGravity"); // accelerate us immediately
InputLock("All", "!Strafe"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(2, 22, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
Transition("JUMPATTACK_END")
}
State("JUMPATTACK_END")
{
Posture("Jump");
Animation("jumpattack_end")
{
AimType("None");
SyncType("jumpattack_land", "ByTime");
BlendInTime(0.15);
BlendOutTime(0.80);
// BlendTimeTo("jumpattack_land", 0.15);
}
Sound("saber_swing");
Gravity(2.0);
GravityVelocityTarget(-20.0); // accelerate us to 20m/s down at 2 g's
Duration(15, "Frames");
AnimatedMove();
InputLock("All", "!Thrust"); // lock all buttons for duration of state
Attack()
{
Edge(0);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Attack()
{
Edge(1);
AttackId("JUMPATTACK");
DamageTime(0, 6, "Frames");
DamageLength(1.75);
DamageWidth(1.25);
Damage(800);
Push(4.0);
}
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_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("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}[/img]
-
AQT
- Gametoast Staff

- Posts: 4910
- Joined: Sat Nov 03, 2007 4:55 pm
- Location: SoCal, USA
Re: Hero Groundcrack help
It will only work if your explosion ODF is named rep_mace_groundcrack_exp. Is it? And the changes you made to the .combo are what?
- Cerfon Rournes
- Master Bounty Hunter

- Posts: 1558
- Joined: Thu Jul 08, 2010 5:53 pm
- Projects :: WIP. I will reveal what it is later on..
- Games I'm Playing :: SWBF2-SWRC
- xbox live or psn: No gamertag set
- Location: New York, USA
- Contact:
Re: Hero Groundcrack help
Post by Cerfon Rournes »
Yes, It is named "rep_mace_groundcrack_exp"AQT wrote:It will only work if your explosion ODF is named rep_mace_groundcrack_exp. Is it? And the changes you made to the .combo are what?
The changes:
Hidden/Spoiler:
Transition("JUMPATTACK_LAND")
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_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("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}
{
If()
{
Break();
Posture("Stand");
}
}
Transition("IDLE")
{
If()
{
Break();
Posture("Any", "!Stand", "!Jump", "!Jet");
}
}
}
State("JUMPATTACK_LAND")
{
Posture("Stand");
Animation("jumpattack_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("jumpattack_land")
{
AimType("FullBody");
//SyncType("jumpattack_land", "ByTime");
BlendInTime(0.00);
BlendOutTime(0.20);
}
EnergyRestoreRate(0.0);
PlayExplosion(); // yep...
AnimatedMove();
InputLock("All");
}
*EDIT*
I changed my hero to Mace, and kept the same msh. Didn't work
Hidden/Spoiler:
ComboAnimationBank = "human_sabre melee all_hero_luke_jedi"
Hidden/Spoiler:
ComboAnimationBank = "human_sabre melee rep_hero_macewindu"
Jump to
- Site Rules: Please Read Before Posting
- ↳ Site Rules
- Star Wars Battlefront Series
- ↳ SWBF2 General
- ↳ SWBF2 Modding
- ↳ SWBF2 Map/Mod Works In Progress
- ↳ SWBF2 Released Maps & Mods
- ↳ 3D Modeling & Animation
- ↳ All things SWBF1
- ↳ Released Assets
- Gametoast Hosted Mods -- Battlefront Series
- ↳ SWBF1 Conversion Pack
- ↳ The Dark Times
- ↳ SWBF2 Xbox Mod
- ↳ SWBF2 PSP Mod
- Gametoast Site And Clan Discussion
- ↳ [GT] Gametoast Clan (all games)
- ↳ Feedback for Gametoast
- Other Games
- ↳ Game Modding - Other
- ↳ Game Discussion - Other
- ↳ Steam Games
- Miscellaneous
- ↳ Star Wars General Discussion
- ↳ Off-Topic...
- ↳ Media Forum
- ↳ Technical Advice and Tutorials
- ↳ Destiny of the Galaxy Mod
- ↳ Crysis - Discussion & Editing
- ↳ Jedi Knight Series - Discussion & Editing
- ↳ Gametoast Competitions
- ↳ Saga Of The 607th Mod
- ↳ The Dynamic Project
- ↳ Last Days
- ↳ Battlefront Zer0
- ↳ Minecraft Gaming & Modding
- ↳ Minecraft Modding
- ↳ Minecraft General
- ↳ Xbox Live


