void OnTriggerExit2D(Collider2D other) { invader invader = other.gameObject.GetComponent <invader>(); if (invader) { _objectsInRange.Remove(invader); } }
public void OnTriggerEnter2D(Collider2D other) { invader invader = other.GetComponent <invader>(); //if (other.tag == "Invader" && invader!= null) if (invader != null) { invader.nextWaypoint = nextwaypoint; } }
public void OnTriggerEnter2D(Collider2D other) { if (other.tag == "invader" && _target.gameObject == other.gameObject) { invader invader = other.gameObject.GetComponent <invader>(); invader.health.takeDamage(_attack); Destroy(this.gameObject); } }
//public List<IModification> Modifikationlist; //private Dictionary<int, IModification> Modifikationdicta; public modifications(invader ownerInvader) { _ownerInvader = ownerInvader; /* * _listOfNotUsedModificatins = new List<int>(); * _listOfNotUsedModificatins.Add((int)e_modificatins.Geist); * _listOfNotUsedModificatins.Add((int)e_modificatins.Flug); * _listOfNotUsedModificatins.Add((int)e_modificatins.Schneller); * _listOfNotUsedModificatins.Add((int)e_modificatins.Leben); * _listOfNotUsedModificatins.Add((int)e_modificatins.Reinkarnation); * _listOfNotUsedModificatins.Add((int)e_modificatins.Unverwundbar); * _listOfNotUsedModificatins.Add((int)e_modificatins.Verlangsamung);*/ }
void OnTriggerEnter2D(Collider2D other) { invader invader = other.gameObject.GetComponent <invader>(); if (invader) { _objectsInRange.Add(invader); if (!target) { target = invader; } } }
public void OnTriggerStay2D(Collider2D other) { if (other.tag == tagOfObjectToDestroy && other != null) { if (transform.position == other.transform.position) { /*dirty-code*/ invader invader = other.gameObject.GetComponent <invader>(); invader.killedBy = this.tag; /**/ other.gameObject.SetActive(false); } } }
public static void createInvader() { elementalGem[] gems = Resources.FindObjectsOfTypeAll <elementalGem>(); if (gems == null) { return; } foreach (elementalGem gem in gems) { Sprite placeholder = Resources.Load <Sprite>("Sprites/placeholder"); Object prefab = PrefabUtility.CreateEmptyPrefab("Assets/Resources/PrefabObjects/Elemental Invader/" + gem.gemName + "Invader.prefab"); GameObject newGameObject = new GameObject(gem.gemName + "Invader"); newGameObject.tag = "invader"; SpriteRenderer spriteRenderer = newGameObject.AddComponent <SpriteRenderer>(); spriteRenderer.sprite = placeholder; spriteRenderer.sortingLayerName = "invader"; Rigidbody2D rigidbody = newGameObject.AddComponent <Rigidbody2D>(); rigidbody.gravityScale = 0.0f; rigidbody.isKinematic = true; newGameObject.AddComponent <BoxCollider2D>(); invader invader = newGameObject.AddComponent <invader>(); invader.element = gem.gemName; invader.icon = placeholder; invader.elementIcon = placeholder; GameObject selectable = new GameObject("selectable"); selectable.tag = "selectable"; //selectable.AddComponent<selectable>(); BoxCollider2D selectableCollider = selectable.AddComponent <BoxCollider2D>(); selectableCollider.isTrigger = true; selectable.transform.SetParent(newGameObject.transform); PrefabUtility.ReplacePrefab(newGameObject, prefab, ReplacePrefabOptions.ConnectToPrefab); DestroyImmediate(newGameObject); } }
void OnTriggerExit2D(Collider2D other) { invader invader = other.gameObject.GetComponent <invader>(); if (invader) { for (int index = 0; index < _objectsInRange.Count; ++index) { if (_objectsInRange[index] == invader) { _objectsInRange.RemoveAt(index); if (target == invader && _objectsInRange.Count >= 1) { target = _objectsInRange[0]; } else { target = null; } } } } }
// Update is called once per frame void Update() { if (_selectedobject == null || !_selectedobject.activeInHierarchy) { if (_selectedobject != null && !_selectedobject.activeInHierarchy) { deselect(); } invaderpanel.SetActive(false); towerpanel.SetActive(false); _selectedtyp = -1; } if (Input.GetMouseButton(0) && buildsystem.instance._buildTower == false) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction); if (hit.collider != null) { GameObject hitGameObject = hit.collider.gameObject; if (hitGameObject.tag == "selectable") { select(hitGameObject); /* * if (hitGameObject.GetComponentInParent<invader>()) * { * deselect(); * _selectedobject = hitGameObject.transform.parent.gameObject; * invaderpanel.SetActive(true); * _selectedtyp = 0; * } * else if (hitGameObject.GetComponentInParent<tower>()) * { * buildsystem.instance._buildTower = false; * deselect(); * _selectedobject = hitGameObject.transform.parent.gameObject; * towerpanel.SetActive(true); * _selectedtyp = 1; * } * */ } //select(); /* * if (_selectedobject) * { * Color newcolor = _selectedobject.GetComponent<SpriteRenderer>().color; * newcolor.a = 0.25f; * _selectedobject.GetComponent<SpriteRenderer>().color = newcolor; * } * */ } } else if (Input.GetMouseButton(1) && buildsystem.instance._buildTower == false) { deselect(); /*if (_selectedobject) * { * Color newcolor = _selectedobject.GetComponent<SpriteRenderer>().color; * newcolor.a = 1.0f; * _selectedobject.GetComponent<SpriteRenderer>().color = newcolor; * } * _selectedobject = null; * _selectedtyp = -1;*/ } switch (_selectedtyp) { case 0: invader invader = _selectedobject.GetComponent <invader>(); Transform iconPanel = invaderpanel.transform.Find("iconPanel"); Image icon = iconPanel.transform.Find("icon").gameObject.GetComponent <Image>(); Slider healthSlider = iconPanel.transform.Find("healthslider").gameObject.GetComponent <Slider>(); icon.sprite = invader.icon; healthSlider.GetComponent <healthbar>().healthObject = invader.health; healthSlider.GetComponent <healthbar>().reset(); break; case 1: tower tower = _selectedobject.GetComponent <tower>(); Text elementtext = towerpanel.transform.Find("elementtext").gameObject.GetComponent <Text>(); Text damagetext = towerpanel.transform.Find("damagetext").gameObject.GetComponent <Text>(); Text rangetext = towerpanel.transform.Find("rangetext").gameObject.GetComponent <Text>(); Text attackspeedtext = towerpanel.transform.Find("attackspeedtext").gameObject.GetComponent <Text>(); elementtext.text = tower.tag; damagetext.text = "Schaden: 0"; rangetext.text = "Reichweite: 0"; attackspeedtext.text = "Angriffsgeschwindigkeit: 0"; break; default: break; } }
private void spawn() { if (_spawnCount > 0) { if (_startWaypoint != null) { int element = Random.Range(0, 1000); if (element < elementaryAffection.instance.airChance) { element = 0; } if (element >= elementaryAffection.instance.airChance && element < (elementaryAffection.instance.airChance + elementaryAffection.instance.earthChance)) { element = 1; } if (element >= (elementaryAffection.instance.airChance + elementaryAffection.instance.earthChance) && element < (elementaryAffection.instance.airChance + elementaryAffection.instance.earthChance + elementaryAffection.instance.fireChance)) { element = 2; } if (element >= (elementaryAffection.instance.airChance + elementaryAffection.instance.earthChance + elementaryAffection.instance.fireChance)) { element = 3; } if (_invadertypes == null || _invadertypes.Length <= element) { Debug.LogError("(wavesystem:spawn) Keine Invasoren zum erstellen verfügbar."); return; } GameObject invader = null; GameObject healthbar = null; switch (element) { case 0: invader = poolmanager.instance.getPooledObject("airInvader"); break; case 1: invader = poolmanager.instance.getPooledObject("earthInvader"); break; case 2: invader = poolmanager.instance.getPooledObject("fireInvader"); break; case 3: invader = poolmanager.instance.getPooledObject("waterInvader"); break; default: break; } healthbar = poolmanager.instance.getPooledObject("healthbar"); if (invader) { invader newInvader = invader.GetComponent <invader>(); followtarget follow = healthbar.GetComponent <followtarget>(); healthbar bar = healthbar.GetComponent <healthbar>(); if (newInvader) { newInvader.transform.position = _startWaypoint.transform.position; newInvader.movement.currentWaypoint = null; newInvader.movement.nextWaypoint = null; /* * * SKALIERUNG * */ newInvader.health.maximumHealth = 100.0f; //newInvader.health.reset(); newInvader.movement.movementSpeed = 1; newInvader.lifedamage.damage = 1; newInvader.elementalenergy.energy = 10; //modmanage.anwenden(IDS, newInvader); /* * * ENDE * */ newInvader.gameObject.SetActive(true); if (bar) { bar.healthObject = newInvader.health; bar.reset(); } if (follow) { follow.targetToFollow = newInvader.transform; follow.Update(); follow.gameObject.SetActive(true); } _spawnCount--; } } } } }
private void spawn() { if (_spawnCount > 0) { if (_startWaypoint != null) { int element = Random.Range(0, 1000); if (element < elementaryAffection.airChance) { element = 0; } if (element >= elementaryAffection.airChance && element < (elementaryAffection.airChance + elementaryAffection.earthChance)) { element = 1; } if (element >= (elementaryAffection.airChance + elementaryAffection.earthChance) && element < (elementaryAffection.airChance + elementaryAffection.earthChance + elementaryAffection.fireChance)) { element = 2; } if (element >= (elementaryAffection.airChance + elementaryAffection.earthChance + elementaryAffection.fireChance)) { element = 3; } if (_invadertypes == null || _invadertypes.Length <= element) { Debug.LogError("(wavesystem:spawn) Keine Invasoren zum erstellen verfügbar."); return; } GameObject obj = null; switch (element) { case 0: obj = poolmanager.instance.getPooledObject("airInvader"); break; case 1: obj = poolmanager.instance.getPooledObject("earthInvader"); break; case 2: obj = poolmanager.instance.getPooledObject("fireInvader"); break; case 3: obj = poolmanager.instance.getPooledObject("waterInvader"); break; default: break; } if (obj == null) { return; } invader newInvader = obj.GetComponent <invader>(); if (newInvader == null) { return; } newInvader.transform.position = _startWaypoint.transform.position; newInvader.currentWaypoint = null; newInvader.nextWaypoint = null; /* * * SKALIERUNG ANFANG * */ //newInvader.live.... /* * * SKALIERUNG ENDE * */ newInvader.gameObject.SetActive(true); _spawnCount--; } } }