Robot model number now changes colour strengths and weaknesses across all enemy body parts

This commit is contained in:
Gregory Campbell
2020-05-09 12:05:36 -04:00
parent 33f4f82d0a
commit cfe313d637
+82 -304
View File
@@ -185,24 +185,35 @@ public class GMScript : MonoBehaviour
EnemyKillSequence[i] != PartyColours[1] && EnemyKillSequence[i] != PartyColours[1] &&
EnemyKillSequence[i] != PartyColours[2] && EnemyKillSequence[i] != PartyColours[2] &&
EnemyKillSequence[i] != PartyColours[3] || EnemyKillSequence[i] != PartyColours[3] ||
(EnemyKillSequence[i] == ((EnemyKillSequence[i-1]+6)%12))); (EnemyKillSequence[i] == EnemyKillSequence[i-1]));
} }
//print((Colours)EnemyKillSequence[i]); //print((Colours)EnemyKillSequence[i]);
EnemyKillSequence[i] = (EnemyKillSequence[i]+6)%12;
} }
}while(!SequenceCheck()); }while(!SequenceCheck());
// FOR DEBUGGING PURPOSES ONLY modelNum = Random.Range(0, 4);
// CHANGES COLOUR OF KILL SEQUENCE DEPENDENT ON MODEL NUMBER
for(int i = 0; i < EnemyKillSequence.Length; i++) for(int i = 0; i < EnemyKillSequence.Length; i++)
{ {
switch(modelNum){
case(0):
EnemyKillSequence[i] = (EnemyKillSequence[i]+6)%12;
break;
case(1):
EnemyKillSequence[i] = (EnemyKillSequence[i]+3)%12;
break;
case(2):
EnemyKillSequence[i] = (EnemyKillSequence[i]+9)%12;
break;
}
print((Colours)EnemyKillSequence[i]); print((Colours)EnemyKillSequence[i]);
} }
modelNum = Random.Range(0, 5);
} else { } else {
Divider.SetActive(true); Divider.SetActive(true);
@@ -823,7 +834,8 @@ public class GMScript : MonoBehaviour
// ATTACK MODIFIER BASED ON THE RELATION OF THE COLOUR OF THE PARTY MEMBER // ATTACK MODIFIER BASED ON THE RELATION OF THE COLOUR OF THE PARTY MEMBER
// AND THE COLOUR OF THE ENEMY ROBOT BASE BODY COLOUR // AND THE COLOUR OF THE ENEMY ROBOT BASE BODY COLOUR
switch(colourModifier)
switch(colourModifier)
{ {
case(2): case(2):
modifier = 2; modifier = 2;
@@ -1338,309 +1350,75 @@ public class GMScript : MonoBehaviour
int ColourCompare(Colours AttackColour, Colours DefendColour) int ColourCompare(Colours AttackColour, Colours DefendColour)
{ {
switch(AttackColour)
if(AttackColour != Colours.White &&
AttackColour != Colours.Grey &&
AttackColour != Colours.Black)
{
if(modelNum == 0 || modelNum == 3)
{ {
// 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) if(DefendColour == AttackColour)
{ {
return -2; if(modelNum == 0) return -2;
} else return 2;
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR }
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) || // DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
DefendColour == (Colours)(((int)AttackColour+1)%12)) else if (DefendColour == (Colours)(((int)AttackColour-1)%12) ||
{ DefendColour == (Colours)(((int)AttackColour+1)%12))
return -1; {
} if(modelNum == 0) return -1;
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE else return 1;
else if (DefendColour == (Colours)(((int)AttackColour+6)%12)) }
{ // DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
return 2; else if (DefendColour == (Colours)(((int)AttackColour+6)%12))
} {
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR if(modelNum == 0) return 2;
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) || else return -2;
DefendColour == (Colours)(((int)AttackColour+7)%12)) }
{ // DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
return 1; else if (DefendColour == (Colours)(((int)AttackColour+5)%12) ||
} DefendColour == (Colours)(((int)AttackColour+7)%12))
break; {
case Colours.Brown: if(modelNum == 0) return 1;
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME else return -1;
if(DefendColour == AttackColour) }
{
return -2; } else {
}
// DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR if(DefendColour == (Colours)(((int)AttackColour+3)%12))
else if (DefendColour == (Colours)(((int)AttackColour-1)%12) || {
DefendColour == (Colours)(((int)AttackColour+1)%12)) if(modelNum == 2) return -2;
{ else return 2;
return -1; }
} // DEFEND COLOUR HAS GOOD DEFENSE IF ATTACK COLOUR IS AN ADJACENT COLOUR
// DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE else if (DefendColour == (Colours)(((int)AttackColour+2)%12) ||
else if (DefendColour == (Colours)(((int)AttackColour+6)%12)) DefendColour == (Colours)(((int)AttackColour+4)%12))
{ {
return 2; if(modelNum == 2) return -1;
} else return 1;
// DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR }
else if (DefendColour == (Colours)(((int)AttackColour+5)%12) || // DEFEND COLOUR HAS NO DEFENSE IF ATTACK COLOUR IS OPPOSITE
DefendColour == (Colours)(((int)AttackColour+7)%12)) else if (DefendColour == (Colours)(((int)AttackColour+9)%12))
{ {
return 1; if(modelNum == 2) return 2;
} else return -2;
break; }
case Colours.Orange: // DEFEND COLOUR HAS WEAK DEFENSE IF ATTACK COLOUR IS ADJACENT TO OPPOSITE COLOUR
// DEFEND COLOUR HAS STRONG DEFENSE IF ATTACK COLOUR IS SAME else if (DefendColour == (Colours)(((int)AttackColour+8)%12) ||
if(DefendColour == AttackColour) DefendColour == (Colours)(((int)AttackColour+10)%12))
{ {
return -2; if(modelNum == 2) return 1;
} else return -1;
// 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 // IF AN ATTACKING COLOUR DOESN'T MATCH WITH ANY OF THE ABOVE PARAMETERS
// (OR ATTACKING ROBOT IS AN ABILITY COLOUR)
// IT IS NEITHER WEAK NOR STRONG AGAINST THE DEFENDING COLOUR // IT IS NEITHER WEAK NOR STRONG AGAINST THE DEFENDING COLOUR
return 0; return 0;
} }