Example #1
0
        public override void ModifyHitNPC(Item item, Player player, NPC target, ref int damage, ref float knockBack, ref bool crit)
        {
            if (SuperBees(player) && BeeItem(item))
            {
                damage = (int)(damage * 2f);
            }
            if (crit && player.armor[0].type == mod.ItemType("HiddenShooterHood") && player.armor[1].type == mod.ItemType("HiddenShooterCoat") && player.armor[2].type == mod.ItemType("HiddenShooterPants"))
            {
                damage = (int)(damage * 1.5f);
            }
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (crit && modPlayer.activeMark == 2 && modPlayer.markActivated)
            {
                damage = (int)(damage * 2f);
            }
            if (player.armor[0].type == ItemID.GladiatorHelmet && player.armor[1].type == ItemID.GladiatorBreastplate && player.armor[2].type == ItemID.GladiatorLeggings && (item.type == ItemID.Javelin || item.type == ItemID.BoneJavelin))
            {
                target.AddBuff(BuffID.Slow, 300, true);
            }
            if (target.FindBuffIndex(mod.BuffType("Virus")) != -1)
            {
                damage = (int)(damage * 1.2f);
            }
        }
Example #2
0
        public override void UpdateInventory(Player player)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");
            string        weapType  = "random";

            if (modPlayer.damageType == 0)
            {
                weapType = "melee";
            }
            else if (modPlayer.damageType == 1)
            {
                weapType = "magic";
            }
            else if (modPlayer.damageType == 2)
            {
                weapType = "ranged";
            }
            else if (modPlayer.damageType == 3)
            {
                weapType = "summon";
            }
            else if (modPlayer.damageType == 4)
            {
                weapType = "throwing";
            }
            Tooltip.SetDefault("Right Click to open\n" +
                               "Currently holding a " + weapType + " item type");
        }
Example #3
0
        public override void ModifyHitNPC(Player player, NPC target, ref int damage, ref float knockBack, ref bool crit)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (modPlayer.markActivated)
            {
                damage *= 2;
            }
        }
 public override bool UseItem(Item item, Player player)
 {
     if ((item.potion && item.healLife > 0) || (item.type == ItemID.LifeCrystal && player.name == "Tester"))
     {
         PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");
         modPlayer.markFrames    = 0;
         modPlayer.markActivated = true;
     }
     return(false);
 }
Example #5
0
        public override void OpenBossBag(Player player)
        {
            player.TryGettingDevArmor();
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");
            int           wep       = -1;

            if (modPlayer.damageType == 0)
            {
                wep = mod.ItemType("BlinkBlade");
            }
            else if (modPlayer.damageType == 1)
            {
                wep = mod.ItemType("TechSmite");
            }
            else if (modPlayer.damageType == 2)
            {
                wep = mod.ItemType("BitCannon");
            }
            else if (modPlayer.damageType == 3)
            {
                wep = mod.ItemType("CyberStaff");
            }
            else if (modPlayer.damageType == 4)
            {
                wep = mod.ItemType("CyberCardA");
            }
            else
            {
                switch (Main.rand.Next(0, 5))
                {
                case 0:
                    wep = mod.ItemType("BlinkBlade");
                    break;

                case 1:
                    wep = mod.ItemType("TechSmite");
                    break;

                case 2:
                    wep = mod.ItemType("BitCannon");
                    break;

                case 3:
                    wep = mod.ItemType("CyberStaff");
                    break;

                case 4:
                    wep = mod.ItemType("CyberCardA");
                    break;
                }
            }
            player.QuickSpawnItem(wep);
            player.QuickSpawnItem(mod.ItemType("SuspiciousLookingJoystick"));
        }
Example #6
0
        public override void RightClick(Player player)
        {
            player.QuickSpawnItem(item.type);
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (modPlayer.activeMark != markId)
            {
                modPlayer.activeMark   = markId;
                modPlayer.markDuration = itemDuration;
                Main.NewText("<" + player.name + "> just set it mark to " + DisplayName.GetDefault() + ".", 255, 0, 255);
            }
        }
Example #7
0
        public override void ModifyHitNPC(Projectile projectile, NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection)
        {
            if ((projectile.type >= 184 && projectile.type <= 188) || projectile.type == 654)
            {
                return;
            }

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

            if (SuperBees(player) >= 0 && BeeProj(projectile))
            {
                damage = (int)((damage / 2f) * 2f);
            }
            if (crit && player.armor[0].type == mod.ItemType("HiddenShooterHood") && player.armor[1].type == mod.ItemType("HiddenShooterCoat") && player.armor[2].type == mod.ItemType("HiddenShooterPants"))
            {
                damage = (int)(damage * 1.5f);
            }
            if (target.FindBuffIndex(mod.BuffType("Virus")) != -1)
            {
                damage = (int)(damage * 1.2f);
            }
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (crit && modPlayer.activeMark == 2 && modPlayer.markActivated)
            {
                damage = (int)(damage * 2f);
            }
            if (damage > 0 && projectile.thrown && StellarNinja(player))
            {
                if (Main.rand.Next(20) == 0)
                {
                    modPlayer.stockedTeleports++;
                }
            }
            bool cardBonus2 = false;

            for (int l = 3; l < 8 + player.extraAccessorySlots; l++)
            {
                if (player.armor[l].type == mod.ItemType("TeraCardGlove"))
                {
                    cardBonus2 = true;
                    break;
                }
            }
            if (cardBonus2 && projectile.Name.Contains("Card"))
            {
                if (Main.rand.Next(3) == 0)
                {
                    crit = true;
                }
            }
        }
        public override void AI()
        {
            Player        player    = Main.player[projectile.owner];
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (player.dead)
            {
                modPlayer.practicalCube = false;
            }
            if (modPlayer.practicalCube)
            {
                projectile.timeLeft = 2;
            }
        }
Example #9
0
        public override void CheckActive()
        {
            Player        player    = Main.player[projectile.owner];
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (player.dead)
            {
                modPlayer.sfaMinion = false;
            }
            if (modPlayer.sfaMinion)
            {
                projectile.timeLeft = 2;
            }
        }
Example #10
0
        public override void UpdateInventory(Item item, Player player)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");
            string        t         = item.Name;

            if (item.type == ItemID.MasterBait)
            {
                if (Main.rand.Next(10) == 0)
                {
                    item.SetNameOverride("Marina Joyce");
                }
                else
                {
                    item.SetNameOverride("Master Bait");
                }
            }

            if ((t.Contains("Card")))
            {
                if (modPlayer.activeMark == 4 && modPlayer.markActivated)
                {
                    if (item.type != mod.ItemType("CyberCardA"))
                    {
                        item.useTime      = 10;
                        item.useAnimation = 10;
                    }
                    else
                    {
                        item.useTime      = 8;
                        item.useAnimation = 8;
                    }
                }
                else
                {
                    if (item.type != mod.ItemType("CyberCardA"))
                    {
                        item.useTime      = 15;
                        item.useAnimation = 15;
                    }
                    else
                    {
                        item.useTime      = 12;
                        item.useAnimation = 12;
                    }
                }
            }
        }
    // Use this for initialization
    void Start()
    {
        //Initializes on start up to listen for messages
        //make sure this game object has both UDPPackIO and OSC script attached
        stackOfRates = new float[500];

        //The scripts that will do the changes
        playerChanges = GameObject.FindWithTag("PlayerChange").GetComponent <PlayerChanges>();
        envChanges    = GameObject.FindWithTag("EnvChange").GetComponent <EnvironmentChanges>();

        UDPPacketIO udp = GetComponent <UDPPacketIO>();

        udp.init(RemoteIP, SendToPort, ListenerPort);
        handler = GetComponent <Osc>();
        handler.init(udp);
        handler.SetAllMessageHandler(AllMessageHandler);
    }
        public override void NPCLoot()
        {
            int hD = GetHighestDamage();

            for (int i = 0; i < 256; i++)
            {
                Player player = Main.player[i];
                if (player.active)
                {
                    PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");
                    modPlayer.damageType = hD;
                }
            }
            if (!Main.expertMode)
            {
                int wep = -1;
                switch (hD)
                {
                case 4:
                    wep = mod.ItemType("CyberCardA");
                    break;

                case 0:
                    wep = mod.ItemType("BlinkBlade");
                    break;

                case 3:
                    wep = mod.ItemType("CyberStaff");
                    break;

                case 1:
                    wep = mod.ItemType("TechSmite");
                    break;

                case 2:
                    wep = mod.ItemType("BitCannon");
                    break;
                }
                DropLoot((int)npc.position.X, (int)npc.position.Y, npc.width, npc.height, wep, 1, false, -1, false);
            }
            else
            {
                int index = DropLoot((int)npc.Center.X, (int)npc.Center.Y, npc.width, npc.height, mod.ItemType("MagicalCubeTreasureBag"), 1, false, -1, false);
            }
        }
Example #13
0
        public override void Update(Player player, ref int buffIndex)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (GetTotalInvaders(player) > 0)
            {
                modPlayer.invaderMinion = true;
            }
            if (!modPlayer.invaderMinion)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
        }
        public override void Update(Player player, ref int buffIndex)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (player.ownedProjectileCounts[mod.ProjectileType("Creeper")] > 0)
            {
                modPlayer.creeperMinion = true;
            }
            if (!modPlayer.creeperMinion)
            {
                player.DelBuff(buffIndex);
                buffIndex--;
            }
            else
            {
                player.buffTime[buffIndex] = 18000;
            }
        }
Example #15
0
        public override bool CanUseItem(Player player)
        {
            bool          returnValue = base.CanUseItem(player);
            PlayerChanges modPlayer   = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (player.altFunctionUse == 2)
            {
                if (modPlayer.lastChange <= 0)
                {
                    int stack = player.inventory[player.selectedItem].stack;
                    player.inventory[player.selectedItem].stack  = -1;
                    player.inventory[player.selectedItem].active = false;
                    int num = Item.NewItem((int)player.position.X, (int)player.position.Y, player.width, player.height, mod.ItemType("CyberCardC"), stack, false, 0, false, false);
                    Main.item[num].newAndShiny          = false;
                    Main.player[Main.myPlayer].itemTime = 30;
                    returnValue          = false;
                    modPlayer.lastChange = 15;
                }
            }
            return(returnValue);
        }
Example #16
0
        public override void UpdateInventory(Player player)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (modPlayer.markActivated && modPlayer.activeMark == markId)
            {
                activated = true;
                modPlayer.markFrames++;
                if (modPlayer.markFrames <= modPlayer.markDuration)
                {
                    MarkEffect(player);
                }
                else
                {
                    modPlayer.markActivated = false;
                    modPlayer.markFrames    = 0;
                }
            }
            else
            {
                activated = false;
            }
        }
        public override void UpdateArmorSet(Player player)
        {
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            modPlayer.chameleonMode = true;
            if (biome.name == "Pacific Place")
            {
                player.statDefense  += 4;
                player.thrownDamage += 0.05f;
            }
            else if (biome.name == "Space" || biome.name == "Sky")
            {
                player.wingTimeMax = (int)(player.wingTimeMax * 1.5f);
            }
            else if (biome.name == "Underworld")
            {
                player.fireWalk = true;
                player.lavaMax += 60;
            }
            else if (biome.name == "Dungeon")
            {
                Lighting.AddLight((int)(player.position.X + (float)(player.width / 2)) / 16, (int)(player.position.Y + (float)(player.height / 2)) / 16, 0.8f, 0.95f, 1f);
                player.lifeRegen += 3;
            }
            else if (biome.name == "Caverns")
            {
                Lighting.AddLight((int)(player.position.X + (float)(player.width / 2)) / 16, (int)(player.position.Y + (float)(player.height / 2)) / 16, 0.8f, 0.95f, 1f);
            }
            else if (biome.name == "Crimson" || biome.name == "Corruption")
            {
                player.lifeRegen  += 5;
                player.thrownCrit += 5;
            }
            else if (biome.name == "Hallow")
            {
                player.loveStruck    = true;
                player.thrownDamage += 0.1f;
            }
            else if (biome.name == "Mushroom")
            {
                player.shroomiteStealth = true;
                player.thrownDamage    += ((1f - player.stealth) * 0.3f);
                player.thrownCrit      += (int)(((1f - player.stealth) * 0.1f) * 100f);
                player.rangedDamage    -= ((1f - player.stealth) * 0.6f);
                player.rangedCrit      -= (int)(((1f - player.stealth) * 0.1f) * 100f);
            }
            else if (biome.name == "Desert")
            {
                player.detectCreature = true;
                player.noFallDmg      = true;
            }
            else if (biome.name == "Snow")
            {
                player.buffImmune[46] = true;
                player.buffImmune[47] = true;
            }
            else if (biome.name == "Ocean")
            {
                player.AddBuff(BuffID.Sonar, 2, true);
                player.accDivingHelm = true;
            }
            else if (biome.name == "Jungle")
            {
                player.crystalLeaf = true;
                player.endurance  += 0.05f;
                player.honey       = true;
            }
            string bonus = "You instantly adapts to any biome";

            player.setBonus = bonus;
        }
    // Use this for initialization
    void Start()
    {
        //Initializes on start up to listen for messages
        //make sure this game object has both UDPPackIO and OSC script attached
        stackOfRates = new float[500];

        //The scripts that will do the changes
        playerChanges = GameObject.FindWithTag("PlayerChange").GetComponent<PlayerChanges>();
        envChanges = GameObject.FindWithTag("EnvChange").GetComponent<EnvironmentChanges>();

        UDPPacketIO udp = GetComponent<UDPPacketIO>();
        udp.init(RemoteIP, SendToPort, ListenerPort);
        handler = GetComponent<Osc>();
        handler.init(udp);
        handler.SetAllMessageHandler(AllMessageHandler);
    }
Example #19
0
 // Use this for initialization
 void Start()
 {
     instance        = this;
     attackWhileDown = true;
 }
        public override void AI()
        {
            // Check conditions
            Player        player    = Main.player[projectile.owner];
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (player.dead)
            {
                modPlayer.pacMinion = false;
            }
            if (modPlayer.pacMinion)
            {
                projectile.timeLeft = 2;
            }

            projectile.alpha = 0;
            projectile.frameCounter++;
            if (projectile.frameCounter >= 80)
            {
                projectile.frameCounter = 0;
                projectile.frame        = (projectile.frame + 1) % 3;
            }

            // Pre-definitions
            int   target      = -1;
            float minDistance = 9999f;
            bool  eyesAlive   = false;

            for (int i = 0; i < 200; i++)
            {
                NPC npc = Main.npc[i];
                if (npc.active && (npc.type == NPCID.MoonLordHead || npc.type == NPCID.MoonLordHand) && !npc.dontTakeDamage)
                {
                    eyesAlive = true;
                    break;
                }
            }
            for (int i = 0; i < 200; i++)
            {
                NPC npc = Main.npc[i];
                if (npc.active && !npc.friendly && projectile.Distance(npc.Center) < minDistance && projectile.Distance(npc.Center) < 600f && npc.lifeMax > 5 && !npc.dontTakeDamage)
                {
                    if (npc.type == NPCID.MoonLordCore && eyesAlive)
                    {
                        continue;
                    }
                    target      = i;
                    minDistance = projectile.Distance(npc.Center);
                }
            }

            int thisId = 1;

            for (int i = 0; i < 256; i++)
            {
                Projectile proj = Main.projectile[i];
                if (proj.active && proj.type == projectile.type)
                {
                    if (proj.identity != projectile.identity)
                    {
                        thisId++;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            // AI
            projectile.velocity = Vector2.Zero;
            if (target == -1 || projectile.Distance(player.Center) > 800f)
            {
                if (projectile.Distance(player.Center) > (float)(200f + ((thisId - 1) * 30f)))
                {
                    float distanceX = Math.Abs(player.Center.X - projectile.Center.X);
                    float distanceY = Math.Abs(player.Center.Y - projectile.Center.Y);
                    bool  xFirst    = false;
                    if (distanceX > distanceY)
                    {
                        xFirst = true;
                    }
                    if (xFirst)
                    {
                        CheckX(player.Center);
                        CheckY(player.Center);
                    }
                    else
                    {
                        CheckY(player.Center);
                        CheckX(player.Center);
                    }
                }
                if (projectile.velocity != Vector2.Zero)
                {
                    projectile.rotation = projectile.DirectionTo(projectile.Center + projectile.velocity * 10).ToRotation();
                }
            }
            else
            {
                NPC npc = Main.npc[target];
                if (projectile.Distance(npc.Center) > (float)(200f + ((thisId - 1) * 30f)))
                {
                    float distanceX = Math.Abs(npc.Center.X - projectile.Center.X);
                    float distanceY = Math.Abs(npc.Center.Y - projectile.Center.Y);
                    bool  xFirst    = false;
                    if (distanceX > distanceY)
                    {
                        xFirst = true;
                    }
                    if (xFirst)
                    {
                        CheckX(npc.Center);
                        CheckY(npc.Center);
                    }
                    else
                    {
                        CheckY(npc.Center);
                        CheckX(npc.Center);
                    }
                }
                else
                {
                    projectile.rotation = projectile.DirectionTo(npc.Center).ToRotation();
                    if (projectile.frameCounter % 79 == 0 && projectile.frame == 0)
                    {
                        int a2 = Projectile.NewProjectile(npc.Center.X, npc.Center.Y, (projectile.Center.X - npc.Center.X) / 30, (projectile.Center.Y - npc.Center.Y) / 30, mod.ProjectileType("PacPellets"), projectile.damage, 0, 0);
                    }
                }
            }
        }
 public override void CheckActive()
 {
     Player        player    = Main.player[projectile.owner];
     PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");
 }
        public override void AI()
        {
            Player        player    = Main.player[projectile.owner];
            PlayerChanges modPlayer = (PlayerChanges)player.GetModPlayer(mod, "PlayerChanges");

            if (player.dead)
            {
                modPlayer.invaderMinion = false;
            }
            if (modPlayer.invaderMinion)
            {
                projectile.timeLeft = 2;
            }
            projectile.alpha = 0;
            projectile.frameCounter++;
            if (projectile.frameCounter >= 80)
            {
                projectile.frameCounter = 0;
                projectile.frame        = (projectile.frame + 1) % 2;
            }
            projectile.rotation = 0;
            int   target      = -1;
            float minDistance = 9999f;
            bool  eyesAlive   = false;

            for (int i = 0; i < 200; i++)
            {
                NPC npc = Main.npc[i];
                if (npc.active && (npc.type == NPCID.MoonLordHead || npc.type == NPCID.MoonLordHand) && !npc.dontTakeDamage)
                {
                    eyesAlive = true;
                    break;
                }
            }
            for (int i = 0; i < 200; i++)
            {
                NPC npc = Main.npc[i];
                if (npc.active && !npc.friendly && player.Distance(npc.Center) < minDistance && player.Distance(npc.Center) < 500f && npc.lifeMax > 5 && !npc.dontTakeDamage)
                {
                    if (npc.type == NPCID.MoonLordCore && eyesAlive)
                    {
                        continue;
                    }
                    target      = i;
                    minDistance = player.Distance(npc.Center);
                }
            }
            int thisId = 1;

            for (int i = 0; i < 256; i++)
            {
                Projectile proj = Main.projectile[i];
                if (proj.active && proj.Name.Contains("Invader"))
                {
                    if (proj.identity != projectile.identity)
                    {
                        thisId++;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            int invaders = GetTotalInvaders(player);

            if (target != -1)
            {
                NPC npc = Main.npc[target];

                if (npc.position.Y - (30 * thisId) < projectile.Center.Y)
                {
                    projectile.position.Y--;
                }
                else if (npc.position.Y - (30 * thisId) > projectile.Center.Y)
                {
                    projectile.position.Y++;
                }

                if (npc.Center.X < projectile.Center.X)
                {
                    projectile.position.X--;
                }
                else if (npc.Center.X > projectile.Center.X)
                {
                    projectile.position.X++;
                }

                if (Math.Abs(projectile.Center.X - npc.Center.X) < 100)
                {
                    if (projectile.frameCounter % 79 == 0 && projectile.frame == 1)
                    {
                        Attack();
                    }
                }
            }
            else
            {
                thisId--;
                invaders--;
                int groupQuantity = (int)Math.Floor((float)invaders / 5f);
                if (player.Center.X - getFormPosition(thisId, groupQuantity).X < projectile.Center.X)
                {
                    projectile.position.X--;
                }
                else if (player.Center.X - getFormPosition(thisId, groupQuantity).X > projectile.Center.X)
                {
                    projectile.position.X++;
                }

                if (player.Center.Y - getFormPosition(thisId, groupQuantity).Y < projectile.Center.Y)
                {
                    projectile.position.Y--;
                }
                else if (player.Center.Y - getFormPosition(thisId, groupQuantity).Y > projectile.Center.Y)
                {
                    projectile.position.Y++;
                }
            }
        }