Exemplo n.º 1
0
 public override void SafeOnHitNPC(NPC target, OrchidModAlchemistNPC modTarget, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     if (modTarget.alchemistFire > 0)
     {
         damage = (int)(damage * 1.1f);
     }
 }
Exemplo n.º 2
0
        public void DrawCard(Item item, SpriteBatch spriteBatch, Vector2 position, Player player, OrchidModPlayer orchidPlayer, int maxReq, bool canRemove = true)
        {
            if (item == null || item.type < ItemID.None)
            {
                return;
            }

            var cardTexture = Main.itemTexture[item.type];
            var cardRect    = new Rectangle((int)position.X, (int)position.Y, cardTexture.Width, cardTexture.Height);

            spriteBatch.Draw(cardTexture, cardRect, Color.White);
            if (!canRemove)
            {
                spriteBatch.Draw(deckBlockTexture, new Rectangle(cardRect.X - 2, cardRect.Y - 2, deckBlockTexture.Width, deckBlockTexture.Height), Color.White);
            }

            if (cardRect.Contains(Main.MouseScreen.ToPoint()))
            {
                player.mouseInterface = true;

                if (hoverCardType != item.type)
                {
                    hoverCardType = item.type;
                    scrollValue   = 0;
                }

                // Scrolling
                {
                    int num   = -PlayerInput.ScrollWheelDelta / 120;
                    int sign  = Math.Sign(num);
                    int progr = FontOffsetY;

                    while (num != 0)
                    {
                        if (num < 0)
                        {
                            if (scrollValue >= progr)
                            {
                                scrollValue -= progr;
                            }
                        }
                        else
                        {
                            if (scrollValue < (scrollMax - 5 * progr))
                            {
                                scrollValue += progr;
                            }
                        }
                        num -= sign;
                    }
                }

                Rectangle tooltipRectangle = new Rectangle(drawZone.X + deckTexture.Width + 24, drawZone.Y + 14, Math.Abs(drawZone.Width - deckTexture.Width - 42), drawZone.Height - 28);
                DrawCardInfo(item, spriteBatch, tooltipRectangle, GetCardInfo(item, maxReq, canRemove));

                if ((Main.mouseLeft && Main.mouseLeftRelease || Main.mouseRight && Main.mouseRightRelease) && canRemove)
                {
                    OnCardClick(item, player, orchidPlayer);
                }
            }
        }
Exemplo n.º 3
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            if (modPlayer.shamanOrbBig != ShamanOrbBig.CHLOROPHYTE)
            {
                modPlayer.shamanOrbBig = ShamanOrbBig.CHLOROPHYTE;
                modPlayer.orbCountBig  = 0;
            }
            modPlayer.orbCountBig++;
            //modPlayer.sendOrbCountPackets();

            if (modPlayer.orbCountBig == 3)
            {
                Projectile.NewProjectile(player.Center.X - 30, player.position.Y - 30, 0f, 0f, mod.ProjectileType("ChlorophyteOrb"), 0, 0, projectile.owner, 0f, 0f);

                if (player.FindBuffIndex(mod.BuffType("ShamanicBaubles")) > -1)
                {
                    modPlayer.orbCountBig += 3;
                    Projectile.NewProjectile(player.Center.X - 15, player.position.Y - 38, 0f, 0f, mod.ProjectileType("ChlorophyteOrb"), 1, 0, projectile.owner, 0f, 0f);
                    player.ClearBuff(mod.BuffType("ShamanicBaubles"));
                    //modPlayer.sendOrbCountPackets();
                }
            }
            if (modPlayer.orbCountBig == 6)
            {
                Projectile.NewProjectile(player.Center.X - 19, player.position.Y - 38, 0f, 0f, mod.ProjectileType("ChlorophyteOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig == 9)
            {
                Projectile.NewProjectile(player.Center.X - 2, player.position.Y - 40, 0f, 0f, mod.ProjectileType("ChlorophyteOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig == 12)
            {
                Projectile.NewProjectile(player.Center.X + 15, player.position.Y - 38, 0f, 0f, mod.ProjectileType("ChlorophyteOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig == 15)
            {
                Projectile.NewProjectile(player.Center.X + 32, player.position.Y - 30, 0f, 0f, mod.ProjectileType("ChlorophyteOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig > 15)
            {
                Vector2 perturbedSpeed = new Vector2(projectile.velocity.X, projectile.velocity.Y).RotatedByRandom(MathHelper.ToRadians(20));
                Projectile.NewProjectile(player.Center.X, player.Center.Y - 50, perturbedSpeed.X, perturbedSpeed.Y, 228, projectile.damage, 0.0f, player.whoAmI, 0.0f, 0.0f);

                perturbedSpeed = new Vector2(projectile.velocity.X, projectile.velocity.Y).RotatedByRandom(MathHelper.ToRadians(20));
                Projectile.NewProjectile(player.Center.X - 16, player.Center.Y - 48, perturbedSpeed.X, perturbedSpeed.Y, 228, projectile.damage, 0.0f, player.whoAmI, 0.0f, 0.0f);

                perturbedSpeed = new Vector2(projectile.velocity.X, projectile.velocity.Y).RotatedByRandom(MathHelper.ToRadians(20));
                Projectile.NewProjectile(player.Center.X - 30, player.Center.Y - 40, perturbedSpeed.X, perturbedSpeed.Y, 228, projectile.damage, 0.0f, player.whoAmI, 0.0f, 0.0f);

                perturbedSpeed = new Vector2(projectile.velocity.X, projectile.velocity.Y).RotatedByRandom(MathHelper.ToRadians(20));
                Projectile.NewProjectile(player.Center.X + 16, player.Center.Y - 48, perturbedSpeed.X, perturbedSpeed.Y, 228, projectile.damage, 0.0f, player.whoAmI, 0.0f, 0.0f);

                perturbedSpeed = new Vector2(projectile.velocity.X, projectile.velocity.Y).RotatedByRandom(MathHelper.ToRadians(20));
                Projectile.NewProjectile(player.Center.X + 30, player.Center.Y - 40, perturbedSpeed.X, perturbedSpeed.Y, 228, projectile.damage, 0.0f, player.whoAmI, 0.0f, 0.0f);
                modPlayer.orbCountBig = -3;
            }
        }
Exemplo n.º 4
0
 public virtual void SafeOnHitNPC(NPC target, OrchidModAlchemistNPC modTarget, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
 }
Exemplo n.º 5
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     if (projectile.ai[1] != 1f && projectile.owner == Main.myPlayer)
     {
         modPlayer.gamblerSeedCount += 16 + (modPlayer.gamblerLuckySprout ? 5 : 0);
         if (modPlayer.gamblerSeedCount > 99)
         {
             modPlayer.gamblerSeedCount = 0;
             Vector2 vel      = (new Vector2(0f, -3f).RotatedBy(MathHelper.ToRadians(10)));
             int     projType = ProjectileType <Gambler.Projectiles.HellCardProjAlt>();
             bool    dummy    = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>().gamblerDummyProj;
             OrchidModGamblerHelper.DummyProjectile(Projectile.NewProjectile(player.Center.X, player.Center.Y, vel.X, vel.Y, projType, projectile.damage, projectile.knockBack, projectile.owner), dummy);
             for (int i = 0; i < 5; i++)
             {
                 int dustType = 31;
                 Main.dust[Dust.NewDust(player.Center, 10, 10, dustType)].velocity *= 0.25f;
             }
         }
     }
 }
Exemplo n.º 6
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     this.gamblingChipChance = 3;
 }
Exemplo n.º 7
0
 public override void Reaction(Player player, OrchidModPlayer modPlayer)
 {
 }
 public static void BlankEffect(AlchemistHiddenReactionRecipe recipe, Player player, OrchidModPlayer modPlayer)
 {
 }
 public virtual void Reaction(Player player, OrchidModPlayer modPlayer)
 {
 }
Exemplo n.º 10
0
        public override void SafeAI()
        {
            Player          player    = Main.player[projectile.owner];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();
            int             cardType  = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>().gamblerDummyProj ? modPlayer.gamblerCardDummy.type : modPlayer.gamblerCardCurrent.type;

            projectile.velocity.Y += (projectile.wet || projectile.lavaWet || projectile.honeyWet) ? projectile.velocity.Y > -5f ? -0.5f : 0f : projectile.velocity.Y < 5f ? 0.3f : 0f;
            projectile.frame       = projectile.velocity.Y < 0f ? 1 : 0;
            this.justHit          -= this.justHit > 0 ? 1 : 0;

            this.velocityStuck = projectile.Center.Y == oldPositionY ? this.velocityStuck + 1 : 0;
            this.oldPositionY  = 0f + projectile.Center.Y;

            if (projectile.velocity.X > 5f)
            {
                projectile.velocity.X = 5f;
            }
            if (projectile.velocity.X < -5f)
            {
                projectile.velocity.X = -5f;
            }

            if (!this.initialized)
            {
                this.baseDamage  = projectile.damage;
                this.initialized = true;
            }

            if (Main.myPlayer == projectile.owner)
            {
                if (velocityStuck >= 5)
                {
                    projectile.velocity.Y = -5;
                    this.velocityStuck    = 0;
                }
                if (Main.mouseLeft && cardType == ItemType <Gambler.Weapons.Cards.JungleSlimeCard>() && modPlayer.GamblerDeckInHand)
                {
                    Vector2 newMove    = new Vector2(Main.screenPosition.X + (float)Main.mouseX, (float)projectile.Center.Y) - projectile.Center;
                    float   distanceTo = (float)Math.Sqrt(newMove.X * newMove.X + newMove.Y * newMove.Y);
                    if (distanceTo > 5f)
                    {
                        if ((float)(Main.screenPosition.X + Main.mouseX) > projectile.Center.X)
                        {
                            projectile.velocity.X += projectile.velocity.X < 6f ? this.justHit > 0 ? 0.15f : 0.25f : 0f;
                        }
                        else
                        {
                            projectile.velocity.X -= projectile.velocity.X > -6f ? this.justHit > 0 ? 0.15f : 0.25f : 0f;
                        }
                    }
                    else
                    {
                        if (projectile.velocity.Length() > 0.01f)
                        {
                            projectile.velocity.X *= 0.9f;
                        }
                    }

                    bool fallThrough = Main.screenPosition.Y + Main.mouseY > projectile.Center.Y;
                    if (projectile.ai[1] == 0f && fallThrough)
                    {
                        projectile.ai[1]     = 1f;
                        projectile.netUpdate = true;
                    }
                    else if (projectile.ai[1] == 1f && !fallThrough)
                    {
                        projectile.ai[1]     = 0f;
                        projectile.netUpdate = true;
                    }

                    int velocityXBy1000    = (int)(newMove.X * 1000f);
                    int oldVelocityXBy1000 = (int)(projectile.velocity.X * 1000f);

                    if (velocityXBy1000 != oldVelocityXBy1000)
                    {
                        projectile.netUpdate = true;
                    }
                }
                else
                {
                    projectile.Kill();
                }
            }
        }
Exemplo n.º 11
0
        public override void AI()
        {
            Player          player    = Main.player[projectile.owner];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            if (modPlayer.timer120 == 65)
            {
                projectile.frame = 1;
            }
            if (modPlayer.timer120 == 70)
            {
                projectile.frame = 2;
            }
            if (modPlayer.timer120 == 75)
            {
                projectile.frame = 3;
            }
            if (modPlayer.timer120 == 80)
            {
                projectile.frame = 4;
            }
            if (modPlayer.timer120 == 85)
            {
                projectile.frame = 5;
            }
            if (modPlayer.timer120 == 90)
            {
                projectile.frame = 6;
            }
            if (modPlayer.timer120 == 95)
            {
                projectile.frame = 7;
            }
            if (modPlayer.timer120 == 100)
            {
                projectile.frame = 0;
            }

            if (Main.rand.Next(5) == 0)
            {
                int dust = Dust.NewDust(projectile.position, projectile.width, projectile.height, 169);
                Main.dust[dust].noGravity = true;
                Main.dust[dust].velocity /= 2f;
            }

            if (projectile.localAI[0] == 0f)
            {
                AdjustMagnitude(ref projectile.velocity);
                projectile.localAI[0] = 1f;
            }
            Vector2 move = Vector2.Zero;
            float   distance;

            if (projectile.timeLeft < 300)
            {
                distance = 1000f;
            }
            else
            {
                distance = 10f;
            }
            bool target = false;

            for (int k = 0; k < 200; k++)
            {
                if (Main.npc[k].active && !Main.npc[k].dontTakeDamage && !Main.npc[k].friendly && Main.npc[k].lifeMax > 5 && Main.npc[k].type != NPCID.TargetDummy)
                {
                    Vector2 newMove    = Main.npc[k].Center - projectile.Center;
                    float   distanceTo = (float)Math.Sqrt(newMove.X * newMove.X + newMove.Y * newMove.Y);
                    if (distanceTo < distance)
                    {
                        move     = newMove;
                        distance = distanceTo;
                        target   = true;
                    }
                }
            }
            if (target)
            {
                AdjustMagnitude(ref move);
                projectile.velocity = (10 * projectile.velocity + move) / 7f;
                AdjustMagnitude(ref projectile.velocity);
            }
        }
Exemplo n.º 12
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            if (justHit == 0)
            {
                OrchidModProjectile.spawnDustCircle(projectile.Center, 178, 10, 10, true, 1.5f, 1f, 2f);
                projectile.damage += 4;

                bool dummy = projectile.GetGlobalProjectile <OrchidModGlobalProjectile>().gamblerDummyProj;
                for (int i = 0; i < 5; i++)
                {
                    int     projType = ProjectileType <Gambler.Projectiles.JungleSlimeCardProjAlt>();
                    Vector2 vel      = new Vector2(0f, -3f).RotatedBy(MathHelper.ToRadians(15 * (i - 2)));
                    OrchidModGamblerHelper.DummyProjectile(Projectile.NewProjectile(projectile.position.X + (5 * (i - 1)), projectile.position.Y - 10, vel.X, vel.Y, projType, (int)(projectile.damage * 0.75f), projectile.knockBack, projectile.owner), dummy);
                }
            }

            projectile.velocity.Y  = -8;
            projectile.velocity.X *= 0.5f;
            this.justHit           = 30;
        }
Exemplo n.º 13
0
 public override void Reaction(Player player, OrchidModPlayer modPlayer)
 {
     player.QuickSpawnItem(ItemType <Alchemist.Misc.MushroomThread>(), 1);
 }
Exemplo n.º 14
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            Mod thoriumMod = OrchidMod.ThoriumMod;

            if (thoriumMod != null && Main.rand.Next(2) == 0)
            {
                target.AddBuff((thoriumMod.BuffType("LightCurse")), 1 * 60);
            }

            if (modPlayer.shamanOrbBig != ShamanOrbBig.VALADIUM)
            {
                modPlayer.shamanOrbBig = ShamanOrbBig.VALADIUM;
                modPlayer.orbCountBig  = 0;
            }
            modPlayer.orbCountBig++;

            if (modPlayer.orbCountBig == 3)
            {
                Projectile.NewProjectile(player.Center.X - 30, player.position.Y - 30, 0f, 0f, mod.ProjectileType("ValadiumOrb"), 0, 0, projectile.owner, 0f, 0f);

                if (player.FindBuffIndex(mod.BuffType("ShamanicBaubles")) > -1)
                {
                    modPlayer.orbCountBig += 3;
                    Projectile.NewProjectile(player.Center.X - 15, player.position.Y - 38, 0f, 0f, mod.ProjectileType("ValadiumOrb"), 1, 0, projectile.owner, 0f, 0f);
                    player.ClearBuff(mod.BuffType("ShamanicBaubles"));
                }
            }
            if (modPlayer.orbCountBig == 6)
            {
                Projectile.NewProjectile(player.Center.X - 15, player.position.Y - 38, 0f, 0f, mod.ProjectileType("ValadiumOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig == 9)
            {
                Projectile.NewProjectile(player.Center.X, player.position.Y - 40, 0f, 0f, mod.ProjectileType("ValadiumOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig == 12)
            {
                Projectile.NewProjectile(player.Center.X + 15, player.position.Y - 38, 0f, 0f, mod.ProjectileType("ValadiumOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig == 15)
            {
                Projectile.NewProjectile(player.Center.X + 30, player.position.Y - 30, 0f, 0f, mod.ProjectileType("ValadiumOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountBig > 15)
            {
                knockback = 0f;
                if (!(target.boss || target.type == NPCID.TargetDummy) && target.knockBackResist > 0f)
                {
                    target.velocity.X = projectile.velocity.X > 0f ? 8f : -8f;
                    target.velocity.Y = -10f;
                    target.AddBuff((mod.BuffType("AquaBump")), 10 * 60);
                }
                spawnDustCircle(70, 35);
                modPlayer.orbCountBig = -3;
            }
        }
Exemplo n.º 15
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            Player          player    = Main.player[Main.myPlayer];
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            Vector2 vector = new Vector2((float)((int)(Main.LocalPlayer.position.X - Main.screenPosition.X) - Main.GameViewMatrix.Translation.X - (float)(Main.LocalPlayer.bodyFrame.Width / 2) + (float)(Main.LocalPlayer.width / 2)), (float)((int)(Main.LocalPlayer.position.Y - Main.screenPosition.Y) - Main.GameViewMatrix.Translation.Y + (float)Main.LocalPlayer.height - (float)Main.LocalPlayer.bodyFrame.Height + 12f + player.gfxOffY)) + Main.LocalPlayer.bodyPosition + new Vector2((float)(Main.LocalPlayer.bodyFrame.Width / 2));

            vector *= Main.GameViewMatrix.Zoom;
            vector /= Main.UIScale;

            this.Left.Set(vector.X + 30f, 0f);
            this.Top.Set(vector.Y - 50f, 0f);

            CalculatedStyle dimensions = GetDimensions();
            Point           point      = new Point((int)dimensions.X, (int)dimensions.Y - 100);
            int             width      = (int)Math.Ceiling(dimensions.Width);
            int             height     = (int)Math.Ceiling(dimensions.Height);

            if (!player.dead)
            {
                if (modPlayer.gamblerUIChipSpinDisplay)
                {
                    int     widthArrow  = chipDirection.Width;
                    int     heightArrow = chipDirection.Height;
                    Vector2 position    = new Vector2(point.X - 30, point.Y + 150);
                    float   angle       = MathHelper.ToRadians(modPlayer.gamblerChipSpin);
                    //	new Rectangle(point.X - 30, point.Y + 50, widthArrow, heightArrow);
                    spriteBatch.Draw(chipDirection, position, null, backgroundColor, angle, chipDirection.Size() * 0.5f, 1f, SpriteEffects.None, 0f);
                    //spriteBatch.Draw(texture, position, null, color, projectile.rotation, texture.Size() * 0.5f, projectile.scale, effect, 0f);
                }

                if (modPlayer.gamblerUIDeckDisplay)
                {
                    if (player.talkNPC != -1)
                    {
                        spriteBatch.Draw(UIDeckbuilding, new Rectangle(point.X - 100, point.Y - 60, 140, 138), backgroundColor);
                        int    offSetX       = 0;
                        int    offSetY       = 0;
                        string msg           = "";
                        string msg2          = "";
                        string msg3          = "";
                        int[]  nbCards       = new int[20];
                        int    maxReq        = 0;
                        int    playerNbCards = OrchidModGamblerHelper.getNbGamblerCards(player, modPlayer);
                        for (int i = 0; i < 20; i++)
                        {
                            nbCards[i] = 0;
                        }
                        for (int i = 0; i < playerNbCards; i++)
                        {
                            Item      currentItem      = modPlayer.gamblerCardsItem[i];
                            Texture2D currentTexture   = Main.itemTexture[currentItem.type];
                            Rectangle currentRectangle = new Rectangle(point.X - 92 + offSetX, point.Y - 52 + offSetY, 20, 26);
                            spriteBatch.Draw(currentTexture, currentRectangle, backgroundColor);
                            offSetX += 26;
                            if ((i - 4) % 5 == 0)
                            {
                                offSetX  = 0;
                                offSetY += 32;
                            }
                            if (currentItem.type != 0)
                            {
                                OrchidModGlobalItem orchidItem = currentItem.GetGlobalItem <OrchidModGlobalItem>();
                                int cardReq = orchidItem.gamblerCardRequirement;
                                nbCards[cardReq]++;
                                maxReq = cardReq > maxReq ? cardReq : maxReq;
                            }
                        }

                        offSetX = 0;
                        offSetY = 0;

                        for (int i = 0; i < playerNbCards; i++)
                        {
                            Item      currentItem      = modPlayer.gamblerCardsItem[i];
                            Rectangle currentRectangle = new Rectangle(point.X - 92 + offSetX, point.Y - 52 + offSetY, 20, 26);
                            offSetX += 26;
                            if ((i - 4) % 5 == 0)
                            {
                                offSetX  = 0;
                                offSetY += 32;
                            }
                            if (currentItem.type != 0)
                            {
                                OrchidModGlobalItem orchidItem = currentItem.GetGlobalItem <OrchidModGlobalItem>();
                                int  cardReq   = orchidItem.gamblerCardRequirement;
                                bool canRemove = (playerNbCards > maxReq + 1) || (cardReq == maxReq);
                                if (currentRectangle.Contains(new Point((int)Main.MouseScreen.X, (int)Main.MouseScreen.Y)))
                                {
                                    if (((Main.mouseLeft && Main.mouseLeftRelease) || (Main.mouseRight && Main.mouseRightRelease)) && canRemove)
                                    {
                                        player.QuickSpawnItem(currentItem.type, 1);
                                        OrchidModGamblerHelper.removeGamblerCard(currentItem, player, modPlayer);
                                        if (OrchidModGamblerHelper.getNbGamblerCards(player, modPlayer) > 0)
                                        {
                                            OrchidModGamblerHelper.clearGamblerCardCurrent(player, modPlayer);
                                            OrchidModGamblerHelper.clearGamblerCardsNext(player, modPlayer);
                                            modPlayer.gamblerShuffleCooldown = 0;
                                            modPlayer.gamblerRedraws         = 0;
                                            OrchidModGamblerHelper.drawGamblerCard(player, modPlayer);
                                        }
                                        else
                                        {
                                            OrchidModGamblerHelper.onRespawnGambler(player, modPlayer);
                                        }
                                    }
                                    msg  = currentItem.Name;
                                    msg2 = canRemove ? "Can be removed" : "Cannot be removed";
                                    msg3 = canRemove ? "" : "Your highest cost card requires at least " + maxReq + " cards";
                                }
                                if (!canRemove)
                                {
                                    Rectangle blockRectangle = new Rectangle(currentRectangle.X - 2, currentRectangle.Y - 2, currentRectangle.Width + 4, currentRectangle.Height + 4);
                                    spriteBatch.Draw(UIDeckbuildingBlock, blockRectangle, backgroundColor);
                                }
                            }
                        }
                        if (msg != "")
                        {
                            ChatManager.DrawColorCodedStringWithShadow(Main.spriteBatch, Main.fontMouseText, msg, Main.MouseScreen + new Vector2(15f, 15f), new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor), 0f, Vector2.Zero, Vector2.One, -1f, 2f);
                        }
                        if (msg2 != "")
                        {
                            ChatManager.DrawColorCodedStringWithShadow(Main.spriteBatch, Main.fontMouseText, msg2, Main.MouseScreen + new Vector2(15f, 40f), new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor), 0f, Vector2.Zero, Vector2.One, -1f, 2f);
                        }
                        if (msg3 != "")
                        {
                            ChatManager.DrawColorCodedStringWithShadow(Main.spriteBatch, Main.fontMouseText, msg2, Main.MouseScreen + new Vector2(15f, 40f), new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor), 0f, Vector2.Zero, Vector2.One, -1f, 2f);
                        }
                    }
                    else
                    {
                        modPlayer.gamblerUIDeckDisplay = false;
                    }
                }

                if ((modPlayer.gamblerUIDisplayTimer > 0 || modPlayer.gamblerChips > 0) && modPlayer.gamblerUIFightDisplay)
                {
                    if (modPlayer.gamblerCardCurrent.type != this.cardID)
                    {
                        UICard      = this.getUiCardTexture(modPlayer, 0);
                        this.cardID = modPlayer.gamblerCardCurrent.type;
                    }

                    if (modPlayer.gamblerCardNext[0].type != this.cardIDNext1)
                    {
                        UICardNext1      = this.getUiCardTexture(modPlayer, 1);
                        this.cardIDNext1 = modPlayer.gamblerCardNext[0].type;
                    }

                    if (modPlayer.gamblerCardNext[1].type != this.cardIDNext2)
                    {
                        UICardNext2      = this.getUiCardTexture(modPlayer, 2);
                        this.cardIDNext2 = modPlayer.gamblerCardNext[1].type;
                    }

                    if (modPlayer.gamblerCardNext[2].type != this.cardIDNext3)
                    {
                        UICardNext3      = this.getUiCardTexture(modPlayer, 3);
                        this.cardIDNext3 = modPlayer.gamblerCardNext[2].type;
                    }

                    int       drawHeight  = 70;
                    int       drawSide    = 0;
                    int       leftOffset  = 0;
                    int       leftOffset2 = 0;
                    Texture2D chip        = chip1;

                    spriteBatch.Draw(UIDeck, new Rectangle(point.X + 8, point.Y + 160, 26, 32), backgroundColor);
                    spriteBatch.Draw(UICard, new Rectangle(point.X + 8, point.Y + 160, 20, 26), backgroundColor);

                    if (modPlayer.gamblerSeeCards > 2)
                    {
                        spriteBatch.Draw(UICardNext3, new Rectangle(point.X + 40, point.Y + 194, 20, 26), backgroundColor);
                    }
                    if (modPlayer.gamblerSeeCards > 1)
                    {
                        spriteBatch.Draw(UICardNext2, new Rectangle(point.X + 24, point.Y + 194, 20, 26), backgroundColor);
                    }
                    if (modPlayer.gamblerSeeCards > 0)
                    {
                        spriteBatch.Draw(UICardNext1, new Rectangle(point.X + 8, point.Y + 194, 20, 26), backgroundColor);
                    }

                    for (int i = 0; i < modPlayer.gamblerRedraws; i++)
                    {
                        spriteBatch.Draw(UIRedraw, new Rectangle(point.X + 20 - drawSide, point.Y + 94, 14, 20), backgroundColor);
                        drawSide += 4;
                    }

                    int unit = (int)(modPlayer.gamblerShuffleCooldownMax / 34) + 1;
                    int val  = 0;
                    spriteBatch.Draw(ressourceBar, new Rectangle(point.X + 36, point.Y + 116, 12, 76), backgroundColor);
                    while (val < modPlayer.gamblerShuffleCooldown)
                    {
                        spriteBatch.Draw(ressourceBarFull, new Rectangle(point.X + 40, point.Y + 116 + drawHeight, 4, 2), backgroundColor);
                        drawHeight -= 2;
                        val        += unit;
                    }

                    if (val > 0)
                    {
                        drawHeight += 2;
                        spriteBatch.Draw(ressourceBarTop, new Rectangle(point.X + 40, point.Y + 116 + drawHeight, 4, 2), backgroundColor);
                    }

                    if (modPlayer.gamblerDiceValue > 0)
                    {
                        Texture2D dice = dice1;
                        switch (modPlayer.gamblerDiceValue)
                        {
                        case 1:
                            dice = dice1;
                            break;

                        case 2:
                            dice = dice2;
                            break;

                        case 3:
                            dice = dice3;
                            break;

                        case 4:
                            dice = dice4;
                            break;

                        case 5:
                            dice = dice5;
                            break;

                        case 6:
                            dice = dice6;
                            break;

                        default:
                            break;
                        }
                        spriteBatch.Draw(dice, new Rectangle(point.X + 36, point.Y + 90, 24, 24), backgroundColor);

                        drawHeight = 70;
                        val        = 0;

                        spriteBatch.Draw(ressourceBar, new Rectangle(point.X + 50, point.Y + 116, 12, 76), backgroundColor);
                        while (val < modPlayer.gamblerDiceDuration)
                        {
                            spriteBatch.Draw(ressourceBarDiceFull, new Rectangle(point.X + 54, point.Y + 116 + drawHeight, 4, 2), backgroundColor);
                            drawHeight -= 2;
                            val        += 60;
                        }

                        if (val > 0)
                        {
                            spriteBatch.Draw(ressourceBarDiceTop, new Rectangle(point.X + 54, point.Y + 116 + drawHeight, 4, 2), backgroundColor);
                        }
                    }

                    drawHeight = 36;
                    for (int i = 1; i < modPlayer.gamblerChips + 1; i++)
                    {
                        spriteBatch.Draw(chip, new Rectangle(point.X + 18 - leftOffset - leftOffset2, point.Y + 116 + drawHeight, 14, 6), backgroundColor);

                        drawHeight -= 4;
                        if (i % 10 == 0)
                        {
                            drawHeight  = 36;
                            leftOffset2 = leftOffset2 == 4 ? 0 : 4;
                            switch (i)
                            {
                            case 10:
                                chip = chip2;
                                break;

                            case 20:
                                chip = chip3;
                                break;

                            case 30:
                                chip = chip4;
                                break;

                            case 40:
                                chip = chip5;
                                break;

                            default:
                                break;
                            }
                        }
                        leftOffset = leftOffset == 2 ? 0 : 2;
                    }
                }
            }
        }
Exemplo n.º 16
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            Mod thoriumMod = OrchidMod.ThoriumMod;

            if (thoriumMod != null)
            {
                target.AddBuff((thoriumMod.BuffType("Freezing")), 2 * 60);
            }
        }
Exemplo n.º 17
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            modPlayer.gamblerSlimyLollipop = true;
        }
Exemplo n.º 18
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
     if (modPlayer.gamblerElementalLens)
     {
         target.AddBuff(153, 60 * 2);                 // Shadowflame
     }
 }
Exemplo n.º 19
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            if (this.usedScale != Main.UIScale)
            {
                this.usedScale = Main.UIScale;
                this.Left.Set(Main.screenWidth - 100f, 0f);
                this.Top.Set(Main.screenHeight - 130f, 0f);
            }

            Player          player     = Main.player[Main.myPlayer];
            OrchidModPlayer modPlayer  = player.GetModPlayer <OrchidModPlayer>();
            CalculatedStyle dimensions = GetDimensions();
            Point           point      = new Point((int)dimensions.X, (int)dimensions.Y - 100);

            if (Main.invasionType != 0 || Main.pumpkinMoon || Main.snowMoon)
            {
                point.Y -= 60;
            }
            int width  = (int)Math.Ceiling(dimensions.Width);
            int height = (int)Math.Ceiling(dimensions.Height);

            if (!Main.playerInventory && !player.dead)
            {
                int buffTimerVal = ((int)(modPlayer.shamanBuffTimer * 60 / 25));
                buffTimerVal += buffTimerVal == 0 ? 1 : 0;
                int buffTimerValRef = modPlayer.shamanBuffTimer * 60 - buffTimerVal;

                if (modPlayer.UIDisplayTimer > 0)
                {
                    spriteBatch.Draw(shamanUIMainFrame, new Rectangle(point.X, point.Y, width, height), backgroundColor);

                    this.drawnBondEffectBar(1, 100 - modPlayer.shamanFireBondLoading, spriteBatch, point);
                    this.drawnBondEffectBar(2, 100 - modPlayer.shamanWaterBondLoading, spriteBatch, point);
                    this.drawnBondEffectBar(3, 100 - modPlayer.shamanAirBondLoading, spriteBatch, point);
                    this.drawnBondEffectBar(4, 100 - modPlayer.shamanEarthBondLoading, spriteBatch, point);
                    this.drawnBondEffectBar(5, 100 - modPlayer.shamanSpiritBondLoading, spriteBatch, point);

                    if (modPlayer.shamanFireTimer > 0)
                    {
                        spriteBatch.Draw(FireSymbolBasic, new Rectangle(point.X + 70, point.Y + 8, width / (94 / 18), height / (180 / 18)), backgroundColor);
                        int timerRef = modPlayer.shamanFireTimer - buffTimerVal;
                        timerRef = timerRef > modPlayer.shamanBuffTimer * 60 - buffTimerVal ? buffTimerValRef - buffTimerVal : timerRef;
                        this.drawDuration(timerRef, 24, buffTimerVal, spriteBatch, point);

                        List <Texture2D> symbolsList = new List <Texture2D>();
                        if (modPlayer.shamanFire)
                        {
                            symbolsList.Add(SymbolFire);
                        }
                        if (modPlayer.shamanIce)
                        {
                            symbolsList.Add(SymbolIce);
                        }
                        if (modPlayer.shamanPoison)
                        {
                            symbolsList.Add(SymbolPoison);
                        }
                        if (modPlayer.shamanDemonite)
                        {
                            symbolsList.Add(SymbolDemonite);
                        }
                        if (modPlayer.shamanVenom)
                        {
                            symbolsList.Add(SymbolVenom);
                        }
                        if (modPlayer.shamanSmite)
                        {
                            symbolsList.Add(SymbolSmite);
                        }
                        if (modPlayer.shamanRuby)
                        {
                            symbolsList.Add(SymbolRuby);
                        }

                        this.drawSymbols(2, symbolsList, spriteBatch, point);
                    }

                    if (modPlayer.shamanWaterTimer > 0)
                    {
                        spriteBatch.Draw(WaterSymbolBasic, new Rectangle(point.X + 70, point.Y + 44, width / (94 / 18), height / (180 / 18)), backgroundColor);
                        int timerRef = modPlayer.shamanWaterTimer - buffTimerVal;
                        timerRef = timerRef > modPlayer.shamanBuffTimer * 60 - buffTimerVal ? buffTimerValRef - buffTimerVal : timerRef;
                        this.drawDuration(timerRef, 60, buffTimerVal, spriteBatch, point);

                        List <Texture2D> symbolsList = new List <Texture2D>();
                        if (modPlayer.shamanWaterHoney)
                        {
                            symbolsList.Add(SymbolWaterHoney);
                        }
                        if (modPlayer.shamanSkull)
                        {
                            symbolsList.Add(SymbolSkull);
                        }
                        if (modPlayer.shamanDestroyer)
                        {
                            symbolsList.Add(SymbolDestroyer);
                        }
                        if (modPlayer.shamanSapphire)
                        {
                            symbolsList.Add(SymbolSapphire);
                        }

                        this.drawSymbols(38, symbolsList, spriteBatch, point);
                    }

                    if (modPlayer.shamanAirTimer > 0)
                    {
                        spriteBatch.Draw(AirSymbolBasic, new Rectangle(point.X + 70, point.Y + 80, width / (94 / 18), height / (180 / 18)), backgroundColor);
                        int timerRef = modPlayer.shamanAirTimer - buffTimerVal;
                        timerRef = timerRef > modPlayer.shamanBuffTimer * 60 - buffTimerVal ? buffTimerValRef - buffTimerVal : timerRef;
                        this.drawDuration(timerRef, 96, buffTimerVal, spriteBatch, point);

                        List <Texture2D> symbolsList = new List <Texture2D>();
                        if (modPlayer.shamanFeather)
                        {
                            symbolsList.Add(SymbolFeather);
                        }
                        if (modPlayer.shamanHarpyAnklet)
                        {
                            symbolsList.Add(SymbolAnklet);
                        }
                        if (modPlayer.shamanDripping)
                        {
                            symbolsList.Add(SymbolLava);
                        }
                        if (modPlayer.shamanWyvern)
                        {
                            symbolsList.Add(SymbolWyvern);
                        }
                        if (modPlayer.shamanEmerald)
                        {
                            symbolsList.Add(SymbolEmerald);
                        }

                        this.drawSymbols(74, symbolsList, spriteBatch, point);
                    }

                    if (modPlayer.shamanEarthTimer > 0)
                    {
                        spriteBatch.Draw(EarthSymbolBasic, new Rectangle(point.X + 70, point.Y + 116, width / (94 / 18), height / (180 / 18)), backgroundColor);
                        int timerRef = modPlayer.shamanEarthTimer - buffTimerVal;
                        timerRef = timerRef > modPlayer.shamanBuffTimer * 60 - buffTimerVal ? buffTimerValRef - buffTimerVal : timerRef;
                        this.drawDuration(timerRef, 132, buffTimerVal, spriteBatch, point);

                        List <Texture2D> symbolsList = new List <Texture2D>();
                        if (modPlayer.shamanHoney)
                        {
                            symbolsList.Add(SymbolBee);
                        }
                        if (modPlayer.shamanAmber)
                        {
                            symbolsList.Add(SymbolAmber);
                        }
                        if (modPlayer.shamanCrimtane)
                        {
                            symbolsList.Add(SymbolCrimtane);
                        }
                        if (modPlayer.shamanRage)
                        {
                            symbolsList.Add(SymbolRage);
                        }
                        if (modPlayer.shamanHeavy)
                        {
                            symbolsList.Add(SymbolHeavy);
                        }
                        if (modPlayer.shamanForest)
                        {
                            symbolsList.Add(SymbolForest);
                        }
                        if (modPlayer.shamanDiabolist)
                        {
                            symbolsList.Add(SymbolDiabolist);
                        }
                        if (modPlayer.shamanTopaz)
                        {
                            symbolsList.Add(SymbolTopaz);
                        }

                        this.drawSymbols(110, symbolsList, spriteBatch, point);
                    }

                    if (modPlayer.shamanSpiritTimer > 0)
                    {
                        spriteBatch.Draw(SpiritSymbolBasic, new Rectangle(point.X + 70, point.Y + 152, width / (94 / 18), height / (180 / 18)), backgroundColor);
                        int timerRef = modPlayer.shamanSpiritTimer - buffTimerVal;
                        timerRef = timerRef > modPlayer.shamanBuffTimer * 60 - buffTimerVal ? buffTimerValRef - buffTimerVal : timerRef;
                        this.drawDuration(timerRef, 168, buffTimerVal, spriteBatch, point);

                        List <Texture2D> symbolsList = new List <Texture2D>();
                        if (modPlayer.shamanAmethyst)
                        {
                            symbolsList.Add(SymbolAmethyst);
                        }

                        this.drawSymbols(146, symbolsList, spriteBatch, point);
                    }
                }
            }
        }
Exemplo n.º 20
0
        public override void UpdateEquip(Player player)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            modPlayer.gamblerDamage += 0.1f;
        }
Exemplo n.º 21
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            modPlayer.shamanBuffTimer += 3;
        }
Exemplo n.º 22
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            Player player = Main.LocalPlayer;

            Vector2 position = (player.position + new Vector2(player.width * 0.5f, player.gfxOffY + player.gravDir > 0 ? player.height - 10 + player.gfxOffY : 10 + player.gfxOffY)).Floor();

            position = Vector2.Transform(position - Main.screenPosition, Main.GameViewMatrix.EffectMatrix * Main.GameViewMatrix.ZoomMatrix) / Main.UIScale;

            this.Left.Set(position.X, 0f);
            this.Top.Set(position.Y, 0f);

            CalculatedStyle dimensions = GetDimensions();
            Point           point      = new Point((int)dimensions.X, (int)dimensions.Y);
            OrchidModPlayer modPlayer  = player.GetModPlayer <OrchidModPlayer>();

            if (!player.dead)
            {
                if (modPlayer.UIDisplayTimer > 0)
                {
                    int   buffTimer     = (60 * modPlayer.shamanBuffTimer) / 3;
                    int   attackTimer   = modPlayer.shamanFireTimer;
                    int   defenseTimer  = modPlayer.shamanWaterTimer;
                    int   criticalTimer = modPlayer.shamanAirTimer;
                    int   regenTimer    = modPlayer.shamanEarthTimer;
                    int   speedTimer    = modPlayer.shamanSpiritTimer;
                    int[] currentTimers = new int[] { 0, 0, 0, 0, 0 };
                    int   lastElement   = 0;

                    currentTimers[0] = attackTimer > buffTimer * 2 ? 3 : attackTimer > buffTimer ? 2 : attackTimer > 0 ? 1 : 0;
                    currentTimers[1] = defenseTimer > buffTimer * 2 ? 3 : defenseTimer > buffTimer ? 2 : defenseTimer > 0 ? 1 : 0;
                    currentTimers[2] = criticalTimer > buffTimer * 2 ? 3 : criticalTimer > buffTimer ? 2 : criticalTimer > 0 ? 1 : 0;
                    currentTimers[3] = regenTimer > buffTimer * 2 ? 3 : regenTimer > buffTimer ? 2 : regenTimer > 0 ? 1 : 0;
                    currentTimers[4] = speedTimer > buffTimer * 2 ? 3 : speedTimer > buffTimer ? 2 : speedTimer > 0 ? 1 : 0;

                    for (int i = 0; i < 5; i++)
                    {
                        if (currentTimers[i] != this.shamanTimers[i])
                        {
                            String str = "";
                            this.shamanTimers[i] = currentTimers[i];
                            if (i == 0)
                            {
                                switch (currentTimers[i])
                                {
                                case 1:
                                    str = "Fire3";
                                    break;

                                case 2:
                                    str = "Fire2";
                                    break;

                                case 3:
                                    str = "Fire1";
                                    break;

                                default:
                                    str = "Disabled";
                                    break;
                                }
                                symbolAttack = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/Character/" + str);
                            }
                            else if (i == 1)
                            {
                                switch (currentTimers[i])
                                {
                                case 1:
                                    str = "Water3";
                                    break;

                                case 2:
                                    str = "Water2";
                                    break;

                                case 3:
                                    str = "Water1";
                                    break;

                                default:
                                    str = "Disabled";
                                    break;
                                }
                                symbolDefense = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/Character/" + str);
                            }
                            else if (i == 2)
                            {
                                switch (currentTimers[i])
                                {
                                case 1:
                                    str = "Wind3";
                                    break;

                                case 2:
                                    str = "Wind2";
                                    break;

                                case 3:
                                    str = "Wind1";
                                    break;

                                default:
                                    str = "Disabled";
                                    break;
                                }
                                symbolCritical = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/Character/" + str);
                            }
                            else if (i == 3)
                            {
                                switch (currentTimers[i])
                                {
                                case 1:
                                    str = "Earth3";
                                    break;

                                case 2:
                                    str = "Earth2";
                                    break;

                                case 3:
                                    str = "Earth1";
                                    break;

                                default:
                                    str = "Disabled";
                                    break;
                                }
                                symbolRegeneration = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/Character/" + str);
                            }
                            else if (i == 4)
                            {
                                switch (currentTimers[i])
                                {
                                case 1:
                                    str = "Spirit3";
                                    break;

                                case 2:
                                    str = "Spirit2";
                                    break;

                                case 3:
                                    str = "Spirit1";
                                    break;

                                default:
                                    str = "Disabled";
                                    break;
                                }
                                symbolSpeed = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/Character/" + str);
                            }
                        }
                    }

                    int drawSize = 12;
                    int offSetY  = modPlayer.alchemistPotencyDisplayTimer > 0 ? 50 : 20;

                    spriteBatch.Draw(symbolAttack, new Rectangle(point.X - 38, point.Y + offSetY, drawSize, drawSize), backgroundColor);
                    spriteBatch.Draw(symbolDefense, new Rectangle(point.X - 24, point.Y + 10 + offSetY, drawSize, drawSize), backgroundColor);
                    spriteBatch.Draw(symbolCritical, new Rectangle(point.X - 6, point.Y + 14 + offSetY, drawSize, drawSize), backgroundColor);
                    spriteBatch.Draw(symbolRegeneration, new Rectangle(point.X + 12, point.Y + 10 + offSetY, drawSize, drawSize), backgroundColor);
                    spriteBatch.Draw(symbolSpeed, new Rectangle(point.X + 26, point.Y + offSetY, drawSize, drawSize), backgroundColor);

                    offSetY += drawSize + 2;

                    if (modPlayer.shamanPollFireMax)
                    {
                        spriteBatch.Draw(fireLoaded, new Rectangle(point.X - 38, point.Y + offSetY, drawSize, drawSize - 4), backgroundColor);
                    }

                    if (modPlayer.shamanPollWaterMax)
                    {
                        spriteBatch.Draw(waterLoaded, new Rectangle(point.X - 24, point.Y + 10 + offSetY, drawSize, drawSize - 4), backgroundColor);
                    }

                    if (modPlayer.shamanPollAirMax)
                    {
                        spriteBatch.Draw(airLoaded, new Rectangle(point.X - 6, point.Y + 14 + offSetY, drawSize, drawSize - 4), backgroundColor);
                    }

                    if (modPlayer.shamanPollEarthMax)
                    {
                        spriteBatch.Draw(earthLoaded, new Rectangle(point.X + 12, point.Y + 10 + offSetY, drawSize, drawSize - 4), backgroundColor);
                    }

                    if (modPlayer.shamanPollSpiritMax)
                    {
                        spriteBatch.Draw(spiritLoaded, new Rectangle(point.X + 26, point.Y + offSetY, drawSize, drawSize - 4), backgroundColor);
                    }

                    Item heldItem = player.HeldItem;
                    if (heldItem.type != 0)
                    {
                        OrchidModGlobalItem orchidItem = heldItem.GetGlobalItem <OrchidModGlobalItem>();
                        if (orchidItem.shamanWeapon)
                        {
                            spriteBatch.Draw(resourceBar, new Rectangle(point.X - (resourceBar.Width / 2), point.Y + offSetY + 20, resourceBar.Width, resourceBar.Height), backgroundColor);
                            Point newPoint = new Point(point.X - (resourceBar.Width / 2) + 6, point.Y + offSetY + 20 + 6);
                            int   val      = 0;

                            switch (orchidItem.shamanWeaponElement)
                            {
                            case 1:
                                if (lastElement != 1)
                                {
                                    resource    = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/FireBar");
                                    resourceEnd = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/FireBarEnd");
                                    lastElement = 1;
                                }
                                val = 100 - modPlayer.shamanFireBondLoading;
                                this.drawnBondEffectBar(val, spriteBatch, newPoint);
                                this.drawWeakSymbol(val, spriteBatch, newPoint);
                                break;

                            case 2:
                                if (lastElement != 2)
                                {
                                    resource    = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/WaterBar");
                                    resourceEnd = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/WaterBarEnd");
                                    lastElement = 2;
                                }
                                val = 100 - modPlayer.shamanWaterBondLoading;
                                this.drawnBondEffectBar(val, spriteBatch, newPoint);
                                this.drawWeakSymbol(val, spriteBatch, newPoint);
                                break;

                            case 3:
                                if (lastElement != 3)
                                {
                                    resource    = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/AirBar");
                                    resourceEnd = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/AirBarEnd");
                                    lastElement = 3;
                                }
                                val = 100 - modPlayer.shamanAirBondLoading;
                                this.drawnBondEffectBar(val, spriteBatch, newPoint);
                                this.drawWeakSymbol(val, spriteBatch, newPoint);
                                break;

                            case 4:
                                if (lastElement != 4)
                                {
                                    resource    = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/EarthBar");
                                    resourceEnd = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/EarthBarEnd");
                                    lastElement = 4;
                                }
                                val = 100 - modPlayer.shamanEarthBondLoading;
                                this.drawnBondEffectBar(val, spriteBatch, newPoint);
                                this.drawWeakSymbol(val, spriteBatch, newPoint);
                                break;

                            case 5:
                                if (lastElement != 5)
                                {
                                    resource    = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/SpiritBar");
                                    resourceEnd = ModContent.GetTexture("OrchidMod/Shaman/UI/ModUITextures/ModUIMain/SpiritBarEnd");
                                    lastElement = 5;
                                }
                                val = 100 - modPlayer.shamanSpiritBondLoading;
                                this.drawnBondEffectBar(val, spriteBatch, newPoint);
                                this.drawWeakSymbol(val, spriteBatch, newPoint);
                                break;

                            default:
                                break;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 23
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            projectile.friendly = false;
            projectile.timeLeft = projectile.timeLeft > 40 ? 40 : projectile.timeLeft;

            if (modPlayer.shamanOrbSmall != ShamanOrbSmall.RUBY)
            {
                modPlayer.shamanOrbSmall = ShamanOrbSmall.RUBY;
                modPlayer.orbCountSmall  = 0;
            }
            modPlayer.orbCountSmall++;

            if (modPlayer.orbCountSmall == 1)
            {
                Projectile.NewProjectile(player.Center.X - 15, player.position.Y - 20, 0f, 0f, mod.ProjectileType("RubyOrb"), 0, 0, projectile.owner, 0f, 0f);

                if (player.FindBuffIndex(mod.BuffType("ShamanicBaubles")) > -1)
                {
                    modPlayer.orbCountSmall++;
                    Projectile.NewProjectile(player.Center.X, player.position.Y - 25, 0f, 0f, mod.ProjectileType("RubyOrb"), 1, 0, projectile.owner, 0f, 0f);
                    player.ClearBuff(mod.BuffType("ShamanicBaubles"));
                }
            }
            if (modPlayer.orbCountSmall == 2)
            {
                Projectile.NewProjectile(player.Center.X, player.position.Y - 25, 0f, 0f, mod.ProjectileType("RubyOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountSmall == 3)
            {
                Projectile.NewProjectile(player.Center.X + 15, player.position.Y - 20, 0f, 0f, mod.ProjectileType("RubyOrb"), 0, 0, projectile.owner, 0f, 0f);
            }

            if (modPlayer.orbCountSmall > 3)
            {
                player.AddBuff(mod.BuffType("RubyEmpowerment"), 60 * 30);
                modPlayer.orbCountSmall = 0;
            }
        }
Exemplo n.º 24
0
 public override void AddVariousEffects(Player player, OrchidModPlayer modPlayer, AlchemistProj alchProj, Projectile proj, OrchidModGlobalItem globalItem)
 {
     alchProj.nbElementsNoExtract--;
 }
Exemplo n.º 25
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            Mod thoriumMod = OrchidMod.ThoriumMod;

            if (thoriumMod != null)
            {
                target.AddBuff((thoriumMod.BuffType("TerrariumMix")), 2 * 60);
            }

            if (modPlayer.shamanOrbLarge != ShamanOrbLarge.TERRARIUM)
            {
                modPlayer.shamanOrbLarge = ShamanOrbLarge.TERRARIUM;
                modPlayer.orbCountLarge  = 0;
            }
            modPlayer.orbCountLarge++;

            float orbX = player.position.X + player.width / 2;
            float orbY = player.position.Y;

            if (player.FindBuffIndex(mod.BuffType("ShamanicBaubles")) > -1 && modPlayer.orbCountLarge < 5)
            {
                modPlayer.orbCountLarge += 5;
                Projectile.NewProjectile(orbX - 43, orbY - 38, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
                player.ClearBuff(mod.BuffType("ShamanicBaubles"));
            }

            if (modPlayer.orbCountLarge == 5)
            {
                Projectile.NewProjectile(orbX - 43, orbY - 38, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge == 10)
            {
                Projectile.NewProjectile(orbX - 30, orbY - 48, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge == 15)
            {
                Projectile.NewProjectile(orbX - 15, orbY - 53, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge == 20)
            {
                Projectile.NewProjectile(orbX, orbY - 55, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge == 25)
            {
                Projectile.NewProjectile(orbX + 15, orbY - 53, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge == 30)
            {
                Projectile.NewProjectile(orbX + 30, orbY - 48, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge == 35)
            {
                Projectile.NewProjectile(orbX + 43, orbY - 38, 0f, 0f, mod.ProjectileType("TerrariumScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }
            if (modPlayer.orbCountLarge > 35)
            {
                int dmg = (int)(80 * player.GetModPlayer <OrchidModPlayer>().shamanDamage);
                Projectile.NewProjectile(orbX - 43, orbY - 38, -3f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                Projectile.NewProjectile(orbX - 30, orbY - 48, -2f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                Projectile.NewProjectile(orbX - 15, orbY - 53, -1f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                Projectile.NewProjectile(orbX, orbY - 55, 0f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                Projectile.NewProjectile(orbX + 15, orbY - 53, 1f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                Projectile.NewProjectile(orbX + 30, orbY - 48, 2f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                Projectile.NewProjectile(orbX + 43, orbY - 38, 3f, -5f, mod.ProjectileType("TerrariumScepterOrbProj"), dmg, 0f, projectile.owner, 0f, 0f);
                modPlayer.orbCountLarge = 0;
            }
        }
Exemplo n.º 26
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            modPlayer.shamanDamage += 0.15f;
        }
Exemplo n.º 27
0
 public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
 {
 }
Exemplo n.º 28
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>();

            modPlayer.shamanHarpyAnklet = true;
        }
Exemplo n.º 29
0
        public override void SafeOnHitNPC(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer)
        {
            for (int i = 0; i < 4; i++)
            {
                int dust = Dust.NewDust(target.position, target.width, target.height, 159);
                Main.dust[dust].noGravity = true;
                Main.dust[dust].scale     = (float)120 * 0.015f;
                Main.dust[dust].velocity *= 1.5f;
            }

            if (modPlayer.shamanOrbUnique != ShamanOrbUnique.GRANDTHUNDERBIRD)
            {
                modPlayer.shamanOrbUnique = ShamanOrbUnique.GRANDTHUNDERBIRD;
                modPlayer.orbCountUnique  = 0;
            }
            modPlayer.orbCountUnique++;
            //modPlayer.sendOrbCountPackets();

            if (modPlayer.orbCountUnique == 5)
            {
                Projectile.NewProjectile(player.Center.X, player.position.Y - 79, 0f, 0f, mod.ProjectileType("ThunderScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
            }

            if (player.FindBuffIndex(mod.BuffType("ShamanicBaubles")) > -1 && modPlayer.orbCountUnique < 5)
            {
                modPlayer.orbCountUnique += 5;
                Projectile.NewProjectile(player.Center.X, player.position.Y - 79, 0f, 0f, mod.ProjectileType("ThunderScepterOrb"), 0, 0, projectile.owner, 0f, 0f);
                player.ClearBuff(mod.BuffType("ShamanicBaubles"));
                //modPlayer.sendOrbCountPackets();
            }

            if (modPlayer.orbCountUnique == 20)
            {
                modPlayer.orbCountUnique = 0;
                Projectile.NewProjectile(player.Center.X, player.position.Y - 79, 0f, 5f, mod.ProjectileType("ThunderScepterOrbProj"), 0, 0.0f, projectile.owner, 0.0f, 0.0f);
            }
        }
Exemplo n.º 30
0
        public override void OnHitNPCSecond(NPC target, int damage, float knockback, bool crit, Player player, OrchidModPlayer modPlayer,
                                            OrchidModAlchemistNPC modTarget, OrchidModGlobalNPC modTargetGlobal, AlchemistProj alchProj, Projectile projectile, OrchidModGlobalItem globalItem)
        {
            if (!(target.boss || target.type == NPCID.TargetDummy) && target.knockBackResist > 0f)
            {
                target.AddBuff(mod.BuffType("SlimeSlow"), 90 * (alchProj.nbElements * 2));
            }

            int rand = alchProj.nbElements;

            rand += alchProj.hasCloud() ? 2 : 0;
            if (Main.rand.Next(10) < rand && !alchProj.noCatalyticSpawn)
            {
                int     dmg            = getSecondaryDamage(player, modPlayer, alchProj.nbElements);
                int     proj           = ProjectileType <Alchemist.Projectiles.Reactive.SlimeBubbleLava>();
                Vector2 perturbedSpeed = new Vector2(0f, -5f).RotatedByRandom(MathHelper.ToRadians(20));
                Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, perturbedSpeed.X, perturbedSpeed.Y, proj, dmg, 0f, projectile.owner);
            }

            if (modTarget.alchemistFire > 0)
            {
                int nb   = Main.rand.Next(3) + 3;
                int dmg  = (int)(getSecondaryDamage(player, modPlayer, alchProj.nbElements) * 1.5);
                int proj = ProjectileType <Alchemist.Projectiles.Fire.HellSlimeFlaskProj>();
                for (int i = 0; i < nb; i++)
                {
                    Vector2 perturbedSpeed = projectile.velocity.RotatedByRandom(MathHelper.ToRadians(15)) * 0.75f;
                    Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, perturbedSpeed.X, perturbedSpeed.Y, proj, dmg, 1f, projectile.owner);
                }
            }
        }