public override bool CanUseItem(Player player) { SpellbladePlayer sp = player.GetModPlayer <SpellbladePlayer>(); SpellbladePlayer.SetItemAltUse(player, Main.myPlayer == player.whoAmI); if (sp.altWeaponFunc) { OnRightClick(player); } else { OnLeftClick(player); } //Main.NewText($"-Spellblade- Player: {Main.player[player.whoAmI].name} AltFunc = {sp.altWeaponFunc}"); if (player.GetManaCost(item) > player.statMana) { return(false); } if (sp.altWeaponFunc == true && player.HasBuff(ModContent.BuffType <SwordProtection>())) { return(false); } return(true); }
public override void OnHitNPC(Player player, NPC target, int damage, float knockBack, bool crit) { SpellbladePlayer sp = player.GetModPlayer <SpellbladePlayer>(); if (sp.altWeaponFunc) { player.statMana += (int)Math.Round((float)damage / swingDamage * onHitManaRegen); } sp.TryToGainArcane(); }
public override void HandlePacket(BinaryReader reader, int whoAmI) { ModMessageType msgType = (ModMessageType)reader.ReadByte(); switch (msgType) { //divide sync player for each subclass if poor performance case ModMessageType.SyncPlayer: // SyncPlayer will be called automatically, so there is no need to forward this data to other clients. byte playernumber = reader.ReadByte(); AssassinPlayer ap = Main.player[playernumber].GetModPlayer <AssassinPlayer>(); HunterPlayer hp = Main.player[playernumber].GetModPlayer <HunterPlayer>(); SpellbladePlayer sp = Main.player[playernumber].GetModPlayer <SpellbladePlayer>(); sp.arcaneCurse = reader.ReadBoolean(); TechnomancerPlayer tp = Main.player[playernumber].GetModPlayer <TechnomancerPlayer>(); tp.spawnStacks = reader.ReadInt32(); break; case ModMessageType.TechnomancerForceSync: playernumber = reader.ReadByte(); tp = Main.player[playernumber].GetModPlayer <TechnomancerPlayer>(); tp.spawnStacks = reader.ReadByte(); if (Main.netMode == NetmodeID.Server) { var packet = GetPacket(); packet.Write((byte)ModMessageType.TechnomancerForceSync); packet.Write(playernumber); packet.Write(tp.spawnStacks); packet.Send(-1, playernumber); } break; default: Logger.WarnFormat("Spellblade Revised: Unknown Message type: {0}", msgType); break; } }