Esempio n. 1
0
    public IEnumerator MoveToPosition(s_charactermanager returning_system)
    {
        positon = grid.VectorPositionFromWorld(transform.position);
        Queue <o_node> di = new Queue <o_node>();

        foreach (o_node n in directions)
        {
            di.Enqueue(n);
        }
        Vector2Int newpos = new Vector2Int();

        while (di.Count != 0)
        {
            Vector3 dir = (di.Peek().position - (Vector2)transform.position).normalized;

            s_sound.PlaySound(walksound);
            yield return(new WaitForSeconds(0.05f));

            transform.Translate(dir * 20);
            di.Dequeue();
        }

        newpos = grid.VectorPositionFromWorld(transform.position);
        grid.character_layer[positon.x, positon.y] = null;
        grid.character_layer[newpos.x, newpos.y]   = this;
        grid.UnpaintAllNodes();

        returning_system.LooseFocus();
    }
Esempio n. 2
0
    void ICharacter.Intialize()
    {
        defeated      = false;
        current_item  = null;
        actionPoints  = maxActionPoints;
        health        = maxHealth;
        hasdisapeared = false;
        GameObject manager = GameObject.Find("Manager");

        if (GameObject.Find("CharacterManager") != null)
        {
            charctMnger = GameObject.Find("CharacterManager").GetComponent <s_charactermanager>();
        }

        renderer = GetComponent <SpriteRenderer>();
        grid     = manager.GetComponent <s_grid>();
        path     = manager.GetComponent <s_pathfind>();
    }
Esempio n. 3
0
    public void Teleport(s_charactermanager returning_system)
    {
        positon = grid.VectorPositionFromWorld(transform.position);
        Queue <o_node> di = new Queue <o_node>();

        foreach (o_node n in directions)
        {
            di.Enqueue(n);
        }
        Vector2Int newpos = new Vector2Int();

        while (di.Count != 1)
        {
            di.Dequeue();
        }
        transform.position = di.Peek().position;
        newpos             = grid.VectorPositionFromWorld(transform.position);
        grid.character_layer[positon.x, positon.y] = null;
        grid.character_layer[newpos.x, newpos.y]   = this;
        grid.UnpaintAllNodes();
        di.Clear();

        returning_system.LooseFocus();
    }