private ModPacket GetPacket(ChaosSpiritMessageType type) { ModPacket packet = mod.GetPacket(); packet.Write((byte)MessageType.ChaosSpirit); packet.Write(npc.whoAmI); packet.Write((byte)type); return(packet); }
public void HandlePacket(BinaryReader reader) { ChaosSpiritMessageType type = (ChaosSpiritMessageType)reader.ReadByte(); if (type == ChaosSpiritMessageType.HeroPlayer) { Player player = Main.player[Main.myPlayer]; player.GetModPlayer <BluemagicPlayer>(mod).heroLives = reader.ReadInt32(); } else if (type == ChaosSpiritMessageType.TargetList) { int numTargets = reader.ReadInt32(); targets.Clear(); for (int k = 0; k < numTargets; k++) { targets.Add(reader.ReadInt32()); } } else if (type == ChaosSpiritMessageType.DeActivate) { npc.active = false; } else if (type == ChaosSpiritMessageType.PlaySound) { int soundType = reader.ReadInt32(); int style = reader.ReadInt32(); if (targets.Contains(Main.myPlayer)) { Main.PlaySound(soundType, -1, -1, style); } else { Main.PlaySound(soundType, (int)npc.position.X, (int)npc.position.Y, style); } } else if (type == ChaosSpiritMessageType.Damage) { int damage = reader.ReadInt32(); damageTotal += damage; if (Main.netMode == 2) { ModPacket netMessage = GetPacket(ChaosSpiritMessageType.Damage); int ignore = reader.ReadInt32(); netMessage.Write(damage); netMessage.Send(-1, ignore); } } }