示例#1
0
        public override void Kill(int timeLeft)
        {
            Player          player    = Main.player[projectile.owner];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            Projectile.NewProjectile(projectile.position.X, projectile.position.Y, 0f, 0f, mod.ProjectileType("MoltenResidueScepterProjExplosion"), projectile.damage + (5 * nbBonds), 0.0f, projectile.owner, 0.0f, 0.0f);
            Main.PlaySound(2, (int)projectile.position.X, (int)projectile.position.Y, 14);

            float oldVelocityX = 0 + projectile.velocity.X / 2;
            float oldVelocityY = 0 + projectile.velocity.Y / 2;

            projectile.velocity.X *= 0;
            projectile.velocity.Y *= 0;

            for (int i = 1; i < nbBonds + 1; i++)
            {
                spawnDustCircle(6, 15 * i);
            }

            projectile.velocity.X = oldVelocityX;
            projectile.velocity.Y = oldVelocityY;

            projectile.position.X += projectile.velocity.X;
            projectile.position.Y += projectile.velocity.Y;
            spawnDustCircle(6, nbBonds * 15 + 15);
            projectile.position.X += projectile.velocity.X * 3;
            projectile.position.Y += projectile.velocity.Y * 3;
            spawnDustCircle(6, nbBonds * 10 + 10);
            projectile.position.X += projectile.velocity.X * 3;
            projectile.position.Y += projectile.velocity.Y * 3;
            spawnDustCircle(6, nbBonds * 5 + 5);
            projectile.velocity *= 0;
        }
示例#2
0
        public override void SafeModifyWeaponDamage(Player player, ref float add, ref float mult, ref float flat)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            mult *= modPlayer.shamanDamage + (nbBonds * 0.1f);
        }
示例#3
0
        public override void OnSpawn()
        {
            // I hate it
            Player                    player        = Main.player[projectile.owner];
            OrchidModPlayer           modPlayer     = player.GetModPlayer <OrchidModPlayer>();
            int                       newCrit       = 10 * OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) + modPlayer.shamanCrit + player.inventory[player.selectedItem].crit;
            OrchidModGlobalProjectile modProjectile = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>();

            modProjectile.baseCritChance = newCrit;

            switch (Main.rand.Next(3))
            {
            case 1:
                mainColor = new Color(231, 120, 255, 100);
                break;

            case 2:
                mainColor = new Color(120, 247, 255, 100);
                break;

            default:
                mainColor = new Color(215, 255, 120, 100);
                break;
            }

            projectile.ai[0] = 0.35f;
            projectile.ai[1] = 0;             // Death Type
            startRotation    = Main.rand.NextFloat(-(float)Math.PI, (float)Math.PI);
        }
        public override void Kill(int timeLeft)
        {
            Player          player    = Main.player[projectile.owner];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (projectile.soundDelay == 0)
            {
                Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Custom/Poof").WithPitchVariance(Main.rand.NextFloat(0.9f, 1f)), projectile.Center);
            }
            projectile.soundDelay = 10;

            int nbBonds = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            for (int i = 0; i < nbBonds; i++)
            {
                Vector2 perturbedSpeed = new Vector2(projectile.velocity.X / (Main.rand.Next(3) + 2), -3f).RotatedByRandom(MathHelper.ToRadians(30));
                Projectile.NewProjectile(projectile.position.X, projectile.position.Y, perturbedSpeed.X, perturbedSpeed.Y, mod.ProjectileType("BoreanStriderScepterProjAlt"), (int)(projectile.damage * 0.70), 0.0f, player.whoAmI, 0.0f, 0.0f);
            }

            for (int i = 0; i < 10; i++)
            {
                var dust = Main.dust[Dust.NewDust(projectile.position, projectile.width, projectile.height, 67)];
                dust.noGravity = true;
                dust.scale     = 1.5f;
                dust.noLight   = true;
                dust.velocity  = new Vector2(0, Main.rand.NextFloat(2f, 4f)).RotatedBy(Main.rand.NextFloat(MathHelper.TwoPi));
            }

            Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, 0, 0, ModContent.ProjectileType <BoreanStriderScepterKillProj>(), 0, 0.0f, player.whoAmI, Math.Sign(projectile.velocity.X) * 0.1f, projectile.rotation);
        }
示例#5
0
        public override void UpdateInventory(Player player)
        {
            // I hate it
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            item.crit = 4 + 10 * OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) + modPlayer.shamanCrit;
        }
示例#6
0
        public override void UpdateInventory(Player player)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            item.shootSpeed = 7f + 2f * nbBonds;
        }
示例#7
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 1)
     {
         Projectile.NewProjectile(player.Center.X, player.Center.Y, projectile.velocity.X, projectile.velocity.Y, mod.ProjectileType("PatchWerkScepterProjAlt"), projectile.damage, 0f, 0, 0f, 0f);
     }
 }
示例#8
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer  = player.GetModPlayer <OrchidModPlayer>();
            int             BuffsCount = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            BuffsCount -= BuffsCount > 0 ? 1 : 0;

            float  spread      = 1f * 0.0574f;
            float  baseSpeed   = (float)Math.Sqrt(speedX * speedX + speedY * speedY);
            double startAngle  = Math.Atan2(speedX, speedY) - spread;
            double deltaAngle  = spread;
            double offsetAngle = startAngle - deltaAngle * 5;

            if (BuffsCount > 3)
            {
                offsetAngle -= deltaAngle * 4;
            }
            int i;

            for (i = 0; i < BuffsCount; i++)
            {
                offsetAngle += deltaAngle * 4;
                this.NewShamanProjectile(position.X, position.Y, baseSpeed * (float)Math.Sin(offsetAngle), baseSpeed * (float)Math.Cos(offsetAngle), mod.ProjectileType("TerraSpecterProj"), (int)(item.damage * 0.55), knockBack, item.owner);
            }
            return(true);
        }
示例#9
0
        public override void AI()
        {
            Player          player    = Main.player[projectile.owner];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            if (projectile.timeLeft == 45)
            {
                for (int i = 0; i < nbBonds; i++)
                {
                    sizeBonus         += 2;
                    projectile.damage += 5;
                }
                projectile.netUpdate = true;
            }

            for (int index1 = 0; index1 < 3; ++index1)
            {
                int index2 = Dust.NewDust(projectile.Center, 0, 0, 169, 0.0f, 0.0f, 0, new Color(), 1f);
                Main.dust[index2].scale     = (float)(Main.rand.Next(70, 110) * 0.013f) + ((sizeBonus) * 0.15f);
                Main.dust[index2].velocity  = projectile.velocity;
                Main.dust[index2].noGravity = true;
            }

            if (projectile.timeLeft % 5 == 0)
            {
                int range = projectile.timeLeft - 10;
                range = range > 20 ? 20 : range;
                spawnDustCircle(169, range);
            }
        }
示例#10
0
        public override void Kill(int timeLeft)
        {
            Player          player    = Main.player[projectile.owner];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             dmg       = (int)(10 * modPlayer.shamanDamage);

            for (int i = 0; i < 13; i++)
            {
                int dust = Dust.NewDust(projectile.position, projectile.width, projectile.height, 153);
                Main.dust[dust].noGravity = true;
            }

            for (int i = 0; i < OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod); i++)
            {
                if (Main.rand.Next(4) == 0)
                {
                    if (player.strongBees && Main.rand.Next(2) == 0)
                    {
                        Projectile.NewProjectile(projectile.position.X, projectile.position.Y, 3 - Main.rand.Next(6), 3 - Main.rand.Next(6), 566, (int)(dmg * 1.15f), 0f, projectile.owner, 0f, 0f);
                    }
                    else
                    {
                        Projectile.NewProjectile(projectile.position.X, projectile.position.Y, 3 - Main.rand.Next(6), 3 - Main.rand.Next(6), 181, dmg, 0f, projectile.owner, 0f, 0f);
                    }
                }
            }
        }
示例#11
0
        public override void UpdateInventory(Player player)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            switch (nbBonds)
            {
            case 0:
                item.useTime = 60;
                break;

            case 1:
                item.useTime = 30;
                break;

            case 2:
                item.useTime = 20;
                break;

            case 3:
                item.useTime = 15;
                break;

            case 4:
                item.useTime = 12;
                break;

            case 5:
                item.useTime = 10;
                break;
            }
        }
示例#12
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            player.ClearBuff(mod.BuffType("SporeEmpowerment"));

            for (int l = 0; l < Main.projectile.Length; l++)
            {
                Projectile proj = Main.projectile[l];
                if (proj.active && proj.type == item.shoot && proj.owner == player.whoAmI)
                {
                    proj.active = false;
                }
            }

            for (int i = 0; i < nbBonds + 2; i++)
            {
                Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedByRandom(MathHelper.ToRadians(30));
                float   scale          = 1f - (Main.rand.NextFloat() * .3f);
                perturbedSpeed = perturbedSpeed * scale;
                this.NewShamanProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI);
            }
            return(false);
        }
示例#13
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     if (Main.rand.Next(8) < (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) + 1))
     {
         Projectile.NewProjectile(player.position.X, player.position.Y, projectile.velocity.X, projectile.velocity.Y, mod.ProjectileType("ViscountScepterBat"), projectile.damage, 0f, 0, 0f, 0f);
     }
 }
示例#14
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 0)
            {
                if (modPlayer.orbCountSmall == 0 && modPlayer.shamanOrbSmall != ShamanOrbSmall.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbSmall = ShamanOrbSmall.NULL;
                }

                if (modPlayer.orbCountBig == 0 && modPlayer.shamanOrbBig != ShamanOrbBig.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbBig = ShamanOrbBig.NULL;
                }

                if (modPlayer.orbCountLarge == 0 && modPlayer.shamanOrbLarge != ShamanOrbLarge.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbLarge = ShamanOrbLarge.NULL;
                }

                if (modPlayer.orbCountUnique == 0 && modPlayer.shamanOrbUnique != ShamanOrbUnique.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbUnique = ShamanOrbUnique.NULL;
                }
            }
        }
示例#15
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     OrchidModProjectile.spawnDustCircle(projectile.Center, 127, 20, 20, true, 1f);
     if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 2)
     {
         target.AddBuff((72), 5 * 60);                 // Midas
     }
 }
示例#16
0
        public override void UpdateInventory(Player player)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            item.useTime      = 18 - (2 * nbBonds);
            item.useAnimation = 18 - (2 * nbBonds);
        }
示例#17
0
        public override void SafeModifyWeaponDamage(Player player, ref float add, ref float mult, ref float flat)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 3)
            {
                flat += 7f;
            }
        }
示例#18
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            float randX = target.position.X + (target.width / 2) + Main.rand.Next(700) - 350;
            float randY = target.position.Y + (target.height / 2) - Main.rand.Next(200) - 100;

            if (Main.rand.Next(20) < OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod))
            {
                Projectile.NewProjectile(randX, randY, 0f, 0f, mod.ProjectileType("PharaohScepterPortal"), 0, 0.0f, projectile.owner, 0.0f, 0.0f);
            }
        }
示例#19
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 0)
            {
                if (modPlayer.orbCountSmall == 0 && modPlayer.shamanOrbSmall != ShamanOrbSmall.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbSmall = ShamanOrbSmall.NULL;

                    if (Main.myPlayer == player.whoAmI)
                    {
                        player.HealEffect(5, true);
                    }
                    player.statLife += 5;
                }

                if (modPlayer.orbCountBig == 0 && modPlayer.shamanOrbBig != ShamanOrbBig.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbBig = ShamanOrbBig.NULL;

                    if (Main.myPlayer == player.whoAmI)
                    {
                        player.HealEffect(10, true);
                    }
                    player.statLife += 10;
                }

                if (modPlayer.orbCountLarge == 0 && modPlayer.shamanOrbLarge != ShamanOrbLarge.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbLarge = ShamanOrbLarge.NULL;

                    if (Main.myPlayer == player.whoAmI)
                    {
                        player.HealEffect(20, true);
                    }
                    player.statLife += 20;
                }

                if (modPlayer.orbCountUnique == 0 && modPlayer.shamanOrbUnique != ShamanOrbUnique.NULL)
                {
                    player.AddBuff(mod.BuffType("ShamanicBaubles"), 10 * 60);
                    modPlayer.shamanOrbUnique = ShamanOrbUnique.NULL;

                    if (Main.myPlayer == player.whoAmI)
                    {
                        player.HealEffect(20, true);
                    }
                    player.statLife += 20;
                }
            }
        }
示例#20
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            //if (!(target.boss || target.type == NPCID.TargetDummy) && target.knockBackResist > 0f && slow)

            var owner = Main.player[projectile.owner];

            if (OrchidModShamanHelper.getNbShamanicBonds(owner, owner.GetModPlayer <OrchidModPlayer>(), mod) >= 2 && !target.boss && target.CanBeChasedBy() && target.knockBackResist > 0f)
            {
                target.AddBuff(ModContent.BuffType <Buffs.Debuffs.LeafSlow>(), 60 * 5);
            }
        }
示例#21
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer  = player.GetModPlayer <OrchidModPlayer>();
            int             BuffsCount = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            if (BuffsCount > 2)
            {
                this.NewShamanProjectile(position.X, position.Y, speedX, speedY, mod.ProjectileType("DepthBatonProjAlt"), damage - 10, knockBack, player.whoAmI);
            }
            return(true);
        }
示例#22
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 4)
     {
         Mod thoriumMod = OrchidMod.ThoriumMod;
         if (thoriumMod != null)
         {
             target.AddBuff((thoriumMod.BuffType("BerserkSoul")), 5 * 60);
         }
     }
 }
示例#23
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            for (int i = 0; i < nbBonds + 1; i++)
            {
                Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedByRandom(MathHelper.ToRadians(nbBonds + 1));
                this.NewShamanProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI);
            }
            return(false);
        }
示例#24
0
        public override void AI()
        {
            projectile.alpha += 30;

            if (projectile.timeLeft == 80)
            {
                storeVelocity = projectile.velocity;
                storeDamage   = projectile.damage;
            }

            if (projectile.timeLeft > 35)
            {
                projectile.velocity *= 0f;
                projectile.damage    = 0;
                dustScale           += 0.0195f;
            }

            if (projectile.timeLeft == 35)
            {
                projectile.damage       = storeDamage;
                projectile.velocity     = storeVelocity;
                projectile.extraUpdates = 1;

                OrchidModProjectile.spawnDustCircle(projectile.Center, 92, 20, 5, true, 1.5f, 1f, 1f, true, true, false, 0, 0, true);
                for (int i = 0; i < 5; i++)
                {
                    int index = Dust.NewDust(projectile.position, projectile.width, projectile.height, 92);
                    Main.dust[index].scale     = 1.5f;
                    Main.dust[index].velocity  = projectile.velocity.RotatedByRandom(MathHelper.ToRadians(20));
                    Main.dust[index].noGravity = true;
                }
            }

            for (int i = 0; i < 3; i++)
            {
                Vector2 Position = projectile.position;
                int     index2   = Dust.NewDust(Position, projectile.width, projectile.height, 92);
                Main.dust[index2].scale     = (float)90 * 0.010f + dustScale / 3;
                Main.dust[index2].velocity *= 0.2f;
                Main.dust[index2].noGravity = true;
            }

            if (!this.initialized)
            {
                this.initialized = true;
                Player                    player        = Main.player[projectile.owner];
                OrchidModPlayer           modPlayer     = player.GetModPlayer <OrchidModPlayer>();
                int                       newCrit       = 10 * OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) + modPlayer.shamanCrit + player.inventory[player.selectedItem].crit;
                OrchidModGlobalProjectile modProjectile = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>();
                modProjectile.baseCritChance = newCrit;
            }
        }
示例#25
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) == 5 && modPlayer.timer120 % 2 == 0)
            {
                modPlayer.shamanFireTimer++;
                modPlayer.shamanWaterTimer++;
                modPlayer.shamanAirTimer++;
                modPlayer.shamanEarthTimer++;
                modPlayer.shamanSpiritTimer++;
            }
        }
示例#26
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer         = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds           = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);
            int             numberProjectiles = 1 + Main.rand.Next(2);

            for (int i = 0; i < numberProjectiles; i++)
            {
                Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedByRandom(MathHelper.ToRadians(25));
                this.NewShamanProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, nbBonds < 3 ? type : mod.ProjectileType("FireBatScepterProjHoming"), damage, knockBack, player.whoAmI);
            }

            return(false);
        }
示例#27
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer  = player.GetModPlayer <OrchidModPlayer>();
            int             BuffsCount = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            modPlayer.shamanBuffTimer += 3;
            modPlayer.shamanAmber      = true;
            modPlayer.shamanAmethyst   = true;
            modPlayer.shamanTopaz      = true;
            modPlayer.shamanSapphire   = true;
            modPlayer.shamanEmerald    = true;
            modPlayer.shamanRuby       = true;
            modPlayer.shamanDamage    += 0.10f;
        }
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (Main.rand.Next(101) < 4 + OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) * 4)
            {
                this.NewShamanProjectile(position.X, position.Y, speedX, speedY, mod.ProjectileType("StrangePlatingScepterProjAlt"), damage * 2, knockBack, player.whoAmI);
            }
            else
            {
                this.NewShamanProjectile(position.X, position.Y, speedX, speedY, type, damage, knockBack, player.whoAmI);
            }
            return(false);
        }
示例#29
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod) > 2)
            {
                for (int i = 0; i < 2; i++)
                {
                    Vector2 projectileVelocity = (new Vector2(speedX, speedY).RotatedBy(MathHelper.ToRadians(i == 0 ? -20 : 20)));
                    this.NewShamanProjectile(position.X, position.Y, projectileVelocity.X, projectileVelocity.Y, mod.ProjectileType("TrueSanctifyProjAlt"), (int)(item.damage * 0.75), knockBack, item.owner);
                }
            }

            return(true);
        }
示例#30
0
        public override bool SafeShoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             nbBonds   = OrchidModShamanHelper.getNbShamanicBonds(player, modPlayer, mod);

            var proj = Main.projectile[this.NewShamanProjectile(position.X, position.Y, speedX, speedY, type, damage * 2, knockBack, player.whoAmI)];

            if (proj.modProjectile is Projectiles.WyvernMorayProj modProj)
            {
                modProj.Improved = (Main.rand.Next(101) < 4 + nbBonds * 4);
                proj.netUpdate   = true;
            }

            return(false);
        }