Exemplo n.º 1
0
    void OnTriggerExit2D(Collider2D other)
    {
        invader invader = other.gameObject.GetComponent <invader>();

        if (invader)
        {
            _objectsInRange.Remove(invader);
        }
    }
Exemplo n.º 2
0
    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);*/
    }
Exemplo n.º 5
0
    void OnTriggerEnter2D(Collider2D other)
    {
        invader invader = other.gameObject.GetComponent <invader>();

        if (invader)
        {
            _objectsInRange.Add(invader);

            if (!target)
            {
                target = invader;
            }
        }
    }
Exemplo n.º 6
0
    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);
            }
        }
    }
Exemplo n.º 7
0
    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);
        }
    }
Exemplo n.º 8
0
    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;
                    }
                }
            }
        }
    }
Exemplo n.º 9
0
    // 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--;
                    }
                }
            }
        }
    }
Exemplo n.º 11
0
    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--;
            }
        }
    }