private List <AsteroidRules> GetAsteroidRulesList(AsteroidForm currentForm, Vector3 parentDirection) { List <AsteroidRules> generatedList = new List <AsteroidRules>(); int childAmount = 0; switch (currentForm) { case AsteroidForm.None: childAmount = 1; break; case AsteroidForm.Large: childAmount = 2; break; case AsteroidForm.Medium: childAmount = 2; break; case AsteroidForm.Small: childAmount = 0; break; } for (int i = 0; i < childAmount; i++) { generatedList.Add(AsteroidRulesBuilder.GetAsteroidRules(currentForm, parentDirection, levelNumber)); } return(generatedList); }
public static AsteroidRules GetAsteroidRules(AsteroidForm currentForm, Vector3 parentDirection, int levelNumber) { AsteroidRules rules = new AsteroidRules(); switch (currentForm) { case AsteroidForm.None: rules = GetRulesForNone(levelNumber); break; case AsteroidForm.Large: rules = GetRulesForLarge(parentDirection, levelNumber); break; case AsteroidForm.Medium: rules = GetRulesForMedium(parentDirection, levelNumber); break; case AsteroidForm.Small: rules = null; break; } return(rules); }
protected override void OnStart() { base.OnStart(); if (asteroidForm == AsteroidForm.None) { List <AsteroidRules> rulesList = GetAsteroidRulesList(asteroidForm, movementDirection); SetupMovement(rulesList[0].direction, rulesList[0].speed); asteroidForm = rulesList[0].form; transform.position = new Vector3(Random.Range(-gameManager.xBorder, gameManager.xBorder), Random.Range(-gameManager.yBorder, gameManager.yBorder), 0); transform.localScale = new Vector3(rulesList[0].scale, rulesList[0].scale, 1); } //entityRadius = 4f * transform.localScale.x; SetAsteroindsPoints(); }