コード例 #1
0
        ////////////////

        public static bool IsSpamProjectile(Projectile projectile)
        {
            var config   = UPMod.Instance.Config;
            int projType = projectile.type;

            if (!UPMod.AreSpamProjectileLikelyToExist())
            {
                return(false);
            }

            if (projType >= 0)
            {
                if (Main.projPet.Length > projType && Main.projPet[projType])
                {
                    return(false);
                }
                if (ProjectileID.Sets.LightPet.Length > projType && ProjectileID.Sets.LightPet[projType])
                {
                    return(false);
                }
            }

            var projDef = new ProjectileDefinition(projType);

            if (config.NotSpamProjectiles.Contains(projDef))
            {
                return(false);
            }

            return((config.AreFriendlyProjectilesLikelySpam && projectile.friendly) ||
                   (config.AreHostileProjectilesLikelySpam && projectile.hostile) ||
                   (config.AreFriendlyAndHostileProjectilesLikelySpam && projectile.friendly && projectile.hostile) ||
                   (config.AreUnfriendlyAndUnhostileProjectilesLikelySpam && !projectile.friendly && !projectile.hostile));
        }
コード例 #2
0
        public static void RemoveDustsNearHiddenProjectiles(int dustStartIdx, int dustAmount)
        {
            foreach (int projWho in UPProjectile.HiddenProjectiles.ToArray())
            {
                Projectile proj = Main.projectile[projWho];
                if (proj == null || !proj.active)
                {
                    UPProjectile.HiddenProjectiles.Remove(projWho);
                    continue;
                }

                UPMod.RemoveDustsNearPosition(proj.position, dustStartIdx, dustAmount);
            }
        }
コード例 #3
0
        ////////////////

        private void UpdateHideState(Projectile projectile)
        {
            if (this.HidingState == 0)
            {
                bool isNearMe   = UPMod.IsNearMeForProjectileDimming(projectile.position);
                bool isNearBoss = UPNpc.IsNearBossForProjectileDimming(projectile.position);

                if (isNearMe || isNearBoss)
                {
                    if (this.HidePercent < 1f)
                    {
                        if (UPMod.Instance.Config.DebugModeInfo)
                        {
                            Main.NewText("-hide " + projectile.Name + " " + projectile.whoAmI);
                        }

                        this.HidingState = 1;
                    }
                }
                else
                {
                    if (this.HidePercent > 0f)
                    {
                        if (UPMod.Instance.Config.DebugModeInfo)
                        {
                            Main.NewText("+show " + projectile.Name + " " + projectile.whoAmI);
                        }

                        this.HidingState = -1;
                    }
                }
            }

            if (this.HidePercent >= 1f)
            {
                UPProjectile.HiddenProjectiles.Add(projectile.whoAmI);
            }
            else
            {
                UPProjectile.HiddenProjectiles.Remove(projectile.whoAmI);
            }
        }
コード例 #4
0
 public override void Unload()
 {
     UPMod.Instance = null;
 }
コード例 #5
0
        ////////////////

        public UPMod()
        {
            UPMod.Instance = this;
        }