Ejemplo n.º 1
0
        private void Deserialize(
            BinaryReader reader,
            int senderPlayerId)
        {
            mPlayerId = reader.ReadInt32();

            try
            {
                mBossKilled = (BossGroupEnum)reader.ReadInt32();
            }
            catch
            {
                mBossKilled = BossGroupEnum.INVALID;
            }
        }
Ejemplo n.º 2
0
        public static void SerializeAndSend(
            Mod mod,
            int playerId,
            BossGroupEnum bossDefeated)
        {
            if (Main.netMode != NetmodeID.SinglePlayer)
            {
                ModPacket newPacket = mod.GetPacket();

                newPacket.Write((int)mPacketMessageType);

                newPacket.Write(playerId);
                newPacket.Write((int)bossDefeated);

                newPacket.Send();
            }
        }
Ejemplo n.º 3
0
        public override void NPCLoot(NPC npc)
        {
            GNPC info = npc.GetGlobalNPC <GNPC>();

            if (info.deathMarkOwner >= 0)
            {
                Player player = Main.player[info.deathMarkOwner];
                int    index  = player.FindBuffIndex(mod.BuffType <Buffs.ActiveCooldown>());
                player.buffTime[index] = 1;
            }
            if (!npc.boss)
            {
                return;
            }
            for (int i = 0; i < 256; i++)
            {
                if (Main.player[i].active)
                {
                    Player        p         = Main.player[i];
                    MPlayer       player    = p.GetModPlayer <MPlayer>();
                    bool          leveledUp = false;
                    BossGroupEnum msgType   = BossGroupEnum.INVALID;

                    if (npc.type == NPCID.KingSlime && !player.killedSlime)
                    {
                        msgType            = BossGroupEnum.KING_SLIME;
                        player.killedSlime = true;
                        leveledUp          = true;
                    }
                    else if (npc.type == NPCID.EyeofCthulhu && !player.killedEye)
                    {
                        msgType          = BossGroupEnum.EYE_OF_CTHULHU;
                        player.killedEye = true;
                        leveledUp        = true;
                    }
                    else if ((npc.type == NPCID.EaterofWorldsHead || npc.type == NPCID.EaterofWorldsBody || npc.type == NPCID.EaterofWorldsTail || npc.type == NPCID.BrainofCthulhu) && !player.killedWormOrBrain)
                    {
                        msgType = BossGroupEnum.BRAIN_OF_CTHULHU_OR_EATER_OF_WORLDS;
                        player.killedWormOrBrain = true;
                        leveledUp = true;
                    }
                    else if (npc.type == NPCID.SkeletronHead && !player.killedSkelly)
                    {
                        msgType             = BossGroupEnum.SKELETRON;
                        player.killedSkelly = true;
                        leveledUp           = true;
                    }
                    else if (npc.type == NPCID.QueenBee && !player.killedBee)
                    {
                        msgType          = BossGroupEnum.QUEEN_BEE;
                        player.killedBee = true;
                        leveledUp        = true;
                    }
                    else if (npc.type == NPCID.WallofFlesh && !player.killedWall)
                    {
                        msgType           = BossGroupEnum.WALL_OF_FLESH;
                        player.killedWall = true;
                        leveledUp         = true;
                    }
                    else if (npc.type == NPCID.TheDestroyer && !player.killedDestroyer)
                    {
                        msgType = BossGroupEnum.DESTROYER;
                        player.killedDestroyer = true;
                        leveledUp = true;
                    }
                    else if ((npc.type == NPCID.Retinazer || npc.type == NPCID.Spazmatism) && !player.killedTwins)
                    {
                        msgType            = BossGroupEnum.TWINS;
                        player.killedTwins = true;
                        leveledUp          = true;
                    }
                    else if (npc.type == NPCID.SkeletronPrime && !player.killedPrime)
                    {
                        msgType            = BossGroupEnum.SKELETRON_PRIME;
                        player.killedPrime = true;
                        leveledUp          = true;
                    }
                    else if (npc.type == NPCID.Plantera && !player.killedPlant)
                    {
                        msgType            = BossGroupEnum.PLANTERA;
                        player.killedPlant = true;
                        leveledUp          = true;
                    }
                    else if (npc.type == NPCID.Golem && !player.killedGolem)
                    {
                        msgType            = BossGroupEnum.GOLEM;
                        player.killedGolem = true;
                        leveledUp          = true;
                    }
                    else if (npc.type == NPCID.DukeFishron && !player.killedFish)
                    {
                        msgType           = BossGroupEnum.DUKE_FISHRON;
                        player.killedFish = true;
                        leveledUp         = true;
                    }
                    else if (npc.type == NPCID.CultistBoss && !player.killedCultist)
                    {
                        msgType = BossGroupEnum.LUNATIC_CULTIST;
                        player.killedCultist = true;
                        leveledUp            = true;
                    }
                    else if (npc.type == NPCID.MoonLordCore && !player.killedMoon)
                    {
                        msgType           = BossGroupEnum.MOON_LORD;
                        player.killedMoon = true;
                        leveledUp         = true;
                    }

                    if (leveledUp)
                    {
                        CombatText.NewText(new Rectangle((int)p.position.X, (int)p.position.Y - 50, p.width, p.height), new Color(255, 255, 255, 255), "LEVEL UP!", true);

                        LevelUpPlayerNetMsg.SerializeAndSend(
                            mod,
                            p.whoAmI,
                            msgType);
                    }
                }
            }
        }