Added a sequence check so a perfect sequence where no robot is wasted in one turn is possible for every turn of a battle
This commit is contained in:
@@ -164,6 +164,8 @@ public class GMScript : MonoBehaviour
|
|||||||
EnemyPartsColours[3] = Random.Range(0, 12);
|
EnemyPartsColours[3] = Random.Range(0, 12);
|
||||||
EnemyPartsColours[4] = Random.Range(0, 12);
|
EnemyPartsColours[4] = Random.Range(0, 12);
|
||||||
|
|
||||||
|
do{
|
||||||
|
|
||||||
// COLOURS FOR KILL SEQUENCE ARE GENERATED HERE
|
// COLOURS FOR KILL SEQUENCE ARE GENERATED HERE
|
||||||
for(int i = 0; i < EnemyKillSequence.Length; i++)
|
for(int i = 0; i < EnemyKillSequence.Length; i++)
|
||||||
{
|
{
|
||||||
@@ -191,6 +193,14 @@ public class GMScript : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}while(!SequenceCheck());
|
||||||
|
|
||||||
|
// FOR DEBUGGING PURPOSES ONLY
|
||||||
|
for(int i = 0; i < EnemyKillSequence.Length; i++)
|
||||||
|
{
|
||||||
|
print((Colours)EnemyKillSequence[i]);
|
||||||
|
}
|
||||||
|
|
||||||
modelNum = Random.Range(0, 5);
|
modelNum = Random.Range(0, 5);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -1148,6 +1158,82 @@ public class GMScript : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SequenceCheck()
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int i = 0; i < EnemyKillSequence.Length; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(EnemyKillSequence.Length - i >= (4-buffAmount))
|
||||||
|
{
|
||||||
|
|
||||||
|
if((4-buffAmount) == 4)
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int j = i; j < i+4; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int k = j+1; k < i+4; k++)
|
||||||
|
{
|
||||||
|
if(EnemyKillSequence[j] == EnemyKillSequence[k])
|
||||||
|
{
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 3;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
for(int j = i; j < i+3; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int k = j+1; k < i+3; k++)
|
||||||
|
{
|
||||||
|
if(EnemyKillSequence[j] == EnemyKillSequence[k])
|
||||||
|
{
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
int remainder = EnemyKillSequence.Length - i;
|
||||||
|
|
||||||
|
for(int j = i; j < i+remainder; j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int k = j+1; k < i+remainder; k++)
|
||||||
|
{
|
||||||
|
if(EnemyKillSequence[j] == EnemyKillSequence[k])
|
||||||
|
{
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 4;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void EnemyBuilder()
|
void EnemyBuilder()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user