public override void HandlePacket(BinaryReader reader, int whoAmI) { Message msg = (Message)reader.ReadByte(); #if DEBUG LogMessage($"Handling {msg}"); #endif switch (msg) { //case Message.InitProjEleDmg: // if (!Main.projectile.IndexInRange((int)tags[DataTag.projId])) break; // Projectile p = Main.projectile[(int)tags[DataTag.projId]]; // try // { // kProjectile proj = p.GetGlobalProjectile<kProjectile>(); // proj.elementalDamage = new Dictionary<ELEMENT, int>() // { // { ELEMENT.FIRE, (int)tags[DataTag.fire] }, // { ELEMENT.COLD, (int)tags[DataTag.cold] }, // { ELEMENT.LIGHTNING, (int)tags[DataTag.lightning] }, // { ELEMENT.SHADOW, (int)tags[DataTag.shadow] } // }; // } // catch (SystemException e) // { // Main.NewText(e.ToString()); // } // break; case Message.NpcEleDmg: NPCEleDmgPacket.Read(reader); break; case Message.PrefixNpc: PrefixNPCPacket.Read(reader); break; case Message.SyncStats: SyncStatsPacket.Read(reader); break; case Message.SyncLevel: SyncLevelPacket.Read(reader); kRPG.PlayerEnteredWorld = true; break; case Message.CreateProjectile: CreateProjectilePacket.Read(reader); break; case Message.AddXp: AddXPPacket.Read(reader); break; //case Message.SyncSpear: // SyncSpearPacket.Read(reader); // break; case Message.SwordInit: SwordInitPacket.Read(reader); break; case Message.StaffInit: StaffInitPacket.Read(reader); break; case Message.BowInit: BowInitPacket.Read(reader); break; case Message.SyncHit: SyncHitPacket.Read(reader); break; case Message.SyncCritHit: SyncCritHitPacket.Read(reader); break; } }
public static int NewRangedWeapon(Mod mod, Vector2 position, int npcLevel, int playerLevel, float dps, int enemyDef) { int combined = npcLevel + playerLevel; int ammo; string weapon; if (combined >= 35) { switch (Main.rand.Next(5)) { default: weapon = "AngelBow"; ammo = ItemID.WoodenArrow; break; case 1: weapon = "DemonBow"; ammo = ItemID.WoodenArrow; break; case 2: weapon = "Kalashnikov"; ammo = ItemID.MusketBall; break; case 3: weapon = "M16"; ammo = ItemID.MusketBall; break; case 4: weapon = "Microgun"; ammo = ItemID.MusketBall; break; } } else { switch (Main.rand.Next(4)) { default: weapon = "Longbow"; ammo = ItemID.WoodenArrow; break; case 1: weapon = "GoldenPistol"; ammo = ItemID.MusketBall; break; case 2: weapon = "WoodenBow"; ammo = ItemID.WoodenArrow; break; case 3: weapon = "NambuPistol"; ammo = ItemID.MusketBall; break; } } RangedWeapon item = (RangedWeapon)Main.item[Item.NewItem(position, mod.ItemType(weapon))].modItem; item.dps = dps; item.enemyDef = enemyDef; item.Initialize(); BowInitPacket.Write(item.item.whoAmI, item.dps, item.enemyDef); return(ammo); }