private ModPacket GetPacket(PuritySpiritMessageType type) { ModPacket packet = mod.GetPacket(); packet.Write((byte)ExampleModMessageType.PuritySpirit); packet.Write(npc.whoAmI); packet.Write((byte)type); return(packet); }
public void HandlePacket(BinaryReader reader) { PuritySpiritMessageType type = (PuritySpiritMessageType)reader.ReadByte(); if (type == PuritySpiritMessageType.HeroPlayer) { Player player = Main.LocalPlayer; player.GetModPlayer <ExamplePlayer>(mod).heroLives = 3; } else if (type == PuritySpiritMessageType.TargetList) { int numTargets = reader.ReadInt32(); targets.Clear(); for (int k = 0; k < numTargets; k++) { targets.Add(reader.ReadInt32()); } } else if (type == PuritySpiritMessageType.DontTakeDamage) { npc.dontTakeDamage = reader.ReadBoolean(); } else if (type == PuritySpiritMessageType.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 == PuritySpiritMessageType.Damage) { int damage = reader.ReadInt32(); damageTotal += damage; if (Main.netMode == 2) { ModPacket netMessage = GetPacket(PuritySpiritMessageType.Damage); int ignore = reader.ReadInt32(); netMessage.Write(damage); netMessage.Send(-1, ignore); } } }
private ModPacket GetPacket(PuritySpiritMessageType type) { ModPacket packet = mod.GetPacket(); packet.Write((byte)ExampleModMessageType.PuritySpirit); packet.Write(npc.whoAmI); packet.Write((byte)type); return packet; }