Пример #1
0
    public void SpawnNumber(int number, Color c)
    {
        GameObject damageNumber = pool.GetObject();

        ((RectTransform)damageNumber.transform).anchoredPosition = new Vector2(0, 0);
        TextMeshProUGUI tmpugui = damageNumber.GetComponent <TextMeshProUGUI>();

        tmpugui.SetText(number.ToString());
        tmpugui.faceColor = c;

        Color outline = Color.black;

        UpdateTimer ut = timers.Get();

        ut.Start(2,
                 () => { // finish
            pool.Return(damageNumber);
            timers.Return(ut);
        },
                 (percentComplete) => { // update
            c.a = 1 - percentComplete;
            tmpugui.faceColor    = c;
            outline.a            = c.a;
            tmpugui.outlineColor = outline;
        });
    }
Пример #2
0
    private void ShowPopUpPrivate(Vector2 canvasSpaceStartPosition, string text, Color color, bool worldCoords)
    {
        var go = popUpPool.GetObject();

        TextMeshProUGUI t = go.GetComponent <TextMeshProUGUI>();

        t.text  = text;
        t.color = color;
        RectTransform pos = go.GetComponent <RectTransform>();

        if (!worldCoords)
        {
            pos.anchoredPosition = canvasSpaceStartPosition;
        }
        else
        {
            pos.position = canvasSpaceStartPosition;
        }

        LerpData data = new LerpData();

        data.Time          = 0;
        data.PopUpText     = t;
        data.PopUpPosition = pos;
        data.StartY        = pos.anchoredPosition.y;

        currentLerpers.Add(data);
    }
Пример #3
0
        private void ResetFollowers()
        {
            FollowerPool.Reset();

            for (int i = 0; i < ListOfCurrentFollowers.Value.Count; i++)
            {
                FollowerData    fd = ListOfCurrentFollowers[i];
                GameObject      go = FollowerPool.GetObject();
                FollowerDisplay d  = go.GetComponent <FollowerDisplay>();
                AddDisplay(d, fd);
            }

            FollowerLayoutController.Instance.ChangeLayout();
        }
Пример #4
0
    public void AddDeadEnemy(float x, float y, EnemyData s)
    {
        GameObject go = DeadEnemies.GetObject();

        go.GetComponent <Image>().sprite = s.DeadSprite;
        RectTransform rt = ((RectTransform)go.transform);
        Vector2       r  = rt.sizeDelta;

        r.x          = s.SizeOfSprite.x;
        r.y          = s.SizeOfSprite.y;
        rt.sizeDelta = r;

        Vector3 pos = rt.anchoredPosition;

        pos.x = x;
        pos.y = y;
        rt.anchoredPosition = pos;

        StartCoroutine(ScrollOff(go));
    }
Пример #5
0
    // Update is called once per frame
    void Update()
    {
        if (IsScrolling)
        {
            float scrollSpeed = ScrollSpeed;

            for (int i = 0; i < nextSpawnDistance.Count; i++)
            {
                nextSpawnDistance[i] -= scrollSpeed * Time.deltaTime;
                if (nextSpawnDistance[i] <= 0)
                {
                    MiningPoint point = areaPoints[i];
                    GameObject  go    = Pool.GetObject();
                    Image       im    = go.GetComponent <Image>();
                    im.sprite = point.Image;
                    im.SetNativeSize();
                    AddListener(go.GetComponent <ClickReceiver>(), point);

                    Vector3 pos = go.transform.localPosition;
                    pos.x = 79;
                    go.transform.localPosition = pos;

                    nextSpawnDistance[i] = Random.Range(point.MinDistanceBetween, point.MaxDistanceBetween);
                }
            }

            foreach (var point in Pool.InUse.ToArray())
            {
                Vector3 pos = point.transform.localPosition;
                pos.x -= scrollSpeed * Time.deltaTime;
                if (pos.x <= ReturnToPoolXValue)
                {
                    Pool.Return(point);
                }

                point.transform.localPosition = pos;
            }
        }
    }
Пример #6
0
    private IEnumerator ShootItems(List <Item> items, Action onClick, Action onDone)
    {
        if (Pool.InUse.Count > 0)
        {
            Debug.LogError("Tried to add items to item dropper when there's still items");
        }

        int count = items.Count;

        if (!items.Any())
        {
            onDone?.Invoke();
            yield break;
        }



        foreach (Item it in items)
        {
            yield return(new WaitForSeconds(SpawnDelay));

            GameObject itemBubble = Pool.GetObject();
            itemBubble.transform.localPosition = Vector3.zero;
            itemBubble.transform.rotation      = Quaternion.identity;
            itemBubble.GetComponent <ItemDropBubble>().SetData(it, (i) => {
                count--;
                OnClick(i, onClick, onDone);

                if (count == 0)
                {
                    onDone?.Invoke();
                }
            });
            itemBubble.GetComponent <ItemDropBubble>().Shoot();
        }
    }