Reworked animtion attack sequence so hit effect and damage number display at the same time

This commit is contained in:
Gregory Campbell
2020-04-15 21:46:23 -04:00
parent 0a7130bc21
commit 83d495685e
+87 -75
View File
@@ -285,74 +285,6 @@ public class GMScript : MonoBehaviour
print(PartyColours[OrderNumbers[i]-1]);
//CHECKING IF AN "ATTACK" OR "NON-ATTACK" ROBOT IS GOING
if(((Colours)PartyColours[OrderNumbers[i]-1] != Colours.Grey &&
(Colours)PartyColours[OrderNumbers[i]-1] != Colours.White &&
(Colours)PartyColours[OrderNumbers[i]-1] != Colours.Black)
&& shield != true && enemyShield != true)
{
Hit.transform.GetComponent<SpriteRenderer>().color =
SetColour(PartyColours[OrderNumbers[i]-1]);
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
Symbols[PartyColours[OrderNumbers[i]-1]];
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
SetColour(PartyColours[OrderNumbers[i]-1]);
Hit.SetActive(true);
Animator hit = Hit.transform.GetComponent<Animator>();
hit.SetTrigger("HitTrigger");
yield return new WaitForSeconds(
hit.GetCurrentAnimatorStateInfo(0).length
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
Hit.SetActive(false);
hit.SetTrigger("HitTrigger");
}
// GREY ROBOT (SHIELD) IS GOING
if ((Colours)PartyColours[OrderNumbers[i]-1] == Colours.Grey){
shield = true;
Shield.transform.GetComponent<SpriteRenderer>().color =
SetColour(PartyColours[OrderNumbers[i]-1]);
Shield.SetActive(true);
}
// NON-ATTACK ROBOT IS GOING
if ((Colours)PartyColours[OrderNumbers[i]-1] == Colours.White ||
(Colours)PartyColours[OrderNumbers[i]-1] == Colours.Grey ||
(Colours)PartyColours[OrderNumbers[i]-1] == Colours.Black){
EnemyHit.transform.GetComponent<SpriteRenderer>().color =
SetColour(PartyColours[OrderNumbers[i]-1]);
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
Symbols[PartyColours[OrderNumbers[i]-1]];
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
SetColour(PartyColours[OrderNumbers[i]-1]);
EnemyHit.SetActive(true);
Animator hit = EnemyHit.transform.GetComponent<Animator>();
hit.SetTrigger("HitTrigger");
yield return new WaitForSeconds(
hit.GetCurrentAnimatorStateInfo(0).length
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
EnemyHit.SetActive(false);
hit.SetTrigger("HitTrigger");
}
//SETTING AND OUTPUT OF ROBOT COLOUR
robotColour = (Colours)PartyColours[OrderNumbers[i]-1];
//print(robotColour);
@@ -390,7 +322,90 @@ public class GMScript : MonoBehaviour
enemyAttackAnim.GetCurrentAnimatorStateInfo(0).length
+enemyAttackAnim.GetCurrentAnimatorStateInfo(0).normalizedTime);
EnemyHit.transform.GetComponent<SpriteRenderer>().color =
enemyAttackAnim.SetTrigger("AttackTrigger");
//ENEMY ATTACKING PARTY (DEFAULT DISPLAY TEXT TO RED FOR NOW)
DamageEnemy(enemyAttack, Colours.Red);
}
IEnumerator HitEffectParty(Colours partyMember)
{
//CHECKING IF AN "ATTACK" OR "NON-ATTACK" ROBOT IS GOING
if((partyMember != Colours.Grey &&
partyMember != Colours.White &&
partyMember != Colours.Black)
&& shield != true && enemyShield != true)
{
Hit.transform.GetComponent<SpriteRenderer>().color =
SetColour((int)partyMember);
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
Symbols[(int)partyMember];
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
SetColour((int)partyMember);
Hit.SetActive(true);
Animator hit = Hit.transform.GetComponent<Animator>();
hit.SetTrigger("HitTrigger");
yield return new WaitForSeconds(
hit.GetCurrentAnimatorStateInfo(0).length
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
Hit.SetActive(false);
hit.SetTrigger("HitTrigger");
}
// GREY ROBOT (SHIELD) IS GOING
if (partyMember == Colours.Grey){
shield = true;
Shield.transform.GetComponent<SpriteRenderer>().color =
SetColour((int)partyMember);
Shield.SetActive(true);
}
// NON-ATTACK ROBOT IS GOING
if (partyMember == Colours.White ||
partyMember == Colours.Grey ||
partyMember == Colours.Black){
EnemyHit.transform.GetComponent<SpriteRenderer>().color =
SetColour((int)partyMember);
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
Symbols[(int)partyMember];
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
SetColour((int)partyMember);
EnemyHit.SetActive(true);
Animator hit = EnemyHit.transform.GetComponent<Animator>();
hit.SetTrigger("HitTrigger");
yield return new WaitForSeconds(
hit.GetCurrentAnimatorStateInfo(0).length
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
EnemyHit.SetActive(false);
hit.SetTrigger("HitTrigger");
}
}
IEnumerator HitEffectEnemy()
{
EnemyHit.transform.GetComponent<SpriteRenderer>().color =
SetColour(EnemyPartsColours[3]);
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
@@ -399,9 +414,7 @@ public class GMScript : MonoBehaviour
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
SetColour(EnemyPartsColours[3]);
enemyAttackAnim.SetTrigger("AttackTrigger");
if((Colours)EnemyPartsColours[0] == Colours.White ||
if((Colours)EnemyPartsColours[0] == Colours.White ||
(Colours)EnemyPartsColours[0] == Colours.Grey ||
(Colours)EnemyPartsColours[0] == Colours.Black)
{
@@ -476,9 +489,6 @@ public class GMScript : MonoBehaviour
}
//ENEMY ATTACKING PARTY (DEFAULT DISPLAY TEXT TO RED FOR NOW)
DamageEnemy(enemyAttack, Colours.Red);
}
void DamageParty(int partyAttack, Colours partyMember)
@@ -614,6 +624,7 @@ public class GMScript : MonoBehaviour
modifiedAttack = partyAttack * modifier;
}
StartCoroutine(HitEffectParty(partyMember));
StartCoroutine(DisplayDamageText((int)modifiedAttack, EnemyDamageText, partyMember));
enemyHealth -= (int)modifiedAttack;
@@ -669,6 +680,7 @@ public class GMScript : MonoBehaviour
buff = false;
StartCoroutine(HitEffectEnemy());
StartCoroutine(DisplayDamageText(modifiedAttack, PartyDamageText, enemyColour));
partyHealth -= modifiedAttack;