//////////////// 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)); }
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); } }
//////////////// 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); } }
public override void Unload() { UPMod.Instance = null; }
//////////////// public UPMod() { UPMod.Instance = this; }