private static void CustomBuff(BuffDisplay self, RectTransform trans, List <BuffIcon> buffIcons)
        {
            Vector2 zero = Vector2.zero;

            if (self.buffIconPrefab)
            {
                for (int i = 0; i < CustomBuffs.buffs.Count; i++)
                {
                    var type = self.source.GetComponentInParent(CustomBuffs.buffs[i].type);
                    if (type == null)
                    {
                        buffIcons.RemoveAll(p => p.buffIndex == BuffIndex.Count + 1 + i);
                    }
                    else
                    {
                        BuffIcon buff = Newbuff(i, trans, buffIcons, self.buffIconPrefab, out bool createdbuff);

                        zero.x += (buffIcons.Count - (createdbuff ? 0 : 1)) * self.iconWidth;
                        buff.rectTransform.anchoredPosition = zero;

                        Effectsbuff(buff, CustomBuffs.buffs[i], type);

                        if (createdbuff)
                        {
                            buffIcons.Add(buff);
                        }
                    }
                }
            }
        }
 private static void checkBuffs(BuffDisplay self, bufficons bufficons)
 {
     foreach (var bufficon in bufficons.buffIcons)
     {
         if (self.source.HasBuff(bufficon.buffIndex))
         {
             editBuffs(bufficons, bufficon);
         }
     }
 }
Beispiel #3
0
    // Start is called before the first frame update

    private void Start()
    {
        TpPosition             = new Vector3(0f, 0f, 0f);
        PlayerControllerScript = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerController>();
        mySource             = GameObject.FindGameObjectWithTag("Player").GetComponent <AudioSource>();
        FloatingPositionDown = transform.position.y;
        FloatingPositionUp   = transform.position.y + 0.2f;
        Debug.Log(gameObject.transform.position.y + " == with");
        Debug.Log(transform.position.y + " == without");
        goUp        = true;
        score       = GameObject.FindObjectOfType <Score>();
        buffDisplay = GameObject.FindObjectOfType <BuffDisplay>();
    }
Beispiel #4
0
 public void ShowBuff(BuffInfo info, BuffDisplay display)
 {
     if (_displayedBuffs.TryGetValue(info.AffectedStat, out var displayed))
     {
         if (info.TurnCount <= 0)
         {
             _displayedBuffs.Remove(info.AffectedStat);
             Destroy(displayed.gameObject);
         }
         else
         {
             displayed.SetData(display.statusIcon, info.TurnCount);
         }
     }
     else
     {
         var buff = Instantiate(displayPrefab, content);
         buff.SetData(display.statusIcon, info.TurnCount);
         _displayedBuffs.Add(info.AffectedStat, buff);
     }
     RefreshDisplay();
 }
        private static void Buff(BuffDisplay self, RectTransform trans, ref List <BuffIcon> buffIcons)
        {
            if (self.buffIconPrefab)
            {
                var type = self.source.GetComponentInParent <counting>();
                if (type != null)
                {
                    BuffIcon buff = null;
                    for (int i = 0; i < buffIcons.Count; i++)
                    {
                        if (buffIcons[i].buffIndex == BuffIndex.Count + 412)
                        {
                            buff = buffIcons[i];
                            break;
                        }
                    }

                    Vector2 zero = Vector2.zero;

                    if (buff == null)
                    {
                        buff           = Instantiate(self.buffIconPrefab, trans)?.GetComponent <BuffIcon>();
                        buff.buffIndex = BuffIndex.Count + 412;
                        zero.x        += buffIcons.Count * self.iconWidth;
                        buff.buffCount = 1;
                    }
                    else
                    {
                        zero.x += (buffIcons.Count - 1) * self.iconWidth;
                    }
                    buff.rectTransform.anchoredPosition = zero;

                    if (EntityStates.Bandit.Timer.Timer.numbers == false)
                    {
                        buff.stackCount.text = string.Empty;
                    }
                    else
                    {
                        buff.stackCount.text = type.timeLeft.ToString("0.0");
                    }

                    if (type.timeLeft < EntityStates.Bandit.Timer.Timer.fadeout)
                    {
                        buff.stackCount.alpha = (float)Math.Sqrt((double)type.timeLeft / EntityStates.Bandit.Timer.Timer.fadeout);
                    }
                    else
                    {
                        buff.stackCount.alpha = 1f;
                    }

                    if (buff.stackCount.alpha < 1f)
                    {
                        Color color = buff.iconImage.color;

                        color.a = buff.stackCount.alpha;

                        buff.iconImage.color = color;
                    }

                    buff.iconImage.sprite = sprite;
                    buffIcons.Add(buff);
                }
            }
        }
        private static void BuffDisplay_AllocateIcons(On.RoR2.UI.BuffDisplay.orig_AllocateIcons orig, BuffDisplay self)
        {
            orig(self);
            if (self != null)
            {
                if (self.source != null)
                {
                    if (icons == null)
                    {
                        icons = typeof(BuffDisplay).GetField("buffIcons", BindingFlags.NonPublic | BindingFlags.Instance);
                    }

                    if (form == null)
                    {
                        form = typeof(BuffDisplay).GetField("rectTranform", BindingFlags.NonPublic | BindingFlags.Instance);
                    }

                    List <BuffIcon> buffIcons = (List <BuffIcon>)icons?.GetValue(self);
                    if (buffIcons != null)
                    {
                        RectTransform trans = (RectTransform)form?.GetValue(self);
                        if (trans != null)
                        {
                            Buff(self, trans, ref buffIcons);
                        }
                        else
                        {
                            Debug.LogError("Can't get tranform");
                        }
                    }
                    else
                    {
                        Debug.LogError("Can't get bufficons");
                    }
                }
            }
        }
        private void BuffDisplay_UpdateLayout(On.RoR2.UI.BuffDisplay.orig_UpdateLayout orig, BuffDisplay self)
        {
            orig(self);
            //checks if it has a body, should fix ice elites
            if (self.source)
            {
                //using a component to keep track of the lists
                var bufficons = self.GetComponent <bufficons>();
                if (bufficons == null)
                {
                    List <BuffIcon> listbufficons = (List <BuffIcon>)icons.GetValue(self);
                    bufficons            = self.gameObject.AddComponent <bufficons>();
                    bufficons.buffIcons  = listbufficons;
                    bufficons.timedbuffs = (IList)buffs.GetValue(self.source);
                }

                checkBuffs(self, bufficons);
            }
        }
Beispiel #8
0
        private void BuffDisplay_UpdateLayout(On.RoR2.UI.BuffDisplay.orig_UpdateLayout orig, BuffDisplay self)
        {
            orig(self);
            if (self.source)
            {
                var bufficons = self.GetComponent <bufficons>();
                if (bufficons == null)
                {
                    List <BuffIcon> listbufficons = (List <BuffIcon>)icons.GetValue(self);
                    bufficons            = self.gameObject.AddComponent <bufficons>();
                    bufficons.buffIcons  = listbufficons;
                    bufficons.timedbuffs = (IList)buffs.GetValue(self.source);
                }

                checkBuffs(self, bufficons);
            }
        }