Esempio n. 1
0
    }                                               //Number of pins in this lock

    // Use this for initialization
    void Start()
    {
        PinDivides = new List <float>();
        untouched  = true;
        door       = GetComponent <Behaviour_Door>();
        unlocked   = door.Unlocked;
        for (int i = 0; i < PinCount; i++)
        {
            PinDivides.Add(Random.Range(0, 3.5f));
        }
    }
Esempio n. 2
0
    //Make list of nearby actions available to the character
    public List <Info_Action> Action()
    {
        Physics2D.queriesHitTriggers = true;
        Collider2D[] hits = Physics2D.OverlapAreaAll(transform.position + renderer.bounds.size,
                                                     transform.position - renderer.bounds.size - new Vector3(-transform.localScale.x * 2, 0, 0));
        var actionList = new List <Info_Action>();

        foreach (Collider2D hit in hits)
        {
            MonoBehaviour script = hit.GetComponent <Behaviour_Door>();
            if (script != null)
            {
                Behaviour_Door newScript = (Behaviour_Door)script;
                if (!newScript.IsBusy)
                {
                    if (newScript.IsClosed())
                    {
                        actionList.Add(new Info_Action("Open", script));
                        if (!newScript.CheckLock())
                        {
                            actionList.Add(new Info_Action("Unlock", script));
                        }
                        else
                        {
                            actionList.Add(new Info_Action("Lock", script));
                        }
                    }
                    else
                    {
                        actionList.Add(new Info_Action("Close", script));
                    }
                }
                continue;
            }
            script = hit.GetComponent <Behaviour_Switch>();
            if (script != null)
            {
                Behaviour_Switch newScript = (Behaviour_Switch)script;
                if (newScript.Coded)
                {
                    actionList.Add(new Info_Action("Hack", script));
                }
                else
                {
                    actionList.Add(new Info_Action("Use", script));
                }
            }

            script = hit.GetComponent <Behaviour_Container>();
            var isPlayer = hit.gameObject.tag == ("Player") ? true : false;
            if (script != null && !isPlayer)
            {
                Behaviour_Container container = (Behaviour_Container)script;
                actionList.Add(new Info_Action("Search", script));
            }
            script = hit.GetComponent <Behaviour_Cover>();
            if (script != null)
            {
                Behaviour_Cover cover = (Behaviour_Cover)script;
                if (cover.InUse)
                {
                    actionList.Add(new Info_Action("Push back", script));
                }
                else
                {
                    actionList.Add(new Info_Action("Pull out", script));
                }
            }
        }
        Physics2D.queriesHitTriggers = false;
        return(actionList);
    }