From a545325b1229846354dded76895131895afda5d6 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Sun, 25 Jan 2026 15:43:59 +0100 Subject: [PATCH] hive mind effect --- Changes/SummonerOnHitEffects.cs | 23 +++++++++++++++++++++++ YhtPlayer.cs | 2 ++ 2 files changed, 25 insertions(+) diff --git a/Changes/SummonerOnHitEffects.cs b/Changes/SummonerOnHitEffects.cs index fe9d916..d1e55bc 100644 --- a/Changes/SummonerOnHitEffects.cs +++ b/Changes/SummonerOnHitEffects.cs @@ -17,6 +17,7 @@ public class SummonerOnHitEffects : GlobalProjectile { HandleDeerclopsEffect(modPlayer, target, projectile); HandleQueenBeeEffect(modPlayer, target); HandlePerforatorsEffect(modPlayer, target, projectile); + HandleHiveMindEffect(modPlayer, target, projectile); } } @@ -87,5 +88,27 @@ public class SummonerOnHitEffects : GlobalProjectile { blob.hostile = false; blob.DamageType = DamageClass.Summon; } + + private static void HandleHiveMindEffect(YhtPlayer modPlayer, NPC target, Projectile projectile) { + if (!ModLoader.HasMod("CalamityMod")) return; + if (!modPlayer.SummonerAmbitions.Contains("hive_mind")) return; + if (modPlayer.SummonerAmbitionHiveMindCooldown != 0) return; + if (!Main.rand.NextBool(10)) return; + modPlayer.SummonerAmbitionHiveMindCooldown = 3 * 60; + int projectileType = ModContent.ProjectileType(); + int projectileId = Projectile.NewProjectile( + modPlayer.Player.GetSource_OnHit(target), + target.Center, + new Vector2(0, 1f), + projectileType, + (int) (projectile.damage * 0.75f), + 0f, + projectile.owner + ); + Projectile blob = Main.projectile[projectileId]; + blob.friendly = true; + blob.hostile = false; + blob.DamageType = DamageClass.Summon; + } } diff --git a/YhtPlayer.cs b/YhtPlayer.cs index f06a025..bd63f0f 100644 --- a/YhtPlayer.cs +++ b/YhtPlayer.cs @@ -11,6 +11,7 @@ public class YhtPlayer : ModPlayer { public int KatanaTeleportCooldown = 0; public int SummonerAmbitionDeerclopsCooldown = 0; public int SummonerAmbitionPerforatorsCooldown = 0; + public int SummonerAmbitionHiveMindCooldown = 0; public bool SummonerAmbition = false; @@ -24,6 +25,7 @@ public class YhtPlayer : ModPlayer { KatanaTeleportCooldown = Math.Max(KatanaTeleportCooldown - 1, 0); SummonerAmbitionDeerclopsCooldown = Math.Max(SummonerAmbitionDeerclopsCooldown - 1, 0); SummonerAmbitionPerforatorsCooldown = Math.Max(SummonerAmbitionPerforatorsCooldown - 1, 0); + SummonerAmbitionHiveMindCooldown = Math.Max(SummonerAmbitionHiveMindCooldown - 1, 0); } public override void PostUpdateEquips() {