Applied colour strengths and weaknesses across all attack and non attack colours for both friendly and enemy robots
This commit is contained in:
+369
-19
@@ -32,19 +32,20 @@ public class GMScript : MonoBehaviour
|
||||
private bool victory = false;
|
||||
private int partyHealth = 16;
|
||||
private int enemyHealth = 16;
|
||||
private int partyAttack = 1;
|
||||
private int partyAttack = 2;
|
||||
private int enemyAttack = 4;
|
||||
private static int partySize = 4;
|
||||
private string[] PartyMemberOrder = new string[partySize];
|
||||
private int[] OrderNumbers = new int[partySize];
|
||||
private int[] PartyColours = new int[partySize];
|
||||
private int[] EnemtyPartsColours;
|
||||
|
||||
enum Colours {
|
||||
Red, Yellow, Blue, Grey,
|
||||
Orange, Green, Purple,
|
||||
Black, White,
|
||||
Pink, Brown, Lime,
|
||||
Cyan, Indigo, Amber
|
||||
Red, Brown, Orange,
|
||||
Amber, Yellow, Lime,
|
||||
Green, Cyan, Blue,
|
||||
Indigo, Purple, Pink,
|
||||
White, Grey, Black
|
||||
}
|
||||
|
||||
Colours robotColour;
|
||||
@@ -53,6 +54,8 @@ public class GMScript : MonoBehaviour
|
||||
void Start()
|
||||
{
|
||||
|
||||
EnemtyPartsColours = new int[EnemyParts.Length];
|
||||
|
||||
EnemyBuilder();
|
||||
|
||||
EnemyHealthText.text = enemyHealth.ToString();
|
||||
@@ -400,8 +403,27 @@ public class GMScript : MonoBehaviour
|
||||
void DamageParty(int partyAttack, Colours partyMember)
|
||||
{
|
||||
|
||||
int modifier = 1;
|
||||
int modifiedAttack = 1;
|
||||
float modifier = 1.0f;
|
||||
float modifiedAttack = 2.0f;
|
||||
int colourModifier = ColourCompare(partyMember, (Colours)EnemtyPartsColours[2]);
|
||||
|
||||
switch(colourModifier)
|
||||
{
|
||||
case(2):
|
||||
modifier = 2;
|
||||
break;
|
||||
case(1):
|
||||
modifier = 1.5f;
|
||||
break;
|
||||
case(-1):
|
||||
modifier = 0.5f;
|
||||
break;
|
||||
case(-2):
|
||||
modifier = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(partyMember == Colours.Grey || partyMember == Colours.White)
|
||||
{
|
||||
@@ -429,9 +451,9 @@ public class GMScript : MonoBehaviour
|
||||
|
||||
modifiedAttack = partyAttack * modifier;
|
||||
|
||||
StartCoroutine(DisplayDamageText(modifiedAttack, EnemyDamageText, partyMember));
|
||||
StartCoroutine(DisplayDamageText((int)modifiedAttack, EnemyDamageText, partyMember));
|
||||
|
||||
enemyHealth -= modifiedAttack;
|
||||
enemyHealth -= (int)modifiedAttack;
|
||||
print(partyMember + " robot attacked for " + modifiedAttack);
|
||||
print("Enemy robot health is now: " + enemyHealth + " HP");
|
||||
|
||||
@@ -440,9 +462,19 @@ public class GMScript : MonoBehaviour
|
||||
void DamageEnemy(int enemyAttack, Colours enemyColour)
|
||||
{
|
||||
|
||||
int modifier = 1;
|
||||
int modifier = 0;
|
||||
int modifiedAttack = 4;
|
||||
|
||||
for(int i = 0; i < 2; i++){
|
||||
for(int j = 0; j < partySize; j++){
|
||||
|
||||
modifier +=
|
||||
ColourCompare((Colours)EnemtyPartsColours[3+i], (Colours)PartyColours[j]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//HIT ONLY DAMAGES IF THERE IS NO SHEILD UP
|
||||
if(sheild == true)
|
||||
{
|
||||
@@ -454,7 +486,7 @@ public class GMScript : MonoBehaviour
|
||||
|
||||
}
|
||||
|
||||
modifiedAttack = enemyAttack * modifier;
|
||||
modifiedAttack = enemyAttack + modifier;
|
||||
|
||||
StartCoroutine(DisplayDamageText(modifiedAttack, PartyDamageText, enemyColour));
|
||||
|
||||
@@ -482,47 +514,365 @@ public class GMScript : MonoBehaviour
|
||||
EnemyParts[0].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyAntenna[Random.Range(0, EnemyAntenna.Length)];
|
||||
|
||||
EnemtyPartsColours[0] = Random.Range(0, 15);
|
||||
EnemyParts[0].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[0]);
|
||||
|
||||
EnemyParts[1].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyHead[Random.Range(0, EnemyHead.Length)];
|
||||
|
||||
EnemtyPartsColours[1] = Random.Range(0, 15);
|
||||
EnemyParts[1].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[1]);
|
||||
|
||||
EnemyParts[2].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyBody[Random.Range(0, EnemyBody.Length)];
|
||||
|
||||
EnemtyPartsColours[2] = Random.Range(0, 15);
|
||||
EnemyParts[2].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[2]);
|
||||
|
||||
EnemyParts[3].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyArm[Random.Range(0, EnemyArm.Length)];
|
||||
|
||||
EnemtyPartsColours[3] = Random.Range(0, 15);
|
||||
EnemyParts[3].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[3]);
|
||||
|
||||
EnemyParts[4].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyArm[Random.Range(0, EnemyArm.Length)];
|
||||
|
||||
EnemtyPartsColours[4] = Random.Range(0, 15);
|
||||
EnemyParts[4].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[4]);
|
||||
|
||||
EnemyParts[5].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyChest[Random.Range(0, EnemyChest.Length)];
|
||||
|
||||
EnemtyPartsColours[5] = Random.Range(0, 15);
|
||||
EnemyParts[5].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[5]);
|
||||
|
||||
EnemyParts[6].transform.GetChild(0).GetComponent<SpriteRenderer>().sprite =
|
||||
EnemyWeakness[Random.Range(0, EnemyWeakness.Length)];
|
||||
|
||||
EnemtyPartsColours[6] = Random.Range(0, 15);
|
||||
EnemyParts[6].transform.GetChild(0).GetComponent<SpriteRenderer>().color =
|
||||
SetColour(Random.Range(0, 12));
|
||||
SetColour(EnemtyPartsColours[6]);
|
||||
|
||||
}
|
||||
|
||||
int ColourCompare(Colours AttackColour, Colours DefendColour)
|
||||
{
|
||||
|
||||
switch(AttackColour)
|
||||
{
|
||||
// WHITE, GREY AND BLACK ARE NEITHER WEAK NOR STRONG AGAINST
|
||||
// DEFENDING COLOUR SINCE THEY ARE "NON-ATTACK" COLOURS
|
||||
case Colours.White:
|
||||
return 0;
|
||||
case Colours.Grey:
|
||||
return 0;
|
||||
case Colours.Black:
|
||||
return 0;
|
||||
case Colours.Red:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Brown:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Orange:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Amber:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Yellow:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Lime:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Green:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Cyan:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Blue:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Indigo:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Purple:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case Colours.Pink:
|
||||
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME
|
||||
if(DefendColour == AttackColour)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+1)%12))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
|
||||
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
|
||||
DefendColour == (Colours)(((int)AttackColour+7)%12))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
// IF AN ATTACKING COLOUR DOESN'T MATCH WITH ANY OF THE ABOVE PARAMETERS
|
||||
// IT IS NEITHER WEAK NOR STRONG AGAINST THE DEFENDING COLOUR
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Color SetColour(int robotColour)
|
||||
{
|
||||
Color colourValue = new Color(1, 1, 1, 1);
|
||||
|
||||
Reference in New Issue
Block a user