예제 #1
0
    public bool lockMovement; // wird gelockt solange unit sich von einem zum anderen feld bewegt
    // Start is called before the first frame update
    void Start()
    {
        evaluate = false;

        //werte übernehmen von myUnit
        maxhealth = myUnit.health;
        health    = maxhealth;
        damage    = myUnit.attack;
        speed     = myUnit.speed;
        range     = myUnit.range;
        timeLeft  = 10 - myUnit.attackspeed;


        cooldown = timeLeft;

        //je nachdem wem die einheit gehört in liste einordnen
        if (isenemy)
        {
            enemielist.enemielist.Add(this);
        }
        else
        {
            teamlist.teamlist.Add(this);
        }
        updateOpponentList();

        healthbar1.updateText();
        doesattack = false;


        schachbrett = feld.brett;
        targetFeld  = feld;
    }
예제 #2
0
    // Update is called once per frame
    void Update()
    {
        //wenn karte ausgewählt ist soll geprüft werden über welches feld man mit der maus fährt
        if (cardSelected)
        {
            RaycastHit hit;
            int        layer_mask = LayerMask.GetMask("Field");
            Ray        ray        = cam.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 1000, layer_mask))
            {
                if (hit.collider.tag == "chessfield")
                {
                    if (hit.collider.GetComponent <schachfeld>().Equals(selectedfield))
                    {
                    }
                    else
                    {
                        if (selectedfield != null)
                        {
                            selectedfield.selected = false;
                        }

                        selectedfield          = hit.collider.GetComponent <schachfeld>();
                        selectedfield.selected = true;
                    }
                }
                else
                {
                    if (selectedfield != null)
                    {
                        selectedfield.selected = false;
                    }
                    selectedfield = null;
                }
            }
        }
    }
예제 #3
0
    // Start is called before the first frame update
    void Start()
    {
        brettArray = new schachfeld[size, size];
        units      = new GameObject[size, size];
        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
            {
                GameObject feld  = Instantiate(chessfieldPrefab, new Vector3(i * 10, 0, j * 10), Quaternion.identity);
                schachfeld feld1 = feld.GetComponent <schachfeld>();
                Node       node1 = feld.GetComponent <Node>();
                node1.gameObject.transform.SetParent(graphNode.gameObject.transform);



                feld1.brett      = this;
                brettArray[i, j] = feld1;
                feld1.x          = i;
                feld1.y          = j;
            }
        }

        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
            {
                Node node1 = brettArray[i, j].GetComponent <Node>();
                if (i > 0)
                {
                    node1.connections.Add(brettArray[i - 1, j].gameObject.GetComponent <Node>());
                    if (j > 0)
                    {
                        node1.connections.Add(brettArray[i - 1, j - 1].gameObject.GetComponent <Node>());
                    }
                    if (j < size - 1)
                    {
                        node1.connections.Add(brettArray[i - 1, j + 1].gameObject.GetComponent <Node>());
                    }
                }
                if (j > 0)
                {
                    node1.connections.Add(brettArray[i, j - 1].gameObject.GetComponent <Node>());
                }

                if (i < size - 1)
                {
                    node1.connections.Add(brettArray[i + 1, j].gameObject.GetComponent <Node>());
                    if (j < size - 1)
                    {
                        node1.connections.Add(brettArray[i + 1, j + 1].gameObject.GetComponent <Node>());
                    }
                    if (j > 0)
                    {
                        node1.connections.Add(brettArray[i + 1, j - 1].gameObject.GetComponent <Node>());
                    }
                }
                if (j < size - 1)
                {
                    node1.connections.Add(brettArray[i, j + 1].gameObject.GetComponent <Node>());
                }
            }
        }

        //add all chessfields to the graph
        graphNode.AddFields();
    }