/// <summary> /// Erstellt neue Einheit aus der Gleichung heraus /// </summary> public void CreateUnit() { string term = ""; string abbr; foreach (GameObject unit in divident) { abbr = ""; FormulaList.nameToAbbr.TryGetValue(unit.GetComponent <SpriteRenderer>().sprite.name, out abbr); term += abbr; } term += "/("; foreach (GameObject unit in divisor) { abbr = ""; FormulaList.nameToAbbr.TryGetValue(unit.GetComponent <SpriteRenderer>().sprite.name, out abbr); term += abbr; } term += ")"; Debug.Log(term); string sDivident = ""; string sDivisor = ""; string unitName = ""; DoConvertion(term, out sDivident, out sDivisor); if (sDivisor.Length > 0 || !FormulaList.abbrToName.TryGetValue(sDivident, out unitName)) { StartCoroutine(WrongAnimation()); } else { //Spawne neue Einheit: wrong.SetActive(false); block = true; //langsam: DefaultStats.SetDefaultCharValueByName(unitName); foreach (GameObject unit in divident) { DefaultStats.SetDefaultCharValueByName(unit.name); } foreach (GameObject unit in divisor) { DefaultStats.SetDefaultCharValueByName(unit.name); } //Debug.Log(PlayerScript.allies[0].GetComponent<GroupScript>().properties.size);//Es muss dafür noch mindestens eine Einheit außerhalb der Gleichung sein StartCoroutine(FadeTermUnits()); SpawnUnit(unitName, wrong.transform.localPosition); } }
private void OnTriggerEnter2D(Collider2D other) { //Falls Verbündet, dann gebe das Signal zu folgen GroupScript groupScript = other.GetComponent <GroupScript>(); //wenn der Char der Gruppe schon angehört, dann ignorieren: if (groupScript.inGroup) { return; } //weiße den Char, dem gefolgt werden soll, zu: groupScript.groupNumber = PlayerScript.allies.Count; if (PlayerScript.allies.Count == 0) { groupScript.charToFollow = transform.parent.gameObject; } else { groupScript.charToFollow = PlayerScript.allies[PlayerScript.allies.Count - 1]; } other.name = other.GetComponent <SpriteRenderer>().sprite.name; PlayerScript.allies.Add(other.gameObject); PlayerScript.alliesNames.Add(other.name); PlayerScript.collectedAlliesCurrent.Add(other.name); PlayerScript.spawnPositions.Add(other.transform.position); other.GetComponent <GroupScript>().properties = PlayerScript.allies[0].GetComponent <GroupScript>().properties;//shallow, mehr aber auch nicht vonöten //Überschreibe wert mit defaultwert: DefaultStats.SetDefaultCharValueByName(other.name); //folge dem Char: groupScript.inGroup = true; groupScript.bottom = true; return; }