Пример #1
0
    void OnPerkEnter(PointerEventData data)
    {
        PerkHolder clickedEvent = data.pointerCurrentRaycast.gameObject.GetComponent <PerkHolder>();

        mousedOver         = clickedEvent.perkInfo;
        descText.text      = mousedOver.Desc + "\n\n";
        skillTitle.text    = mousedOver.Name;
        spriteImage.sprite = mousedOver.sprite;
        foreach (PerkStatEntry stat in mousedOver.Stats)
        {
            descText.text = descText.text + stat.StatInst.Name + ": " + stat.StatInst.Value + "\n";
        }
        selected = true;
    }
Пример #2
0
    void OnPerkClick(PointerEventData data)
    {
        PerkHolder clickedEvent =
            data.pointerCurrentRaycast.gameObject.GetComponent <PerkHolder>();
        bool taken = playerClass.TakePerk(clickedEvent.perkInfo);

        if (taken)
        {
            for (int i = 0; i < content.transform.childCount; i++)
            {
                PerkHolder test = content.transform.GetChild(i).gameObject.GetComponent <PerkHolder>();
                if (test)
                {
                    test.recheck(clickedEvent.perkInfo);
                }
            }
        }
    }
Пример #3
0
    private void Update()
    {
        for (int i = 0; i < content.transform.childCount; i++)
        {
            PerkHolder test      = content.transform.GetChild(i).gameObject.GetComponent <PerkHolder>();
            Image      colorEdit = content.transform.GetChild(i).gameObject.GetComponent <Image>();
            perkPointsText.text = playerClass.PlayerLevelExp.PerkPoints.ToString();
            if (test)
            {
                if (!selected)
                {
                    statsBlock.transform.localPosition = Vector3.MoveTowards(statsBlock.transform.localPosition, hiddenLoc, 350 * Time.deltaTime);

                    if (test.taken)
                    {
                        colorEdit.color = Color.green;
                    }
                    else if (test.blocked)
                    {
                        colorEdit.color = Color.red;
                    }
                    else if (test.available)
                    {
                        colorEdit.color = Color.yellow;
                    }
                    else
                    {
                        colorEdit.color = Color.white;
                    }
                }
                else
                {
                    colorEdit.color = test.precheck(mousedOver);
                    statsBlock.transform.localPosition = Vector3.MoveTowards(statsBlock.transform.localPosition, visibleLoc, 350 * Time.deltaTime);
                }
            }
        }
    }
Пример #4
0
    public void reloadGraph()
    {
        if (!loaded)
        {
            loaded = true;
            foreach (PerkPrototype proto in playerClass.allPerks)
            {
                Vector3 position = new Vector3(proto.uiCoords.x * 3, -proto.uiCoords.y * 3, 0);
                foreach (PerkPrototype req in proto.Require)
                {
                    Vector3    other     = new Vector3(req.uiCoords.x * 3, -req.uiCoords.y * 3, 0);
                    Vector3    direction = other - position;
                    GameObject line      = new GameObject();
                    Image      l         = line.AddComponent <Image>();
                    line.transform.parent = content.transform;
                    RectTransform rect = line.GetComponent <RectTransform>();
                    line.name  = proto.Name + " requires " + req.Name;
                    rect.pivot = new Vector2(0, 0.5f);
                    line.transform.localPosition = position;
                    float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
                    rect.sizeDelta = new Vector3(direction.magnitude, 2f, 1);
                    rect.Rotate(new Vector3(0, 0, angle));
                    line.transform.localScale = new Vector3(1.0f, line.transform.localScale.y, line.transform.localScale.z);

                    if (proto.RequireAll)
                    {
                        l.color = Color.black;
                    }
                    else
                    {
                        l.color = Color.grey;
                    }
                }
                foreach (PerkPrototype req in proto.BlockedBy)
                {
                    Vector3    other     = new Vector3(req.uiCoords.x * 3, -req.uiCoords.y * 3, 0);
                    Vector3    direction = other - position;
                    GameObject line      = new GameObject();
                    Image      l         = line.AddComponent <Image>();

                    line.transform.parent = content.transform;
                    RectTransform rect = line.GetComponent <RectTransform>();
                    line.name  = proto.Name + " is blocked by " + req.Name;
                    rect.pivot = new Vector2(0, 0.5f);
                    line.transform.localPosition = position;
                    float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
                    rect.sizeDelta            = new Vector3(direction.magnitude, 2.0f, 1);
                    line.transform.localScale = new Vector3(1.0f, line.transform.localScale.y, line.transform.localScale.z);
                    rect.Rotate(new Vector3(0, 0, angle));
                    l.color = Color.red;
                }
            }
            foreach (PerkPrototype proto in playerClass.allPerks)
            {
                GameObject image      = new GameObject();
                PerkHolder perkHolder = image.AddComponent <PerkHolder>();
                perkHolder.perkInfo = proto;

                perkHolder.playerClass = playerClass;
                perkHolder.recheck();
                if (proto.Require.Count == 0)
                {
                    perkHolder.available = true;
                }
                image.transform.parent = content.transform;
                image.name             = proto.Name;
                //RectTransform rect = image.GetComponent<RectTransform>();
                image.transform.localScale = new Vector3(0.75f, 0.75f, 0.75f);
                Image spr = image.AddComponent <Image>();
                spr.sprite = proto.sprite;
                //image.GetComponent<Image>.sprite = proto.sprite;
                image.transform.localPosition = new Vector3(proto.uiCoords.x * 3, -proto.uiCoords.y * 3, 0);
                EventTrigger ev = image.AddComponent <EventTrigger>();

                EventTrigger.Entry entry = new EventTrigger.Entry();
                entry.eventID = EventTriggerType.PointerClick;
                entry.callback.AddListener((eventData) => { OnPerkClick((PointerEventData)eventData); });
                ev.triggers.Add(entry);

                EventTrigger.Entry entry2 = new EventTrigger.Entry();
                entry2.eventID = EventTriggerType.PointerEnter;
                entry2.callback.AddListener((eventData) => {
                    OnPerkEnter((PointerEventData)eventData);
                });
                ev.triggers.Add(entry2);

                EventTrigger.Entry entry3 = new EventTrigger.Entry();
                entry3.eventID = EventTriggerType.PointerExit;
                entry3.callback.AddListener((eventData) => { OnPerkExit((PointerEventData)eventData); });
                ev.triggers.Add(entry3);
            }
        }
    }