///
/// Contains timing for locking the Warrior’s movement and action during animation, and also timing for attack chaining windows for button presses.
///
using UnityEngine;
namespace WarriorAnims
{
public class WarriorTiming:MonoBehaviour
{
[HideInInspector] public WarriorController warriorController;
///
/// Lock timing for all the Warrior attacks and actions.
///
public float TimingLock(Warrior warrior, string action)
{
float timing = 0f;
if (warrior == Warrior.Archer)
{
if (action == "attack1") timing = 0.7f;
else if (action == "attack2") timing = 0.7f;
else if (action == "attack3") timing = 0.7f;
else if (action == "dash") timing = 0.6f;
else if (action == "lighthit1") timing = 1f;
else if (action == "move1") timing = 1f;
else if (action == "move2") timing = 1.1f;
else if (action == "range1") timing = 0.7f;
else if (action == "range2") timing = 1.2f;
else if (action == "revive") timing = 1f;
else if (action == "sheath") timing = 1f;
else if (action == "special1") timing = 1.4f;
}
else if (warrior == Warrior.Brute)
{
if (action == "attack1") timing = 1f;
else if (action == "attack2") timing = 1.1f;
else if (action == "attack3") timing = 1.4f;
else if (action == "dash") timing = 1.4f;
else if (action == "jumpattack") timing = 1.1f;
else if (action == "lighthit1") timing = 1f;
else if (action == "move1") timing = 1.7f;
else if (action == "range1") timing = 2.3f;
else if (action == "revive") timing = 1.6f;
else if (action == "special1") timing = 2.1f;
}
else if (warrior == Warrior.Crossbow)
{
if (action == "attack1") timing = 0.8f;
else if (action == "dash") timing = 0.7f;
else if (action == "jumpattack") timing = 0.7f;
else if (action == "range1") timing = 0.8f;
else if (action == "range2") timing = 0.8f;
else if (action == "move1") timing = 1f;
else if (action == "special1") timing = 1.1f;
else if (action == "sheath") timing = 1f;
else if (action == "revive") timing = 1.3f;
else if (action == "lighthit1") timing = 1f;
}
else if (warrior == Warrior.Hammer)
{
if (action == "attack1") timing = 1.35f;
else if (action == "attack2") timing = 1.5f;
else if (action == "attack3") timing = 1.6f;
else if (action == "dash") timing = 1.3f;
else if (action == "jumpattack") timing = 0.8f;
else if (action == "lighthit1") timing = 1f;
else if (action == "move1") timing = 2.6f;
else if (action == "range1") timing = 1.8f;
else if (action == "revive") timing = 1.4f;
else if (action == "sheath") timing = 1.2f;
else if (action == "special1") timing = 1.5f;
}
else if (warrior == Warrior.Karate)
{
if (action == "attack1") timing = 0.7f;
else if (action == "attack2") timing = 0.8f;
else if (action == "attack3") timing = 0.8f;
else if (action == "attack4") timing = 0.5f;
else if (action == "attack5") timing = 1.2f;
else if (action == "attack6") timing = 0.7f;
else if (action == "attack7") timing = 1.1f;
else if (action == "attack8") timing = 0.8f;
else if (action == "attack9") timing = 0.8f;
else if (action == "dash") timing = 0.9f;
else if (action == "jumpattack") timing = 0.8f;
else if (action == "lighthit1") timing = 0.6f;
else if (action == "move1") timing = 1.1f;
else if (action == "move2") timing = 1.1f;
else if (action == "range1") timing = 1.1f;
else if (action == "range2") timing = 1.1f;
else if (action == "revive") timing = 0.9f;
else if (action == "special1") timing = 1.7f;
else if (action == "special2") timing = 1.4f;
}
else if (warrior == Warrior.Knight)
{
if (action == "attack1") timing = 0.6f;
else if (action == "attack2") timing = 0.7f;
else if (action == "attack3") timing = 0.9f;
else if (action == "dash") timing = 1.1f;
else if (action == "dash2") timing = 0.65f;
else if (action == "lighthit1") timing = 0.75f;
else if (action == "move1") timing = 1f;
else if (action == "move2") timing = 1.1f;
else if (action == "range1") timing = 1.3f;
else if (action == "revive") timing = 1.7f;
else if (action == "sheath") timing = 1f;
else if (action == "special1") timing = 1.3f;
else if (action == "special2") timing = 0.9f;
}
else if (warrior == Warrior.Mage)
{
if (action == "attack1") timing = 1.1f;
else if (action == "attack2") timing = 1.3f;
else if (action == "attack3") timing = 0.9f;
else if (action == "dash") timing = 1.1f;
else if (action == "jumpattack") timing = 0.85f;
else if (action == "lighthit1") timing = 0.8f;
else if (action == "move1") timing = 1.5f;
else if (action == "range1") timing = 1.8f;
else if (action == "range2") timing = 1.9f;
else if (action == "revive") timing = 1.3f;
else if (action == "sheath") timing = 0.8f;
else if (action == "special1") timing = 1.9f;
else if (action == "special2") timing = 1.9f;
}
else if (warrior == Warrior.Ninja)
{
if (action == "attack1") timing = 0.6f;
else if (action == "attack2") timing = 0.8f;
else if (action == "attack3") timing = 1.4f;
else if (action == "dash") timing = 0.7f;
else if (action == "lighthit1") timing = 0.5f;
else if (action == "move1") timing = 1f;
else if (action == "move2") timing = 1.1f;
else if (action == "range1") timing = 1f;
else if (action == "range2") timing = 0.9f;
else if (action == "range3") timing = 0.95f;
else if (action == "revive") timing = 0.8f;
else if (action == "sheath") timing = 1.1f;
else if (action == "special1") timing = 1.7f;
else if (action == "special2") timing = 1;
}
else if (warrior == Warrior.Sorceress)
{
if (action == "attack1") timing = 1.1f;
else if (action == "attack2") timing = 1.2f;
else if (action == "attack3") timing = 1.15f;
else if (action == "attack4") timing = 0.7f;
else if (action == "attack5") timing = 1.1f;
else if (action == "attack6") timing = 1.3f;
else if (action == "attack7") timing = 1.3f;
else if (action == "attack8") timing = 1.3f;
else if (action == "dash") timing = 0.8f;
else if (action == "lighthit1") timing = 1f;
else if (action == "move1") timing = 1.2f;
else if (action == "move2") timing = 1.2f;
else if (action == "move3") timing = 1f;
else if (action == "range1") timing = 1.4f;
else if (action == "revive") timing = 0.8f;
else if (action == "special1") timing = 1.6f;
else if (action == "special2") timing = 2.3f;
else if (action == "special3") timing = 0.9f;
}
else if (warrior == Warrior.Spearman)
{
if (action == "attack1") timing = 0.9f;
else if (action == "attack2") timing = 0.95f;
else if (action == "attack3") timing = 1.3f;
else if (action == "attack4") timing = 1f;
else if (action == "attack5") timing = 1f;
else if (action == "dash") timing = 0.7f;
else if (action == "jumpattack") timing = 0.7f;
else if (action == "lighthit1") timing = 0.8f;
else if (action == "move1") timing = 0.95f;
else if (action == "range1") timing = 1.2f;
else if (action == "revive") timing = 1.15f;
else if (action == "sheath") timing = 0.8f;
else if (action == "special1") timing = 1f;
}
else if (warrior == Warrior.Swordsman)
{
if (action == "attack1") timing = 0.9f;
else if (action == "attack2") timing = 1.1f;
else if (action == "attack3") timing = 1f;
else if (action == "dash") timing = 0.7f;
else if (action == "jumpattack") timing = 0.8f;
else if (action == "lighthit1") timing = 0.9f;
else if (action == "move1") timing = 1f;
else if (action == "range1") timing = 0.9f;
else if (action == "revive") timing = 1f;
else if (action == "sheath") timing = 0.75f;
else if (action == "special1") timing = 1.1f;
}
else if (warrior == Warrior.TwoHanded)
{
if (action == "attack1") timing = 1.1f;
else if (action == "attack2") timing = 1f;
else if (action == "attack3") timing = 1.3f;
else if (action == "jumpattack") timing = 0.8f;
else if (action == "range1") timing = 2.5f;
else if (action == "move1") timing = 1.4f;
else if (action == "special1") timing = 1.45f;
else if (action == "dash") timing = 0.95f;
else if (action == "sheath") timing = 1f;
else if (action == "revive") timing = 1.1f;
else if (action == "lighthit1") timing = 1.1f;
}
return timing;
}
///
/// Chain timing windows for the Warrior attack chain button presses.
///
public float TimingChain(Warrior warrior, string action)
{
float timing = 0f;
if (warrior == Warrior.Brute)
{
if (action == "attack1") timing = 0.4f;
else if (action == "attack1end") timing = 0.9f;
else if (action == "attack2") timing = 0.4f;
else if (action == "attack2end") timing = 0.7f;
}
else if (warrior == Warrior.Crossbow)
{
if (action == "attack1") timing = 0.8f;
else if (action == "attack1end") timing = 0.8f;
else if (action == "attack2") timing = 0.9f;
else if (action == "attack2end") timing = 0.9f;
}
else if(warrior == Warrior.Hammer)
{
if(action == "attack1") timing = 0.6f;
else if(action == "attack1end") timing = 1.2f;
else if(action == "attack2") timing = 0.6f;
else if(action == "attack2end") timing = 1.2f;
}
else if(warrior == Warrior.Karate)
{
if (action == "attack1") timing = 0.4f;
else if (action == "attack1end") timing = 0.8f;
else if (action == "attack2") timing = 0.3f;
else if (action == "attack2end") timing = 0.6f;
}
else if (warrior == Warrior.Knight)
{
if (action == "attack1") timing = 0.1f;
else if (action == "attack1end") timing = 0.8f;
else if (action == "attack2") timing = 0.3f;
else if (action == "attack2end") timing = 0.9f;
}
else if (warrior == Warrior.Mage)
{
if (action == "attack1") timing = 0.4f;
else if (action == "attack1end") timing = 1.2f;
else if (action == "attack2") timing = 0.4f;
else if (action == "attack2end") timing = 1.2f;
}
else if (warrior == Warrior.Ninja)
{
if (action == "attack1") timing = 1.2f;
else if (action == "attack1end") timing = 1.2f;
else if (action == "attack2") timing = 0.2f;
else if (action == "attack2end") timing = 0.8f;
}
else if (warrior == Warrior.Sorceress)
{
if (action == "attack1") timing = 0.3f;
else if (action == "attack1end") timing = 1.4f;
else if (action == "attack2") timing = 1.2f;
else if (action == "attack2end") timing = 1.2f;
}
else if (warrior == Warrior.Spearman)
{
if (action == "attack1") timing = 0.2f;
else if (action == "attack1end") timing = 0.8f;
else if (action == "attack2") timing = 0.6f;
else if (action == "attack2end") timing = 1.1f;
}
else if (warrior == Warrior.Swordsman)
{
if (action == "attack1") timing = 0.6f;
else if (action == "attack1end") timing = 0.6f;
else if (action == "attack2") timing = 1.1f;
else if (action == "attack2end") timing = 1.1f;
}
else if (warrior == Warrior.TwoHanded)
{
if (action == "attack1") timing = 0.6f;
else if (action == "attack1end") timing = 1f;
else if (action == "attack2") timing = 0.5f;
else if (action == "attack2end") timing = 0.8f;
}
return timing;
}
}
}