private MechColour GetMergedMechColour(MechController m1, MechController m2) { MechColour mechColour = MechColour.Red; if (m1.mechColour == MechColour.Purple || m1.mechColour == MechColour.Orange || m1.mechColour == MechColour.Green || m2.mechColour == MechColour.Purple || m2.mechColour == MechColour.Orange || m2.mechColour == MechColour.Green) { mechColour = MechColour.Rainbow; } else { switch (m1.mechColour) { case MechController.MechColour.Red: if (m2.mechColour == MechController.MechColour.Blue) { mechColour = MechColour.Purple; } else if (m2.mechColour == MechController.MechColour.Yellow) { mechColour = MechColour.Orange; } break; case MechController.MechColour.Blue: if (m2.mechColour == MechController.MechColour.Red) { mechColour = MechColour.Purple; } else if (m2.mechColour == MechController.MechColour.Yellow) { mechColour = MechColour.Green; } break; case MechController.MechColour.Yellow: if (m2.mechColour == MechController.MechColour.Blue) { mechColour = MechColour.Green; } else if (m2.mechColour == MechController.MechColour.Red) { mechColour = MechColour.Orange; } break; default: Debug.LogError("Failed to get correct mech colour combination!!! making a second red"); mechColour = MechColour.Red; break; } } return(mechColour); }
private void MergeMechs(MechController m1, MechController m2) { MechColour newMechColour = GetMergedMechColour(m1, m2); Vector2 spawnPosition = (m1.transform.position + m2.transform.position) / 2; if (_activeMechColours.Contains(newMechColour) == false) { if (newMechColour == MechColour.Purple) { ShowMech(PurpleMech, spawnPosition); AssignSecondaryMechControls(PurpleMech, m1, m2); HideMech(RedMech); HideMech(BlueMech); SendMergeUpdate(m1.transform, m2.transform, PurpleMech.transform); } else if (newMechColour == MechColour.Orange) { ShowMech(OrangeMech, spawnPosition); AssignSecondaryMechControls(OrangeMech, m1, m2); HideMech(RedMech); HideMech(YellowMech); SendMergeUpdate(m1.transform, m2.transform, OrangeMech.transform); } else if (newMechColour == MechColour.Green) { ShowMech(GreenMech, spawnPosition); AssignSecondaryMechControls(GreenMech, m1, m2); HideMech(BlueMech); HideMech(YellowMech); SendMergeUpdate(m1.transform, m2.transform, GreenMech.transform); } else if (newMechColour == MechColour.Rainbow) { ShowMech(RainbowMech, spawnPosition); AssignTertiaryMechControls(m1, m2); HideMech(BlueMech); HideMech(YellowMech); HideMech(RedMech); HideMech(GreenMech); HideMech(OrangeMech); HideMech(PurpleMech); SendMergeUpdate(m1.transform, m2.transform, RainbowMech.transform); } m1.SetMergingState(false); m2.SetMergingState(false); _activeMechColours.Add(newMechColour); _activeMechColours.Remove(m1.mechColour); _activeMechColours.Remove(m2.mechColour); } }
public Transform GetRandomActiveMech() { int randomIndex = Random.Range(0, _activeMechColours.Count); MechColour randomMechColour = _activeMechColours[randomIndex]; Transform mechTransform = null; switch (randomMechColour) { case MechColour.Blue: mechTransform = BlueMech.transform; break; case MechColour.Red: mechTransform = RedMech.transform; break; case MechColour.Yellow: mechTransform = YellowMech.transform; break; case MechColour.Purple: mechTransform = PurpleMech.transform; break; case MechColour.Orange: mechTransform = OrangeMech.transform; break; case MechColour.Green: mechTransform = GreenMech.transform; break; case MechColour.Rainbow: mechTransform = RainbowMech.transform; break; default: Debug.LogError("Tried to get random mech but did not recognise the colour: " + randomMechColour); break; } return(mechTransform); }
public void SetColour(MechColour mechColour) { switch (mechColour) { case MechController.MechColour.Red: { Color col = Color.white; ColorUtility.TryParseHtmlString("#ed1b24ff", out col); portrait.color = col; break; } case MechController.MechColour.Blue: { Color col = Color.white; ColorUtility.TryParseHtmlString("#2e3192ff", out col); portrait.color = col; break; } case MechController.MechColour.Yellow: { Color col = Color.white; ColorUtility.TryParseHtmlString("#f2e405ff", out col); portrait.color = col; break; } case MechController.MechColour.Purple: { Color col = Color.white; ColorUtility.TryParseHtmlString("#92278fff", out col); portrait.color = col; break; } case MechController.MechColour.Orange: { Color col = Color.white; ColorUtility.TryParseHtmlString("#f37521ff", out col); portrait.color = col; break; } case MechController.MechColour.Green: { Color col = Color.white; ColorUtility.TryParseHtmlString("#1ab359ff", out col); portrait.color = col; break; } case MechController.MechColour.Rainbow: { Color col = Color.white; //ColorUtility.TryParseHtmlString("#ed1b24ff", out col); ColorUtility.TryParseHtmlString("#111111ff", out col); portrait.color = col; break; } } }