コード例 #1
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc1 = Main.npc[info.npcIndexToAimAt];

            if (!npc1.active)
            {
                return(false);
            }
            int num     = npc1.type == 126 ? 125 : 126;
            int lifeMax = npc1.lifeMax;
            int life    = npc1.life;

            for (int index = 0; index < 200; ++index)
            {
                NPC npc2 = Main.npc[index];
                if (npc2.active && npc2.type == num)
                {
                    lifeMax += npc2.lifeMax;
                    life    += npc2.life;
                    break;
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>((float)life / (float)lifeMax, 0.0f, 1f);
            this._headIndex         = npc1.GetBossHeadTextureIndex();
            return(true);
        }
コード例 #2
0
        public bool TryTracking(int npcIndex)
        {
            if (npcIndex < 0 || npcIndex > 200)
            {
                return(false);
            }
            NPC npc = Main.npc[npcIndex];

            if (!npc.active)
            {
                return(false);
            }
            BigProgressBarInfo info = new BigProgressBarInfo()
            {
                npcIndexToAimAt = npcIndex
            };
            IBigProgressBar bigProgressBar1 = (IBigProgressBar)this._bossBar;
            IBigProgressBar bigProgressBar2;

            if (this._bossBarsByNpcNetId.TryGetValue(npc.netID, out bigProgressBar2))
            {
                bigProgressBar1 = bigProgressBar2;
            }
            if (!bigProgressBar1.ValidateAndCollectNecessaryInfo(ref info))
            {
                return(false);
            }
            this._currentBar = bigProgressBar1;
            this._info       = info;
            return(true);
        }
コード例 #3
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc1 = Main.npc[info.npcIndexToAimAt];

            if (!npc1.active && !this.TryFindingAnotherGolemPiece(ref info))
            {
                return(false);
            }
            int num1 = 0;

            this._referenceDummy.SetDefaults(245, npc1.GetMatchingSpawnParams());
            int num2 = num1 + this._referenceDummy.lifeMax;

            this._referenceDummy.SetDefaults(246, npc1.GetMatchingSpawnParams());
            int   num3 = num2 + this._referenceDummy.lifeMax;
            float num4 = 0.0f;

            for (int index = 0; index < 200; ++index)
            {
                NPC npc2 = Main.npc[index];
                if (npc2.active && this.ValidIds.Contains(npc2.type))
                {
                    num4 += (float)npc2.life;
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>(num4 / (float)num3, 0.0f, 1f);
            return(true);
        }
コード例 #4
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active && !TryFindingAnotherGolemPiece(ref info))
            {
                return(false);
            }
            int num = 0;

            _referenceDummy.SetDefaults(245, nPC.GetMatchingSpawnParams());
            num += _referenceDummy.lifeMax;
            _referenceDummy.SetDefaults(246, nPC.GetMatchingSpawnParams());
            num += _referenceDummy.lifeMax;
            float num2 = 0f;

            for (int i = 0; i < 200; i++)
            {
                NPC nPC2 = Main.npc[i];
                if (nPC2.active && ValidIds.Contains(nPC2.type))
                {
                    num2 += (float)nPC2.life;
                }
            }
            _lifePercentToShow = Utils.Clamp(num2 / (float)num, 0f, 1f);
            return(true);
        }
コード例 #5
0
        public bool ValidateAndCollectNecessaryInfo(BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active)
            {
                return(false);
            }
            int bossHeadTextureIndex = nPC.GetBossHeadTextureIndex();

            if (bossHeadTextureIndex == -1)
            {
                return(false);
            }
            if (!IsPlayerInCombatArea())
            {
                return(false);
            }
            if (nPC.ai[2] == 1f)
            {
                return(false);
            }
            float lifePercentToShow   = Utils.Clamp((float)nPC.life / (float)nPC.lifeMax, 0f, 1f);
            float shieldPercentToShow = GetCurrentShieldValue() / GetMaxShieldValue();

            _ = 600f * Main.GameModeInfo.EnemyMaxLifeMultiplier * GetMaxShieldValue() / (float)nPC.lifeMax;
            _lifePercentToShow   = lifePercentToShow;
            _shieldPercentToShow = shieldPercentToShow;
            _headIndex           = bossHeadTextureIndex;
            return(true);
        }
コード例 #6
0
        public bool TryTracking(int npcIndex)
        {
            if (npcIndex < 0 || npcIndex > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[npcIndex];

            if (!nPC.active)
            {
                return(false);
            }
            BigProgressBarInfo bigProgressBarInfo = default(BigProgressBarInfo);

            bigProgressBarInfo.npcIndexToAimAt = npcIndex;
            BigProgressBarInfo info           = bigProgressBarInfo;
            IBigProgressBar    bigProgressBar = _bossBar;

            if (_bossBarsByNpcNetId.TryGetValue(nPC.netID, out var value))
            {
                bigProgressBar = value;
            }
            if (!bigProgressBar.ValidateAndCollectNecessaryInfo(info))
            {
                return(false);
            }
            _currentBar = bigProgressBar;
            _info       = info;
            return(true);
        }
コード例 #7
0
        public bool ValidateAndCollectNecessaryInfo(BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active)
            {
                return(false);
            }
            int brainOfCthuluCreepersCount = NPC.GetBrainOfCthuluCreepersCount();

            _creeperForReference.SetDefaults(267, nPC.GetMatchingSpawnParams());
            int   num  = _creeperForReference.lifeMax * brainOfCthuluCreepersCount;
            float num2 = 0f;

            for (int i = 0; i < 200; i++)
            {
                NPC nPC2 = Main.npc[i];
                if (nPC2.active && nPC2.type == _creeperForReference.type)
                {
                    num2 += (float)nPC2.life;
                }
            }
            float num3 = (float)nPC.life + num2;
            int   num4 = nPC.lifeMax + num;

            _lifePercentToShow = Utils.Clamp(num3 / (float)num4, 0f, 1f);
            return(true);
        }
コード例 #8
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc1 = Main.npc[info.npcIndexToAimAt];

            if (!npc1.active)
            {
                return(false);
            }
            int cthuluCreepersCount = NPC.GetBrainOfCthuluCreepersCount();

            this._creeperForReference.SetDefaults(267, npc1.GetMatchingSpawnParams());
            int   num1 = this._creeperForReference.lifeMax * cthuluCreepersCount;
            float num2 = 0.0f;

            for (int index = 0; index < 200; ++index)
            {
                NPC npc2 = Main.npc[index];
                if (npc2.active && npc2.type == this._creeperForReference.type)
                {
                    num2 += (float)npc2.life;
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>(((float)npc1.life + num2) / (float)(npc1.lifeMax + num1), 0.0f, 1f);
            return(true);
        }
コード例 #9
0
        public void Draw(ref BigProgressBarInfo info, SpriteBatch spriteBatch)
        {
            Texture2D texture2D    = TextureAssets.NpcHeadBoss[this._headIndex].Value;
            Rectangle barIconFrame = texture2D.Frame(1, 1, 0, 0, 0, 0);

            BigProgressBarHelper.DrawFancyBar(spriteBatch, this._lifePercentToShow, texture2D, barIconFrame);
        }
コード例 #10
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc = Main.npc[info.npcIndexToAimAt];

            if (!npc.active)
            {
                return(false);
            }
            int headTextureIndex = npc.GetBossHeadTextureIndex();

            if (headTextureIndex == -1 || !this.IsPlayerInCombatArea() || (double)npc.ai[2] == 1.0)
            {
                return(false);
            }
            float  num1 = Utils.Clamp <float>((float)npc.life / (float)npc.lifeMax, 0.0f, 1f);
            float  num2 = this.GetCurrentShieldValue() / this.GetMaxShieldValue();
            double num3 = 600.0 * (double)Main.GameModeInfo.EnemyMaxLifeMultiplier * (double)this.GetMaxShieldValue() / (double)npc.lifeMax;

            this._lifePercentToShow   = num1;
            this._shieldPercentToShow = num2;
            this._headIndex           = headTextureIndex;
            return(true);
        }
コード例 #11
0
        public void Draw(BigProgressBarInfo info, SpriteBatch spriteBatch)
        {
            Texture2D value        = TextureAssets.NpcHeadBoss[_headIndex].Value;
            Rectangle barIconFrame = value.Frame();

            BigProgressBarHelper.DrawFancyBar(spriteBatch, _lifePercentToShow, value, barIconFrame);
        }
コード例 #12
0
        public bool ValidateAndCollectNecessaryInfo(BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active)
            {
                return(false);
            }
            int num  = ((nPC.type == 126) ? 125 : 126);
            int num2 = nPC.lifeMax;
            int num3 = nPC.life;

            for (int i = 0; i < 200; i++)
            {
                NPC nPC2 = Main.npc[i];
                if (nPC2.active && nPC2.type == num)
                {
                    num2 += nPC2.lifeMax;
                    num3 += nPC2.life;
                    break;
                }
            }
            _lifePercentToShow = Utils.Clamp((float)num3 / (float)num2, 0f, 1f);
            _headIndex         = nPC.GetBossHeadTextureIndex();
            return(true);
        }
コード例 #13
0
        public void Draw(ref BigProgressBarInfo info, SpriteBatch spriteBatch)
        {
            int       bossHeadTexture = NPCID.Sets.BossHeadTextures[491];
            Texture2D texture2D       = TextureAssets.NpcHeadBoss[bossHeadTexture].get_Value();
            Rectangle barIconFrame    = texture2D.Frame(1, 1, 0, 0, 0, 0);

            BigProgressBarHelper.DrawFancyBar(spriteBatch, this._lifePercentToShow, texture2D, barIconFrame);
        }
コード例 #14
0
        public void Draw(BigProgressBarInfo info, SpriteBatch spriteBatch)
        {
            int       num          = NPCID.Sets.BossHeadTextures[396];
            Texture2D value        = TextureAssets.NpcHeadBoss[num].Value;
            Rectangle barIconFrame = value.Frame();

            BigProgressBarHelper.DrawFancyBar(spriteBatch, _lifePercentToShow, value, barIconFrame);
        }
コード例 #15
0
 private bool TryFindingAnotherPirateShipPiece(ref BigProgressBarInfo info)
 {
     for (int index = 0; index < 200; ++index)
     {
         NPC npc = Main.npc[index];
         if (npc.active && this.ValidIds.Contains(npc.type))
         {
             info.npcIndexToAimAt = index;
             return(true);
         }
     }
     return(false);
 }
コード例 #16
0
 private bool TryFindingAnotherEOWPiece(ref BigProgressBarInfo info)
 {
     for (int index = 0; index < 200; ++index)
     {
         NPC npc = Main.npc[index];
         if (npc.active && npc.type >= 13 && npc.type <= 15)
         {
             info.npcIndexToAimAt = index;
             return(true);
         }
     }
     return(false);
 }
コード例 #17
0
 private bool TryFindingAnotherMoonLordPiece(BigProgressBarInfo info)
 {
     for (int i = 0; i < 200; i++)
     {
         NPC nPC = Main.npc[i];
         if (nPC.active && ValidIds.Contains(nPC.type) && !IsInBadAI(nPC))
         {
             info.npcIndexToAimAt = i;
             return(true);
         }
     }
     return(false);
 }
コード例 #18
0
 private bool TryFindingAnotherEOWPiece(BigProgressBarInfo info)
 {
     for (int i = 0; i < 200; i++)
     {
         NPC nPC = Main.npc[i];
         if (nPC.active && nPC.type >= 13 && nPC.type <= 15)
         {
             info.npcIndexToAimAt = i;
             return(true);
         }
     }
     return(false);
 }
コード例 #19
0
 private bool TryFindingAnotherMartianSaucerPiece(ref BigProgressBarInfo info)
 {
     for (int i = 0; i < 200; i++)
     {
         NPC nPC = Main.npc[i];
         if (nPC.active && ValidIds.Contains(nPC.type))
         {
             info.npcIndexToAimAt = i;
             return(true);
         }
     }
     return(false);
 }
コード例 #20
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200 || !Main.npc[info.npcIndexToAimAt].active && !this.TryFindingAnotherEOWPiece(ref info))
            {
                return(false);
            }
            int   worldsSegmentsCount = NPC.GetEaterOfWorldsSegmentsCount();
            float num = 0.0f;

            for (int index = 0; index < 200; ++index)
            {
                NPC npc = Main.npc[index];
                if (npc.active && npc.type >= 13 && npc.type <= 15)
                {
                    num += (float)npc.life / (float)npc.lifeMax;
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>(num / (float)worldsSegmentsCount, 0.0f, 1f);
            return(true);
        }
コード例 #21
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc1 = Main.npc[info.npcIndexToAimAt];

            if (!npc1.active || npc1.type != 395)
            {
                if (!this.TryFindingAnotherMartianSaucerPiece(ref info))
                {
                    return(false);
                }
                npc1 = Main.npc[info.npcIndexToAimAt];
            }
            int num1 = 0;

            if (Main.expertMode)
            {
                this._referenceDummy.SetDefaults(395, npc1.GetMatchingSpawnParams());
                num1 += this._referenceDummy.lifeMax;
            }
            this._referenceDummy.SetDefaults(394, npc1.GetMatchingSpawnParams());
            int num2 = num1 + this._referenceDummy.lifeMax * 2;

            this._referenceDummy.SetDefaults(393, npc1.GetMatchingSpawnParams());
            int   num3 = num2 + this._referenceDummy.lifeMax * 2;
            float num4 = 0.0f;

            for (int index = 0; index < 200; ++index)
            {
                NPC npc2 = Main.npc[index];
                if (npc2.active && this.ValidIdsToScanHp.Contains(npc2.type) && (Main.expertMode || npc2.type != 395))
                {
                    num4 += (float)npc2.life;
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>(num4 / (float)num3, 0.0f, 1f);
            return(true);
        }
コード例 #22
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc1 = Main.npc[info.npcIndexToAimAt];

            if ((!npc1.active || this.IsInBadAI(npc1)) && !this.TryFindingAnotherMoonLordPiece(ref info))
            {
                return(false);
            }
            int            num1        = 0;
            NPCSpawnParams spawnparams = new NPCSpawnParams()
            {
                strengthMultiplierOverride = new float?(npc1.strengthMultiplier),
                playerCountForMultiplayerDifficultyOverride = new int?(npc1.statsAreScaledForThisManyPlayers)
            };

            this._referenceDummy.SetDefaults(398, spawnparams);
            int num2 = num1 + this._referenceDummy.lifeMax;

            this._referenceDummy.SetDefaults(396, spawnparams);
            int num3 = num2 + this._referenceDummy.lifeMax;

            this._referenceDummy.SetDefaults(397, spawnparams);
            int   num4 = num3 + this._referenceDummy.lifeMax + this._referenceDummy.lifeMax;
            float num5 = 0.0f;

            for (int index = 0; index < 200; ++index)
            {
                NPC npc2 = Main.npc[index];
                if (npc2.active && this.ValidIds.Contains(npc2.type) && !this.IsInBadAI(npc2))
                {
                    num5 += (float)npc2.life;
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>(num5 / (float)num4, 0.0f, 1f);
            return(true);
        }
コード例 #23
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active || nPC.type != 395)
            {
                if (!TryFindingAnotherMartianSaucerPiece(ref info))
                {
                    return(false);
                }
                nPC = Main.npc[info.npcIndexToAimAt];
            }
            int num = 0;

            if (Main.expertMode)
            {
                _referenceDummy.SetDefaults(395, nPC.GetMatchingSpawnParams());
                num += _referenceDummy.lifeMax;
            }
            _referenceDummy.SetDefaults(394, nPC.GetMatchingSpawnParams());
            num += _referenceDummy.lifeMax * 2;
            _referenceDummy.SetDefaults(393, nPC.GetMatchingSpawnParams());
            num += _referenceDummy.lifeMax * 2;
            float num2 = 0f;

            for (int i = 0; i < 200; i++)
            {
                NPC nPC2 = Main.npc[i];
                if (nPC2.active && ValidIdsToScanHp.Contains(nPC2.type) && (Main.expertMode || nPC2.type != 395))
                {
                    num2 += (float)nPC2.life;
                }
            }
            _lifePercentToShow = Utils.Clamp(num2 / (float)num, 0f, 1f);
            return(true);
        }
コード例 #24
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active)
            {
                return(false);
            }
            int bossHeadTextureIndex = nPC.GetBossHeadTextureIndex();

            if (bossHeadTextureIndex == -1)
            {
                return(false);
            }
            _lifePercentToShow = Utils.Clamp((float)nPC.life / (float)nPC.lifeMax, 0f, 1f);
            _headIndex         = bossHeadTextureIndex;
            return(true);
        }
コード例 #25
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc = Main.npc[info.npcIndexToAimAt];

            if (!npc.active)
            {
                return(false);
            }
            int headTextureIndex = npc.GetBossHeadTextureIndex();

            if (headTextureIndex == -1)
            {
                return(false);
            }
            this._lifePercentToShow = Utils.Clamp <float>((float)npc.life / (float)npc.lifeMax, 0.0f, 1f);
            this._headIndex         = headTextureIndex;
            return(true);
        }
コード例 #26
0
        public bool ValidateAndCollectNecessaryInfo(BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if ((!nPC.active || IsInBadAI(nPC)) && !TryFindingAnotherMoonLordPiece(info))
            {
                return(false);
            }
            int            num            = 0;
            NPCSpawnParams nPCSpawnParams = default(NPCSpawnParams);

            nPCSpawnParams.strengthMultiplierOverride = nPC.strengthMultiplier;
            nPCSpawnParams.playerCountForMultiplayerDifficultyOverride = nPC.statsAreScaledForThisManyPlayers;
            NPCSpawnParams spawnparams = nPCSpawnParams;

            _referenceDummy.SetDefaults(398, spawnparams);
            num += _referenceDummy.lifeMax;
            _referenceDummy.SetDefaults(396, spawnparams);
            num += _referenceDummy.lifeMax;
            _referenceDummy.SetDefaults(397, spawnparams);
            num += _referenceDummy.lifeMax;
            num += _referenceDummy.lifeMax;
            float num2 = 0f;

            for (int i = 0; i < 200; i++)
            {
                NPC nPC2 = Main.npc[i];
                if (nPC2.active && ValidIds.Contains(nPC2.type) && !IsInBadAI(nPC2))
                {
                    num2 += (float)nPC2.life;
                }
            }
            _lifePercentToShow = Utils.Clamp(num2 / (float)num, 0f, 1f);
            return(true);
        }
コード例 #27
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC nPC = Main.npc[info.npcIndexToAimAt];

            if (!nPC.active || nPC.type != 491)
            {
                if (!TryFindingAnotherPirateShipPiece(ref info))
                {
                    return(false);
                }
                nPC = Main.npc[info.npcIndexToAimAt];
            }
            int num = 0;

            _referenceDummy.SetDefaults(492, nPC.GetMatchingSpawnParams());
            num += _referenceDummy.lifeMax * 4;
            float num2 = 0f;

            for (int i = 0; i < 4; i++)
            {
                int num3 = (int)nPC.ai[i];
                if (Main.npc.IndexInRange(num3))
                {
                    NPC nPC2 = Main.npc[num3];
                    if (nPC2.active && nPC2.type == 492)
                    {
                        num2 += (float)nPC2.life;
                    }
                }
            }
            _lifePercentToShow = Utils.Clamp(num2 / (float)num, 0f, 1f);
            return(true);
        }
コード例 #28
0
        public bool ValidateAndCollectNecessaryInfo(ref BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            NPC npc1 = Main.npc[info.npcIndexToAimAt];

            if (!npc1.active || npc1.type != 491)
            {
                if (!this.TryFindingAnotherPirateShipPiece(ref info))
                {
                    return(false);
                }
                npc1 = Main.npc[info.npcIndexToAimAt];
            }
            int num1 = 0;

            this._referenceDummy.SetDefaults(492, npc1.GetMatchingSpawnParams());
            int   num2 = num1 + this._referenceDummy.lifeMax * 4;
            float num3 = 0.0f;

            for (int index1 = 0; index1 < 4; ++index1)
            {
                int index2 = (int)npc1.ai[index1];
                if (Main.npc.IndexInRange <NPC>(index2))
                {
                    NPC npc2 = Main.npc[index2];
                    if (npc2.active && npc2.type == 492)
                    {
                        num3 += (float)npc2.life;
                    }
                }
            }
            this._lifePercentToShow = Utils.Clamp <float>(num3 / (float)num2, 0.0f, 1f);
            return(true);
        }
コード例 #29
0
        public bool ValidateAndCollectNecessaryInfo(BigProgressBarInfo info)
        {
            if (info.npcIndexToAimAt < 0 || info.npcIndexToAimAt > 200)
            {
                return(false);
            }
            if (!Main.npc[info.npcIndexToAimAt].active && !TryFindingAnotherEOWPiece(info))
            {
                return(false);
            }
            int   eaterOfWorldsSegmentsCount = NPC.GetEaterOfWorldsSegmentsCount();
            float num = 0f;

            for (int i = 0; i < 200; i++)
            {
                NPC nPC = Main.npc[i];
                if (nPC.active && nPC.type >= 13 && nPC.type <= 15)
                {
                    num += (float)nPC.life / (float)nPC.lifeMax;
                }
            }
            _lifePercentToShow = Utils.Clamp(num / (float)eaterOfWorldsSegmentsCount, 0f, 1f);
            return(true);
        }
コード例 #30
0
 public void Draw(ref BigProgressBarInfo info, SpriteBatch spriteBatch)
 {
 }