Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }