diff --git a/Assets/Scenes/Test Scene.unity b/Assets/Scenes/Test Scene.unity index 152514e..c2fd068 100644 --- a/Assets/Scenes/Test Scene.unity +++ b/Assets/Scenes/Test Scene.unity @@ -3440,6 +3440,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 8ddb46fe3434b3549b6676edc264ae0e, type: 3} m_Name: m_EditorClassIdentifier: + isRandom: 1 + SetPartyColours: 07000000070000000700000007000000 + SetEnemyColours: 0400000004000000040000000400000004000000 + SetKillSequence: 01000000010000000100000002000000 PartyMembers: - {fileID: 2058067573} - {fileID: 617295556} diff --git a/Assets/Scripts/GMScript.cs b/Assets/Scripts/GMScript.cs index f3446f1..ff7d513 100644 --- a/Assets/Scripts/GMScript.cs +++ b/Assets/Scripts/GMScript.cs @@ -7,6 +7,12 @@ using UnityEngine.SceneManagement; public class GMScript : MonoBehaviour { + public bool isRandom; + + public int[] SetPartyColours = new int[partySize]; + public int[] SetEnemyColours = new int[5]; + public int[] SetKillSequence = new int [8]; + public GameObject[] PartyMembers; public Sprite[] OrderSprites; public GameObject Hit; @@ -71,54 +77,87 @@ public class GMScript : MonoBehaviour void Start() { + if(isRandom){ - // GENERATES PARTY MEMBER COLOURS - do{ + // GENERATES PARTY MEMBER COLOURS + do{ - partyRedo = false; - buffAmount = 0; + partyRedo = false; + buffAmount = 0; - PartyColours[0] = Random.Range(0, 15); - PartyColours[1] = Random.Range(0, 15); - PartyColours[2] = Random.Range(0, 15); - PartyColours[3] = Random.Range(0, 15); + PartyColours[0] = Random.Range(0, 15); + PartyColours[1] = Random.Range(0, 15); + PartyColours[2] = Random.Range(0, 15); + PartyColours[3] = Random.Range(0, 15); - // CHECKS THAT NO ROBOTS SHARE A COLOUR AND THERE ARE NO MORE THAN 1 BUFF ABILITY ROBOT - // IF EITHER OCCUR THE PARTY GETS RANDOMIZED AND CHECKED UNTIL THAT IS NO LONGER THE CASE - for(int i = 0; i < partySize; i++) + // CHECKS THAT NO ROBOTS SHARE A COLOUR AND THERE ARE NO MORE THAN 1 BUFF ABILITY ROBOT + // IF EITHER OCCUR THE PARTY GETS RANDOMIZED AND CHECKED UNTIL THAT IS NO LONGER THE CASE + for(int i = 0; i < partySize; i++) + { + for(int j = 0; j < partySize; j++) + { + + if(PartyColours[i] == PartyColours[j] && i != j) partyRedo = true; + + } + if(PartyColours[i] >= 12) buffAmount++; + } + + if(buffAmount > 1) partyRedo = true; + + }while(partyRedo); + + EnemyPartsColours = new int[EnemyParts.Length]; + // KILL SEQUENCE RANGES FROM LENGTH OF 3 TO 8 HITS + EnemyKillSequence = new int[Random.Range((4-buffAmount), 8)]; + + EnemyPartsColours[0] = Random.Range(0, 15); + EnemyPartsColours[1] = Random.Range(0, 15); + EnemyPartsColours[2] = Random.Range(0, 12); + EnemyPartsColours[3] = Random.Range(0, 12); + EnemyPartsColours[4] = Random.Range(0, 12); + + // COLOURS FOR KILL SEQUENCE ARE GENERATED HERE + for(int i = 0; i < EnemyKillSequence.Length; i++) { - for(int j = 0; j < partySize; j++) - { + + do{ + EnemyKillSequence[i] = Random.Range(0, 12); + }while(EnemyKillSequence[i] != PartyColours[0] && + EnemyKillSequence[i] != PartyColours[1] && + EnemyKillSequence[i] != PartyColours[2] && + EnemyKillSequence[i] != PartyColours[3]); + + EnemyKillSequence[i] = (EnemyKillSequence[i]+6)%12; - if(PartyColours[i] == PartyColours[j] && i != j) partyRedo = true; - - } - if(PartyColours[i] >= 12) buffAmount++; } - if(buffAmount > 1) partyRedo = true; + } else { - }while(partyRedo); + PartyColours[0] = SetPartyColours[0]; + PartyColours[1] = SetPartyColours[1]; + PartyColours[2] = SetPartyColours[2]; + PartyColours[3] = SetPartyColours[3]; - EnemyPartsColours = new int[EnemyParts.Length]; - // KILL SEQUENCE RANGES FROM LENGTH OF 3 TO 8 HITS - EnemyKillSequence = new int[Random.Range((4-buffAmount), 8)]; + EnemyPartsColours = new int[SetEnemyColours.Length+2]; + EnemyPartsColours[0] = SetEnemyColours[0]; + EnemyPartsColours[1] = SetEnemyColours[1]; + EnemyPartsColours[2] = SetEnemyColours[2]; + EnemyPartsColours[3] = SetEnemyColours[3]; + EnemyPartsColours[4] = SetEnemyColours[4]; - // COLOURS FOR KILL SEQUENCE ARE GENERATED HERE - for(int i = 0; i < EnemyKillSequence.Length; i++) - { - - do{ - EnemyKillSequence[i] = Random.Range(0, 12); - }while(EnemyKillSequence[i] != PartyColours[0] && - EnemyKillSequence[i] != PartyColours[1] && - EnemyKillSequence[i] != PartyColours[2] && - EnemyKillSequence[i] != PartyColours[3]); - - EnemyKillSequence[i] = (EnemyKillSequence[i]+6)%12; + EnemyKillSequence = new int[SetKillSequence.Length]; + + for(int i = 0; i < SetKillSequence.Length; i++) + { + EnemyKillSequence[i] = SetKillSequence[i]; + } } + EnemyPartsColours[5] = EnemyKillSequence[0]; + EnemyPartsColours[6] = EnemyKillSequence[1]; + EnemyBuilder(); EnemyHealthText.text = enemyHealth.ToString(); @@ -924,8 +963,7 @@ public class GMScript : MonoBehaviour EnemyParts[0].transform.GetChild(0).GetComponent().sprite = EnemyAntenna[Random.Range(0, EnemyAntenna.Length)]; - - EnemyPartsColours[0] = Random.Range(0, 15); + EnemyParts[0].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[0]); @@ -937,8 +975,7 @@ public class GMScript : MonoBehaviour EnemyParts[1].transform.GetChild(0).GetComponent().sprite = EnemyHead[Random.Range(0, EnemyHead.Length)]; - - EnemyPartsColours[1] = Random.Range(0, 15); + EnemyParts[1].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[1]); @@ -950,8 +987,7 @@ public class GMScript : MonoBehaviour EnemyParts[2].transform.GetChild(0).GetComponent().sprite = EnemyBody[Random.Range(0, EnemyBody.Length)]; - - EnemyPartsColours[2] = Random.Range(0, 12); + EnemyParts[2].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[2]); @@ -969,8 +1005,7 @@ public class GMScript : MonoBehaviour EnemyParts[3].transform.GetChild(0).GetComponent().sprite = EnemyArm[Random.Range(0, EnemyArm.Length)]; - - EnemyPartsColours[3] = Random.Range(0, 12); + EnemyParts[3].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[3]); @@ -982,8 +1017,7 @@ public class GMScript : MonoBehaviour EnemyParts[4].transform.GetChild(0).GetComponent().sprite = EnemyArm[Random.Range(0, EnemyArm.Length)]; - - EnemyPartsColours[4] = Random.Range(0, 12); + EnemyParts[4].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[4]); @@ -995,11 +1029,9 @@ public class GMScript : MonoBehaviour EnemyParts[5].transform.GetChild(0).GetComponent().sprite = EnemyChest[Random.Range(0, EnemyChest.Length)]; - - EnemyPartsColours[5] = EnemyKillSequence[0]; + EnemyParts[5].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[5]); - EnemyKillSequence[0] = EnemyPartsColours[5]; EnemyParts[5].transform.GetChild(1).GetComponent().sprite = Symbols[EnemyPartsColours[5]]; @@ -1010,10 +1042,8 @@ public class GMScript : MonoBehaviour EnemyParts[6].transform.GetChild(0).GetComponent().sprite = EnemyWeakness[Random.Range(0, EnemyWeakness.Length)]; - EnemyPartsColours[6] = EnemyKillSequence[1]; EnemyParts[6].transform.GetChild(0).GetComponent().color = SetColour(EnemyPartsColours[6]); - EnemyKillSequence[1] = EnemyPartsColours[6]; EnemyParts[6].transform.GetChild(1).GetComponent().sprite = Symbols[EnemyPartsColours[6]];