Reworked hit effect animation on both sides so that all animations are cleaner and in unison
This commit is contained in:
+59
-37
@@ -364,14 +364,13 @@ public class GMScript : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator HitEffectParty(Colours partyMember)
|
IEnumerator HitEffectParty(int damage, Text display, Colours partyMember)
|
||||||
{
|
{
|
||||||
|
|
||||||
//CHECKING IF AN "ATTACK" OR "NON-ATTACK" ROBOT IS GOING
|
//CHECKING IF AN "ATTACK" OR "NON-ATTACK" ROBOT IS GOING
|
||||||
if((partyMember != Colours.Grey &&
|
if(partyMember != Colours.Grey &&
|
||||||
partyMember != Colours.White &&
|
partyMember != Colours.White &&
|
||||||
partyMember != Colours.Black)
|
partyMember != Colours.Black)
|
||||||
&& shield != true && enemyShield != true)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
Hit.transform.GetComponent<SpriteRenderer>().color =
|
Hit.transform.GetComponent<SpriteRenderer>().color =
|
||||||
@@ -383,17 +382,28 @@ public class GMScript : MonoBehaviour
|
|||||||
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||||
SetColour((int)partyMember);
|
SetColour((int)partyMember);
|
||||||
|
|
||||||
|
DisplayDamageText((int)damage, display, partyMember);
|
||||||
|
|
||||||
|
if(!shield && !enemyShield)
|
||||||
|
{
|
||||||
Hit.SetActive(true);
|
Hit.SetActive(true);
|
||||||
|
|
||||||
Animator hit = Hit.transform.GetComponent<Animator>();
|
Animator hit = Hit.transform.GetComponent<Animator>();
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
|
||||||
yield return new WaitForSeconds(
|
yield return new WaitForSeconds(
|
||||||
hit.GetCurrentAnimatorStateInfo(0).length
|
hit.GetCurrentAnimatorStateInfo(0).length * 2
|
||||||
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
||||||
|
|
||||||
Hit.SetActive(false);
|
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
Hit.SetActive(false);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
yield return new WaitForSeconds(1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
display.text = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -421,23 +431,28 @@ public class GMScript : MonoBehaviour
|
|||||||
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
EnemyHit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||||
SetColour((int)partyMember);
|
SetColour((int)partyMember);
|
||||||
|
|
||||||
|
if(partyMember == Colours.White) DisplayDamageText((int)damage, display, partyMember);
|
||||||
EnemyHit.SetActive(true);
|
EnemyHit.SetActive(true);
|
||||||
|
|
||||||
Animator hit = EnemyHit.transform.GetComponent<Animator>();
|
Animator hit = EnemyHit.transform.GetComponent<Animator>();
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
|
||||||
yield return new WaitForSeconds(
|
yield return new WaitForSeconds(
|
||||||
hit.GetCurrentAnimatorStateInfo(0).length
|
hit.GetCurrentAnimatorStateInfo(0).length * 2
|
||||||
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
||||||
|
|
||||||
EnemyHit.SetActive(false);
|
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
EnemyHit.SetActive(false);
|
||||||
|
display.text = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ShieldHit.SetActive(false);
|
||||||
|
WeakPointHit.SetActive(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator HitEffectEnemy(int attackColour)
|
IEnumerator HitEffectEnemy(int attack, int attackColour)
|
||||||
{
|
{
|
||||||
|
|
||||||
EnemyHit.transform.GetComponent<SpriteRenderer>().color =
|
EnemyHit.transform.GetComponent<SpriteRenderer>().color =
|
||||||
@@ -462,17 +477,23 @@ public class GMScript : MonoBehaviour
|
|||||||
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
Hit.transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||||
SetColour(attackColour);
|
SetColour(attackColour);
|
||||||
|
|
||||||
|
if((Colours)attackColour == Colours.White)
|
||||||
|
{
|
||||||
|
DisplayDamageText(attack, EnemyDamageText, (Colours)attackColour);
|
||||||
|
}
|
||||||
Hit.SetActive(true);
|
Hit.SetActive(true);
|
||||||
|
|
||||||
Animator hit = Hit.transform.GetComponent<Animator>();
|
Animator hit = Hit.transform.GetComponent<Animator>();
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
|
||||||
yield return new WaitForSeconds(
|
yield return new WaitForSeconds(
|
||||||
hit.GetCurrentAnimatorStateInfo(0).length
|
hit.GetCurrentAnimatorStateInfo(0).length * 2
|
||||||
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
||||||
|
|
||||||
Hit.SetActive(false);
|
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
EnemyDamageText.text = null;
|
||||||
|
Hit.SetActive(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ENEMY SHIELD GOES UP IF
|
// ENEMY SHIELD GOES UP IF
|
||||||
@@ -486,27 +507,39 @@ public class GMScript : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
//HIT EFFECT ONLY WORKS IF THERE IS NO SHIELD UP
|
//HIT EFFECT ONLY WORKS IF THERE IS NO SHIELD UP
|
||||||
if(!shield && !enemyShield
|
if( (Colours)attackColour != Colours.White &&
|
||||||
&& (Colours)attackColour != Colours.White &&
|
|
||||||
(Colours)attackColour != Colours.Grey &&
|
(Colours)attackColour != Colours.Grey &&
|
||||||
(Colours)attackColour != Colours.Black)
|
(Colours)attackColour != Colours.Black)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
DisplayDamageText(attack, PartyDamageText, (Colours)attackColour);
|
||||||
|
|
||||||
|
if(!shield && !enemyShield)
|
||||||
|
{
|
||||||
EnemyHit.SetActive(true);
|
EnemyHit.SetActive(true);
|
||||||
|
|
||||||
Animator hit = EnemyHit.transform.GetComponent<Animator>();
|
Animator hit = EnemyHit.transform.GetComponent<Animator>();
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
|
||||||
yield return new WaitForSeconds(
|
yield return new WaitForSeconds(
|
||||||
hit.GetCurrentAnimatorStateInfo(0).length
|
hit.GetCurrentAnimatorStateInfo(0).length * 2
|
||||||
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
+hit.GetCurrentAnimatorStateInfo(0).normalizedTime);
|
||||||
|
|
||||||
hit.SetTrigger("HitTrigger");
|
hit.SetTrigger("HitTrigger");
|
||||||
|
|
||||||
EnemyHit.SetActive(false);
|
EnemyHit.SetActive(false);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
yield return new WaitForSeconds(1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PartyDamageText.text = null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ShieldHit.SetActive(false);
|
||||||
|
WeakPointHit.SetActive(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator DamageParty(int partyAttack, Colours partyMember)
|
IEnumerator DamageParty(int partyAttack, Colours partyMember)
|
||||||
@@ -649,13 +682,13 @@ public class GMScript : MonoBehaviour
|
|||||||
modifiedAttack = partyAttack * modifier;
|
modifiedAttack = partyAttack * modifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
yield return StartCoroutine(HitEffectParty(partyMember));
|
if(partyMember == Colours.White ||
|
||||||
|
partyMember == Colours.Grey ||
|
||||||
if(partyMember == Colours.White)
|
partyMember == Colours.Black)
|
||||||
{
|
{
|
||||||
yield return StartCoroutine(DisplayDamageText((int)modifiedHeal, PartyDamageText, partyMember));
|
yield return StartCoroutine(HitEffectParty((int)modifiedHeal, PartyDamageText, partyMember));
|
||||||
} else if(partyMember != Colours.Grey && partyMember != Colours.Black){
|
} else{
|
||||||
yield return StartCoroutine(DisplayDamageText((int)modifiedAttack, EnemyDamageText, partyMember));
|
yield return StartCoroutine(HitEffectParty((int)modifiedAttack, EnemyDamageText, partyMember));
|
||||||
enemyShield = false;
|
enemyShield = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,13 +749,9 @@ public class GMScript : MonoBehaviour
|
|||||||
|
|
||||||
buff = false;
|
buff = false;
|
||||||
|
|
||||||
yield return StartCoroutine(HitEffectEnemy(attackColour));
|
yield return StartCoroutine(HitEffectEnemy((int)modifiedAttack, attackColour));
|
||||||
yield return StartCoroutine(DisplayDamageText(modifiedAttack, PartyDamageText, (Colours)attackColour));
|
|
||||||
|
|
||||||
if(shield)
|
|
||||||
{
|
|
||||||
shield = false;
|
shield = false;
|
||||||
}
|
|
||||||
|
|
||||||
partyHealth -= modifiedAttack;
|
partyHealth -= modifiedAttack;
|
||||||
print((Colours)attackColour + " enemy robot arm attacked for " + modifiedAttack);
|
print((Colours)attackColour + " enemy robot arm attacked for " + modifiedAttack);
|
||||||
@@ -730,7 +759,7 @@ public class GMScript : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator DisplayDamageText(int damage, Text display, Colours displayColour)
|
void DisplayDamageText(int damage, Text display, Colours displayColour)
|
||||||
{
|
{
|
||||||
|
|
||||||
display.color = SetColour((int)displayColour);
|
display.color = SetColour((int)displayColour);
|
||||||
@@ -748,13 +777,6 @@ public class GMScript : MonoBehaviour
|
|||||||
WeakPointHit.SetActive(true);
|
WeakPointHit.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
yield return new WaitForSeconds(1);
|
|
||||||
|
|
||||||
ShieldHit.SetActive(false);
|
|
||||||
WeakPointHit.SetActive(false);
|
|
||||||
|
|
||||||
display.text = null;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator AttackAnimEnemy(int arm)
|
IEnumerator AttackAnimEnemy(int arm)
|
||||||
@@ -776,7 +798,7 @@ public class GMScript : MonoBehaviour
|
|||||||
// BEFORE THE ENEMY DOES ITS ATTACK ANIMATION
|
// BEFORE THE ENEMY DOES ITS ATTACK ANIMATION
|
||||||
if((Colours)EnemyPartsColours[0] == Colours.Black)
|
if((Colours)EnemyPartsColours[0] == Colours.Black)
|
||||||
{
|
{
|
||||||
yield return StartCoroutine(HitEffectEnemy(EnemyPartsColours[0]));
|
yield return StartCoroutine(HitEffectEnemy(0, EnemyPartsColours[0]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -787,13 +809,13 @@ public class GMScript : MonoBehaviour
|
|||||||
if((Colours)EnemyPartsColours[0] == Colours.White)
|
if((Colours)EnemyPartsColours[0] == Colours.White)
|
||||||
{
|
{
|
||||||
enemyHealth += 2;
|
enemyHealth += 2;
|
||||||
yield return StartCoroutine(HitEffectEnemy(EnemyPartsColours[0]));
|
yield return StartCoroutine(HitEffectEnemy(2, EnemyPartsColours[0]));
|
||||||
StartCoroutine(DisplayDamageText(2, EnemyDamageText, (Colours)EnemyPartsColours[0]));
|
//StartCoroutine(DisplayDamageText(2, EnemyDamageText, (Colours)EnemyPartsColours[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
if((Colours)EnemyPartsColours[0] == Colours.Grey)
|
if((Colours)EnemyPartsColours[0] == Colours.Grey)
|
||||||
{
|
{
|
||||||
yield return StartCoroutine(HitEffectEnemy(EnemyPartsColours[0]));
|
yield return StartCoroutine(HitEffectEnemy(0, EnemyPartsColours[0]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user