예제 #1
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            SGAPlayer sgaply = Main.LocalPlayer.SGAPly();

            if (sgaply.tf2emblemLevel > 0)
            {
                tooltips.Add(new TooltipLine(mod, "SoldierLine", "Tier 1: Damage Increased by 20%, Reload and firing speed are faster per level"));
            }
            if (sgaply.tf2emblemLevel > 1)
            {
                tooltips.Add(new TooltipLine(mod, "SoldierLine", "Tier 2: Damage Increased by 50%; rockets explode larger and move faster per level"));
            }
            if (sgaply.tf2emblemLevel > 2)
            {
                tooltips.Add(new TooltipLine(mod, "SoldierLine", "Tier 3: Damage Increased by 100%; Rockets slow targets, gain a firing speed boost when you rocket jump"));
            }
            if (sgaply.tf2emblemLevel > 3)
            {
                tooltips.Add(new TooltipLine(mod, "SoldierLine", "Tier 4: Damage Increased by 300%; Rocket jumping restores WingTime, slow is stronger, direct hits against slowed enemies will always crit"));
            }
            Color c = Main.hslToRgb((float)(Main.GlobalTime / 4) % 1f, 0.4f, 0.6f);

            tooltips.Add(new TooltipLine(mod, "RIP Rick May", Idglib.ColorText(c, "'He didn't fly into heaven, he rocket jumped into heaven'")));
            c = Main.hslToRgb((float)((Main.GlobalTime + 5.77163f) / 4) % 1f, 0.35f, 0.65f);
            tooltips.Add(new TooltipLine(mod, "RIP Rick May", Idglib.ColorText(c, "RIP Rick May: 1940-2020")));
        }
예제 #2
0
        public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            //base.Shoot(player,ref position,ref speedX,ref speedY,ref type,ref damage,ref knockBack);
            SGAPlayer sgaplayer = player.GetModPlayer(mod, typeof(SGAPlayer).Name) as SGAPlayer;

            sgaplayer.ammoLeftInClip -= 1;
            if (player.altFunctionUse == 2)
            {
                damage = (int)(damage * 0.5f);
                int target2 = Idglib.FindClosestTarget(0, position, new Vector2(0, 0));
                NPC them    = Main.npc[target2];
                Vector2 where = them.Center - position;
                where.Normalize();
                Vector2 perturbedSpeed = new Vector2(where.X, where.Y) * (new Vector2(speedX, speedY).Length() * 1.25f);
                Main.PlaySound(SoundID.Item38, player.Center);
                int thisoned = Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, Main.myPlayer);
            }
            if (sgaplayer.ammoLeftInClip == 0 || forcedreload)
            {
                player.itemTime      = 40;
                player.itemAnimation = 40;
                int thisone = Projectile.NewProjectile(player.Center.X, player.Center.Y, 0f, 0f, mod.ProjectileType("TheRevolverReloading"), 0, knockBack, Main.myPlayer, 0.0f, 0f);
                return(!forcedreload);
            }
            return(sgaplayer.ammoLeftInClip > 0);
        }
예제 #3
0
 public override void SetStaticDefaults()
 {
     DisplayName.SetDefault("Anticipation Amulet Tier 3");
     Tooltip.SetDefault("When a boss fight starts, you are healed by 300 HP, but only every 2 minutes and while " + Idglib.ColorText(Color.Green, "Anticipation") + " is low" +
                        "\nDuring a boss fight, you build up " + Idglib.ColorText(Color.Green, "Anticipation") + ", which causes your held weapon to do more damage, this caps at a near 100% increase\n" +
                        "You lose half your " + Idglib.ColorText(Color.Green, "Anticipation") + " when hurt, and passively drains while no boss is alive\n" + Idglib.ColorText(Color.Red, "Damage you take is increased by 40%"));
 }
        public override void AI()
        {
            for (int num315 = 0; num315 < 2; num315 = num315 + 1)
            {
                int num316 = Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, mod.DustType("NovusSparkle"), 0f, 0f, 50, Main.hslToRgb(0.4f, 0f, 0.15f), 1.7f);
                Main.dust[num316].noGravity = true;
                Dust dust3 = Main.dust[num316];
                dust3.velocity *= 0.3f;
            }

            projectile.ai[0] = projectile.ai[0] + 1;
            if (projectile.ai[0] < 2)
            {
                keepspeed = (projectile.velocity).Length();
            }
            NPC target = Main.npc[Idglib.FindClosestTarget(0, projectile.Center, new Vector2(0f, 0f), true, true, true, projectile)];

            if (target != null)
            {
                if ((target.Center - projectile.Center).Length() < 500f)
                {
                    if (projectile.ai[0] < (250f) && projectile.ai[0] > (beginhoming))
                    {
                        projectile.velocity = projectile.velocity + (projectile.DirectionTo(target.Center) * ((float)keepspeed * homing));
                        projectile.velocity.Normalize();
                        projectile.velocity = projectile.velocity * (float)keepspeed;
                    }
                }

                if (projectile.ai[0] > 250f)
                {
                    projectile.Kill();
                }
            }
        }
예제 #5
0
        public void Phase1Hover(Player P, ref Vector2 PWhere, ref Vector2 DrakenWhere, ref Vector2 FlyTo, ref Vector2 FlySpeed, ref Vector2 FlyFriction)
        {
            //Hovering

            FlyFriction = new Vector2(0.95f, 0.95f);
            FlyTo       = PWhere - new Vector2((float)Math.Sin(npc.ai[0] / 73f) * 400f, 250);
            Vector2 Turnto = PWhere - DrakenWhere;

            Turnto.X           *= 3f;
            npc.rotation        = npc.rotation.AngleLerp((Turnto).ToRotation(), 0.025f);
            npc.spriteDirection = (FlyTo.X - DrakenWhere.X) > 0 ? 1 : -1;
            FlySpeed            = new Vector2(-8.20f, -8.20f) * Math.Min((FlyTo - DrakenWhere).Length() / 400f, 1f);

            Vector2 shootthere = PWhere - DrakenWhere;

            if (npc.ai[0] % 10 == 0 && npc.ai[0] % 100 > 60)
            {
                shootthere.Normalize();
                int prog = Projectile.NewProjectile(npc.Center, shootthere * 30f, ProjectileID.CursedFlameHostile, 80, 1f);
            }
            if (npc.ai[0] % 5 == 0 && npc.ai[0] % 100 > 60 && npc.ai[1] == 0)
            {
                Idglib.Shattershots(npc.Center, PWhere, new Vector2(0, 0), ProjectileID.CursedFlameHostile, 80, 50, 100, 3, false, 0, false, 100);
            }
        }
예제 #6
0
        //this and the next one were based off BlushieMagic's code, god bless!
        public static void GenVirulent()
        {
            if (Main.netMode == 1 || WorldGen.noTileActions || WorldGen.gen || !Main.hardMode || GennedVirulent)
            {
                return;
            }

            //WorldGen.TileRunner(x, y, (double)WorldGen.genRand.Next(3, 6), WorldGen.genRand.Next(2, 6), TileType<ExampleOre>(), false, 0f, 0f, false, true);
            for (double k = 0; k < (Main.maxTilesX - 200) * (Main.maxTilesY - 150 - (int)Main.rockLayer) / 25.0 / 1.0; k += 1.0)
            {
                int  genx   = WorldGen.genRand.Next(100, Main.maxTilesX - 100);
                int  geny   = WorldGen.genRand.Next((int)Main.rockLayer, (int)Main.maxTilesY - 150);
                Tile tile   = Framing.GetTileSafely(genx, geny);
                int  chance = 0;
                if (tile.active() && (tile.type == TileID.Mud))
                {
                    chance = 3;
                }

                if (Main.rand.Next(0, 100) < chance)
                {
                    WorldGen.TileRunner(genx, geny, (double)WorldGen.genRand.Next(3, 8), WorldGen.genRand.Next(5, 16), TileType <VirulentOre>(), false, 0f, 0f, false, true);
                }
            }
            if (Main.netMode == NetmodeID.Server)
            {
                NetMessage.SendData(MessageID.WorldData);
            }
            GennedVirulent = true;
            Idglib.Chat("The raw power of the empowered Murk has seeped into the jungle underground!", 75, 225, 75);
        }
예제 #7
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            if (SGAWorld.downedSPinky && SGAWorld.downedCratrosityPML && SGAWorld.downedWraiths > 3)
            {
                if (SGAWorld.downedHellion < 2)
                {
                    if (SGAWorld.downedHellion == 0)
                    {
                        tooltips.Add(new TooltipLine(mod, "Nmxx", "'Well done " + SGAmod.userName + ". Yes, I know your real name behind that facade you call " + Main.LocalPlayer.name + ".'"));
                        tooltips.Add(new TooltipLine(mod, "Nmxx", "'And thanks to your Dragon's signal, I have found my way to your world, this one tear which will let me invade your puny little " + Main.worldName + "'"));
                        tooltips.Add(new TooltipLine(mod, "Nmxx", "'Spend what little time you have left meaningful, if you were expecting to save him, I doubt it'"));
                        tooltips.Add(new TooltipLine(mod, "Nmxx", "'But let us not waste anymore time, come, face me'"));
                    }
                    else
                    {
                        tooltips.Add(new TooltipLine(mod, "Nmxx", "'Getting closer, I guess now I'll just have to use more power to stop you'"));
                        tooltips.Add(new TooltipLine(mod, "Nmxx", "'But enough talk, lets finish this'"));
                    }
                }
                else
                {
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "'Hmp, very Well done " + SGAmod.userName + ", you've bested me, this time"));
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "But next time you won't be so lucky..."));
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "My tears have stablized..."));
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "Enjoy your fancy reward, you've earned that much..."));
                    tooltips[0].text += " (Stablized)";
                }
                tooltips.Add(new TooltipLine(mod, "Nmxx", "Tears a hole in the bastion of reality to bring forth the Paradox General, Helen 'Hellion' Weygold"));
                tooltips.Add(new TooltipLine(mod, "Nmxx", "Non Consumable"));
                if (SGAWorld.downedHellion < 2)
                {
                    TooltipLine tt = tooltips.FirstOrDefault(x => x.Name == "Material" && x.mod == "Terraria");
                    if (tt != null)
                    {
                        int index = tooltips.FindIndex(here => here == tt);
                        tooltips.RemoveAt(index);
                    }
                }
                else
                {
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "Useable in crafting"));
                }


                foreach (TooltipLine line in tooltips)
                {
                    string text    = line.text;
                    string newline = "";
                    for (int i = 0; i < text.Length; i += 1)
                    {
                        newline += Idglib.ColorText(Main.hslToRgb((Main.rand.NextFloat(0, 1)) % 1f, 0.75f, Main.rand.NextFloat(0.25f, 0.5f)), text[i].ToString());
                    }
                    line.text = newline;
                }
            }
            else
            {
                tooltips = new List <TooltipLine>();
            }
        }
예제 #8
0
 public override void NPCLoot()
 {
     if (Math.Abs(npc.ai[2]) > 200)
     {
         if (npc.ai[0] > 6)
         {
             npc.type = oldtype;
             NPC myguy = Main.npc[(int)npc.ai[1]];
             myguy.active = false;
             Achivements.SGAAchivements.UnlockAchivement("Harbinger", Main.LocalPlayer);
             if (SGAWorld.downedHarbinger == false)
             {
                 Idglib.Chat("Your end is nigh...", 15, 15, 150);
                 Idglib.Chat("Robbed figures have been seen near the dungeon.", 20, 20, 125);
                 SGAWorld.downedHarbinger = true;
             }
         }
         else
         {
             npc.boss = false;
         }
     }
     else
     {
         npc.boss = false;
         Idglib.Chat("You are not ready for this...", 15, 15, 150);
         for (int i = 180; i <= 361; i += 180)
         {
             int harbinger2 = NPC.NewNPC((int)npc.Center.X, (int)npc.Center.Y, npc.type);
             Main.npc[harbinger2].ai[2]     = i;
             Main.npc[harbinger2].netUpdate = true;
         }
     }
 }
예제 #9
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            if (Main.LocalPlayer.GetModPlayer <SGAPlayer>().nightmareplayer)
            {
                if (Main.expertMode)
                {
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "'I have provided you with one of my chromatic mirrors, and it will keep returning to your hand as you keep returning to " + Main.worldName + "'"));
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "You just might go far " + SGAmod.userName + ", just might..."));
                    tooltips.Add(new TooltipLine(mod, "Nmxx", Idglib.ColorText(Color.OrangeRed, "By being granted this item your character is in Nightmare Mode, which does the following:")));

                    tooltips.Add(new TooltipLine(mod, "Nm1", Idglib.ColorText(Color.Red, "Enemies have 20% more HP")));
                    tooltips.Add(new TooltipLine(mod, "Nm1", Idglib.ColorText(Color.Red, "Your health is tripled, however you take triple damage")));
                    tooltips.Add(new TooltipLine(mod, "Nm1", Idglib.ColorText(Color.Red, "Some SGAmod bosses gain new abilities")));
                    tooltips.Add(new TooltipLine(mod, "Nm2", Idglib.ColorText(Color.Lime, "Your Expertise gain is increased by 15%")));
                    tooltips.Add(new TooltipLine(mod, "Nm2", Idglib.ColorText(Color.Lime, "Enemy money dropped is increased by 50%")));
                    tooltips.Add(new TooltipLine(mod, "Nm2", Idglib.ColorText(Color.Lime, "There is a 10% chance for enemies to drop double loot")));
                    tooltips.Add(new TooltipLine(mod, "Nm2", Idglib.ColorText(Color.DimGray, "Does not properly support online play, yet")));
                    //tooltips.Add(new TooltipLine(mod, "Nm1", "Using this item will enable Nightmare Hardcore, which ups the challenge even further for more Expertise"));


                    foreach (TooltipLine line in tooltips)
                    {
                        if (line.mod == "Terraria" && line.Name == "ItemName")
                        {
                            line.overrideColor = Main.hslToRgb((Main.GlobalTime / 3f) % 1f, 0.50f, 0.3f);
                        }
                    }
                }
                else
                {
                    tooltips.Add(new TooltipLine(mod, "Nmxx", "You're not on an expert mode world Nub! Nightmare Mode NOT enabled"));
                }
            }
        }
예제 #10
0
        public override void AI()
        {
            if (projectile.ai[0] < 1)
            {
                int dir = 1;
                if (Main.myPlayer == projectile.owner)
                {
                    NPC target = Main.npc[Idglib.FindClosestTarget(0, Main.MouseWorld, new Vector2(0f, 0f), true, true, true, projectile)];
                    if (target != null && Vector2.Distance(target.Center, projectile.Center) < 2000)
                    {
                        Vector2 projvel = projectile.velocity;
                        projectile.velocity = target.Center - projectile.Center;
                        projectile.velocity.Normalize(); projectile.velocity *= 8f;
                        IdgProjectile.Sync(projectile.whoAmI);
                        projectile.netUpdate = true;
                    }
                }
                dir = Math.Sign(projectile.velocity.X);
                Main.player[projectile.owner].ChangeDir(dir);
                Main.player[projectile.owner].itemRotation = (float)Math.Atan2(projectile.velocity.Y * dir, projectile.velocity.X * dir);
                //Main.player[projectile.owner].itemRotation = projectile.velocity.ToRotation() * Main.player[projectile.owner].direction;
            }
            projectile.ai[0] += 1;

            Vector2 randomcircle = new Vector2(Main.rand.Next(-8000, 8000), Main.rand.Next(-8000, 8000)); randomcircle.Normalize(); Vector2 ogcircle = randomcircle; randomcircle *= 0.1f;
            int     num655 = Dust.NewDust(projectile.position, projectile.width, projectile.height, 206, projectile.velocity.X + randomcircle.X * 8f, projectile.velocity.Y + randomcircle.Y * 8f, 100, new Color(30, 30, 30, 20), 1f);

            Main.dust[num655].noGravity = true;
            Main.dust[num655].velocity *= 0.5f;
        }
예제 #11
0
        public override void Explode()
        {
            if (projectile.timeLeft == openclosetime && projectile.ai[0] > 0)
            {
                Player owner = Main.player[projectile.owner];
                if (owner != null && !owner.dead)
                {
                    NPC target = Main.npc[Idglib.FindClosestTarget(0, projectile.Center, new Vector2(0f, 0f), true, true, true, projectile)];
                    if (target != null && Vector2.Distance(target.Center, projectile.Center) < 1500)
                    {
                        Main.PlaySound(SoundID.Item, (int)projectile.Center.X, (int)projectile.Center.Y, 67, 0.25f, 0.5f);

                        Vector2 gotohere = new Vector2();
                        gotohere = target.Center - projectile.Center;                        //Main.MouseScreen - projectile.Center;
                        gotohere.Normalize();

                        Vector2 perturbedSpeed = new Vector2(gotohere.X, gotohere.Y).RotatedByRandom(MathHelper.ToRadians(10)) * projectile.velocity.Length();
                        int     proj           = Projectile.NewProjectile(new Vector2(projectile.Center.X, projectile.Center.Y), new Vector2(perturbedSpeed.X, perturbedSpeed.Y), ProjectileID.BulletHighVelocity, projectile.damage, projectile.knockBack / 8f, owner.whoAmI);
                        Main.projectile[proj].timeLeft = 180;
                        //Main.projectile[proj].penetrate = 1;
                        Main.projectile[proj].GetGlobalProjectile <SGAprojectile>().onehit = true;;
                        Main.projectile[proj].netUpdate = true;
                        IdgProjectile.Sync(proj);
                    }
                }
            }
        }
예제 #12
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            TooltipLine tt = tooltips.FirstOrDefault(x => x.Name == "Damage" && x.mod == "Terraria");

            if (tt != null)
            {
                string[]      thetext = tt.text.Split(' ');
                string        newline = "";
                List <string> valuez  = new List <string>();
                foreach (string text2 in thetext)
                {
                    valuez.Add(text2 + " ");
                }
                valuez.Insert(1, "trap ");
                foreach (string text3 in valuez)
                {
                    newline += text3;
                }
                tt.text = newline;
            }

            tooltips.Add(new TooltipLine(mod, "DefenseTrapWeaponLine", "Base damage is boosted based on the average of your damage type increases"));
            tooltips.Add(new TooltipLine(mod, "DefenseTrapWeaponLine", "Trap damage boosts the damage projectiles do on hit"));
            tooltips.Add(new TooltipLine(mod, "DefenseTrapWeaponLine", Idglib.ColorText(Color.Red, "Will greatly limit you without wearing Gripping Gloves")));
            tooltips.Add(new TooltipLine(mod, "DefenseTrapWeaponLine", Idglib.ColorText(Color.Red, SlowDown * 100 + "% slower movement effect, gloves reduce slowdown")));

            base.ModifyTooltips(tooltips);
        }
예제 #13
0
        public override void NPCLoot()
        {
            if (npc.boss)
            {
                List <Projectile> itz = Idglib.Shattershots(npc.Center - new Vector2(npc.spriteDirection * 20, 100), npc.Center - new Vector2(npc.spriteDirection * 20, 100), new Vector2(0, 0), mod.ProjectileType("SnowCloud"), 40, 4f, 0, 1, true, 0, false, 1000);

                if (Main.expertMode)
                {
                    npc.DropBossBags();
                }
                else
                {
                    string [] dropitems = { "Starburster", "Snowfall", "IceScepter", "RubiedBlade", "IcicleFall" };
                    Item.NewItem((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, mod.ItemType(dropitems[Main.rand.Next(0, dropitems.Length)]));
                    Item.NewItem((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, mod.ItemType("CryostalBar"), Main.rand.Next(15, 25));
                }
            }
            Achivements.SGAAchivements.UnlockAchivement("Cirno", Main.LocalPlayer);
            if (SGAWorld.downedCirno == false)
            {
                SGAWorld.downedCirno = true;
                Idglib.Chat("The snowflakes have thawed from your wings", 50, 200, 255);
            }
            //float targetX = npc.Center.X;
            //float targetY = npc.Center.Y;
            //NPC.NewNPC((int)npc.Center.X + 13, (int)npc.Center.Y - 2, mod.NPCType("GraySlime6"));
            //NPC.NewNPC((int)npc.Center.X - 13, (int)npc.Center.Y - 2, mod.NPCType("GraySlime6"));
        }
예제 #14
0
        public override void AI()
        {
            base.AI();
            madeturrets = madeturrets + 1;
            if (laserblast == -1000)
            {
                laserblast = (int)Main.rand.Next(0, 50) - 300;
            }
            NPC ownerz = Main.npc[NPC.FindFirstNPC(mod.NPCType("CobaltWraith"))];

            if (ownerz != null)
            {
                if ((ownerz.modNPC as CobaltWraith).raged == true)
                {
                    laserblast = laserblast + 1;
                    Player P = Main.player[ownerz.target];
                    if (laserblast % 20 == 0 && laserblast % 300 > 200 && laserblast > 0 && P != null && Main.expertMode && (Main.netMode != 1))
                    {
                        Idglib.Shattershots(npc.Center, P.position, new Vector2(P.width, P.height), ProjectileID.WaterBolt, 20, 30, 0, 1, true, 0, true, 100);
                    }
                }
            }
            if (madeturrets == 5)
            {
                //madeturrets=true;
                int nexus                = NPC.NewNPC((int)npc.position.X, (int)npc.position.Y - 24, mod.NPCType(Main.rand.Next(0, 100) < 50 ? "CobaltArmorBow" : "CobaltChainSawPiece"));
                NPC armpeice             = Main.npc[nexus];
                CopperArmorPiece newguy3 = armpeice.modNPC as CopperArmorPiece; newguy3.attachedID = npc.whoAmI;

                armpeice.lifeMax = (int)(npc.lifeMax * 0.75f); armpeice.ai[1] = -16; armpeice.ai[1] = -0f; armpeice.life = (int)(npc.lifeMax * (0.75f)); armpeice.knockBackResist = 1f; armpeice.netUpdate = true;
            }
        }
예제 #15
0
        public override void AI()
        {
            effects(0);

            projectile.ai[0]       = projectile.ai[0] + 1;
            projectile.velocity.Y += 0.15f;
            projectile.rotation    = (float)Math.Atan2((double)projectile.velocity.Y, (double)projectile.velocity.X) + 1.57f;


            NPC target = Main.npc[Idglib.FindClosestTarget(0, projectile.Center, new Vector2(0f, 0f), true, true, true, projectile)];

            if (target != null)
            {
                if (new Rectangle((int)projectile.position.X, (int)projectile.position.Y, projectile.width, projectile.height).Intersects
                        (new Rectangle((int)target.position.X, (int)target.position.Y, target.width, target.height)))
                {
                    IdgNPC.AddBuffBypass(target.whoAmI, mod.BuffType("Sodden"), 60 * 45);
                    if (Main.player[projectile.owner].GetModPlayer <SGAPlayer>().MVMBoost)
                    {
                        IdgNPC.AddBuffBypass(target.whoAmI, mod.BuffType("SoddenSlow"), 60 * 45);
                    }
                    projectile.Kill();
                }
            }
        }
예제 #16
0
        public override void AI()
        {
            for (int num315 = 0; num315 < 2; num315 = num315 + 1)
            {
                int  num316 = Dust.NewDust(new Vector2(projectile.position.X, projectile.position.Y), projectile.width, projectile.height, 226, 0f, 0f, 50, Main.hslToRgb(0.4f, 0f, 0.15f), 1.7f);
                Dust dust3  = Main.dust[num316];
                dust3.velocity *= 0.3f;
                dust3.noGravity = true;
                dust3.scale     = 1.8f;
                dust3.fadeIn    = 1f + (float)Main.rand.Next(10) * 0.1f;
            }

            projectile.ai[0] = projectile.ai[0] + 1;
            if (projectile.ai[0] < 2)
            {
                keepspeed = (projectile.velocity).Length();
            }
            NPC target = Main.npc[Idglib.FindClosestTarget(0, projectile.Center, new Vector2(0f, 0f), true, true, true, projectile)];

            if (target != null)
            {
                if ((target.Center - projectile.Center).Length() < 500f)
                {
                    if (projectile.ai[0] < (250f) && projectile.ai[0] > (beginhoming))
                    {
                        projectile.velocity = projectile.velocity + (projectile.DirectionTo(target.Center) * ((float)keepspeed * homing));
                        projectile.velocity.Normalize();
                        projectile.velocity = projectile.velocity * (float)keepspeed;
                    }
                }
            }

            projectile.rotation = (float)Math.Atan2((double)projectile.velocity.Y, (double)projectile.velocity.X) + 1.57f;
        }
예제 #17
0
        public override void AI()
        {
            effects(0);

            projectile.ai[0]       = projectile.ai[0] + 1;
            projectile.velocity.Y += gravity;
            projectile.rotation    = (float)Math.Atan2((double)projectile.velocity.Y, (double)projectile.velocity.X) + 1.57f;


            if (projectile.ai[0] < (beginhoming) && !projectile.hostile)
            {
                projectile.localAI[0] = -1;
                return;
            }
            Entity target = null;

            if (projectile.localAI[0] > -1)
            {
                if (projectile.hostile)
                {
                    target = Main.player[(int)projectile.localAI[0]];
                }
                else
                {
                    target = Main.npc[(int)projectile.localAI[0]];
                }
            }

            projectile.localAI[1] += 1;
            float previousspeed = projectile.velocity.Length();

            if (projectile.localAI[0] < 0 || projectile.localAI[1] % 30 == 0 || ((!target.active || (target is NPC && ((target as NPC).dontTakeDamage || (target as NPC).life < 1))) && projectile.localAI[1] % 10 == 0))
            {
                Entity target2;
                if (projectile.hostile)
                {
                    target2 = Main.player[Idglib.FindClosestTarget(1, projectile.Center, new Vector2(0f, 0f), true, true, true, projectile)];
                }
                else
                {
                    target2 = Main.npc[Idglib.FindClosestTarget(0, projectile.Center, new Vector2(0f, 0f), true, true, true, projectile)];
                }
                projectile.localAI[0] = target2.whoAmI;
                target = target2;
            }

            if (target != null)
            {
                if ((target.Center - projectile.Center).Length() < homingdist)
                {
                    if (projectile.ai[0] < (maxhoming))
                    {
                        projectile.velocity = projectile.velocity + (projectile.DirectionTo(target.Center) * ((float)previousspeed * homing));
                        projectile.velocity.Normalize();
                        projectile.velocity = projectile.velocity * previousspeed;
                    }
                }
            }
        }
 public override void ModifyTooltips(List <TooltipLine> tooltips)
 {
     if (SGAWorld.darknessVision)
     {
         tooltips.Add(new TooltipLine(mod, "CaliburnCompessUpgrade", Idglib.ColorText(Color.MediumPurple, "Upgraded to also point to Dark Sectors in the world")));
         tooltips.Add(new TooltipLine(mod, "CaliburnCompessUpgrade", Idglib.ColorText(Color.MediumPurple, "Darkness from Dark Sectors is reduced while in your inventory")));
     }
 }
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            Color c = Placeable.TechPlaceable.LuminousAlterItem.AuroraLineColor;

            tooltips.Add(new TooltipLine(mod, "Plasma Item", Idglib.ColorText(c, "Aura weapons affect all around the player, friend and foe alike")));
            tooltips.Add(new TooltipLine(mod, "AuraUse", Idglib.ColorText(c, "Reusing the item consumes an extra minion slot and increases the current Aura Strength")));
            //tooltips.Add(new TooltipLine(mod, "AuraUse", "Alt Fire to relocate the Aura, Alt Fire again to return it to you"));
        }
예제 #20
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            Color c = Main.hslToRgb((float)(Main.GlobalTime / 15) % 1f, 0.2f, 0.45f);

            tooltips.Add(new TooltipLine(mod, "Things", Idglib.ColorText(c, "All the functionality of the Grand Design And Cell phone")));
            tooltips.Add(new TooltipLine(mod, "Things", Idglib.ColorText(c, "Grants surperior world building powers and mining speed while in inventory")));
            tooltips.Add(new TooltipLine(mod, "Things", Idglib.ColorText(c, "Hold Shift and left click to teleport home")));
        }
예제 #21
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            Color c = Main.hslToRgb((float)(Main.GlobalTime / 4f) % 1f, 0.45f, 0.65f);

            tooltips.Add(new TooltipLine(mod, "Dedicated", Idglib.ColorText(c, "Dedicated to PeopleMCNugget")));
            c = Main.hslToRgb((float)(Main.GlobalTime / 3.17f) % 1f, 0.65f, 0.45f);
            tooltips.Add(new TooltipLine(mod, "Dedicated2", Idglib.ColorText(c, "And the amazing spriters who helped him")));
        }
예제 #22
0
        public override void SpawnMoreExpert()
        {
            Idglib.Chat("Turn.... baacckk...", 5, 5, 60);
            int newguy = NPC.NewNPC((int)npc.position.X + 400, (int)npc.position.Y, mod.NPCType(level > 0 ? "CobaltArmorChainmail" : "CopperArmorChainmail")); NPC newguy2 = Main.npc[newguy]; CopperArmorPiece newguy3 = newguy2.modNPC as CopperArmorPiece; newguy3.attachedID = npc.whoAmI; newguy2.lifeMax = (int)(npc.lifeMax * 1.5f); newguy2.life = (int)(npc.lifeMax * (1.5f)); newguy2.knockBackResist = 1f; newguy2.netUpdate = true;

            raged = true;
            createarmorthings();
        }
예제 #23
0
 public static void QuestCheck(int questtype, Player ply)
 {
     ply.GetModPlayer <SGAPlayer>().UpgradeTF2();
     if (tf2cratedrops == false)
     {
         tf2cratedrops = true;
         Idglib.Chat("<Contracker> Crates have began to drop for everyone!", 255, 255, 255);
     }
 }
예제 #24
0
 public override List <TooltipLine> AddText(List <TooltipLine> tooltips)
 {
     tooltips.Add(new TooltipLine(mod, "Jellybru", "+16% magic damage, +100 Mana"));
     tooltips.Add(new TooltipLine(mod, "Jellybru", "magic cost reduced by 20%, minorly increased Life Regen"));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.Red, "50% Increased DoT damage taken")));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.PaleTurquoise, "--When Shield Down--")));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.PaleTurquoise, "Gain the powers of the nebula pillar!")));
     return(tooltips);
 }
예제 #25
0
 public override List <TooltipLine> AddText(List <TooltipLine> tooltips)
 {
     tooltips.Add(new TooltipLine(mod, "Jellybru", "+15% magic damage, +50 Mana"));
     tooltips.Add(new TooltipLine(mod, "Jellybru", "Movement and horizontal flight speed increased"));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.Red, "20% Increased DoT damage taken")));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.PaleTurquoise, "--When Shield Down--")));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.PaleTurquoise, "Gain a great speed increase!")));
     return(tooltips);
 }
예제 #26
0
 public override List <TooltipLine> AddText(List <TooltipLine> tooltips)
 {
     tooltips.Add(new TooltipLine(mod, "Jellybru", "+14% magic damage and crit chance, +50 Mana"));
     tooltips.Add(new TooltipLine(mod, "Jellybru", "Mana regen is greatly improved, Regen delay is reduced"));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.Red, "30% Increased DoT damage taken")));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.PaleTurquoise, "--When Shield Down--")));
     tooltips.Add(new TooltipLine(mod, "Jellybru", Idglib.ColorText(Color.PaleTurquoise, "Mana regen is improved to extreme levels!")));
     return(tooltips);
 }
 public override List <TooltipLine> AddText(List <TooltipLine> tooltips)
 {
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "25% increased melee damage, 32% increased throwing damage"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "Immunity to Knockback, greatly increased Life Regen"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "20% improved Endurance, 100 increased max life"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "35% DoT resistance"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", Idglib.ColorText(Color.Red, "10% reduced non-melee/throwing damage and crit chance")));
     return(tooltips);
 }
 public virtual List <TooltipLine> AddText(List <TooltipLine> tooltips)
 {
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "8% Increased Melee Crit, 12% increased throwing Crit"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "33% to not consume thrown items, 25% increased melee swing speed"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "15% increased throwing rate, 75 increased max life"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", "25% DoT resistance"));
     tooltips.Add(new TooltipLine(mod, "MisterCreeper", Idglib.ColorText(Color.Red, "10% reduced non-melee/throwing damage and crit chance")));
     return(tooltips);
 }
예제 #29
0
        public override void AI()
        {
            if (projectile.ai[0] == 0)
            {
                for (int i = 0; i < 4000; i += 1)
                {
                    if (!Collision.CanHitLine(new Vector2(projectile.Center.X, projectile.position.Y + projectile.height), 1, 1, new Vector2(projectile.Center.X, projectile.position.Y + projectile.height + 2), 1, 1))
                    {
                        break;
                    }
                    projectile.position.Y += 1;
                }
            }

            Player player = Main.player[base.projectile.owner];

            projectile.ai[0] += 1;
            if (projectile.ai[0] > 30)
            {
                if (projectile.ai[0] % 20 == 0)
                {
                    NPC target = Main.npc[Idglib.FindClosestTarget(0, projectile.Center - new Vector2(0f, 20f), new Vector2(0f, 0f), true, true, true, projectile)];
                    if (target != null && target.active && target.life > 0 && Vector2.Distance(target.Center, projectile.Center) < 300)
                    {
                        if (player.SGAPly().ConsumeElectricCharge(25, 60))
                        {
                            Vector2 there = projectile.Center - new Vector2(3f, 20f);
                            Vector2 Speed = (target.Center - there);
                            Speed.Normalize(); Speed *= 2f;
                            int prog = Projectile.NewProjectile(there.X, there.Y, Speed.X, Speed.Y, ModContent.ProjectileType <CBreakerBolt>(), projectile.damage, 1f, player.whoAmI, 0);
                            Main.projectile[prog].minion = true;
                            Main.projectile[prog].melee  = false;
                            Main.projectile[prog].usesLocalNPCImmunity = true;
                            Main.projectile[prog].localNPCHitCooldown  = -1;
                            IdgProjectile.Sync(prog);
                            Main.PlaySound(SoundID.Item93, player.Center);
                        }
                    }
                }

                for (int num315 = 0; num315 < 3; num315 = num315 + 1)
                {
                    if (Main.rand.Next(0, 15) == 0)
                    {
                        Vector2 randomcircle = new Vector2(Main.rand.Next(-8000, 8000), Main.rand.Next(-8000, 8000)); randomcircle.Normalize();
                        int     num622       = Dust.NewDust(new Vector2(projectile.Center.X, projectile.Center.Y) - new Vector2(3f, 20f) + randomcircle * 8, 0, 0, DustID.Electric, 0f, 0f, 100, default(Color), 0.75f);

                        Main.dust[num622].scale     = 1f;
                        Main.dust[num622].noGravity = true;
                        //Main.dust[num622].fadeIn = 1f + (float)Main.rand.Next(10) * 0.1f;
                        Main.dust[num622].velocity.X = randomcircle.RotatedBy(MathHelper.ToRadians(-90)).X;
                        Main.dust[num622].velocity.Y = randomcircle.RotatedBy(MathHelper.ToRadians(-90)).Y;
                        Main.dust[num622].alpha      = 150;
                    }
                }
            }
        }
예제 #30
0
        public override void ModifyTooltips(List <TooltipLine> tooltips)
        {
            base.ModifyTooltips(tooltips);

            Color c = Main.hslToRgb((float)(Main.GlobalTime / 4) % 1f, 0.4f, 0.45f);

            //string potion="[i:" + ItemID.RedPotion + "]";
            tooltips.Add(new TooltipLine(mod, "IDG Debug Item", Idglib.ColorText(c, "PhilBill44's dev weapon")));
        }