public override void Update(Player player, SkillData rawdata)
        {
            ProgressiveAttackData data = (ProgressiveAttackData)rawdata;

            if (player.inventory[player.selectedItem].melee)
            {
                if (player.itemAnimation > data.LastItemAttackTime)
                {
                    data.AttackLevel++;
                    data.TimeOut = 300;
                    if (data.AttackLevel > 3)
                    {
                        data.AttackLevel -= 3;
                    }
                    CombatText.NewText(new Microsoft.Xna.Framework.Rectangle((int)player.position.X, (int)player.Center.Y, player.width, 1), Microsoft.Xna.Framework.Color.Red, "Swing " + data.AttackLevel, false, true);
                }
            }
            data.LastItemAttackTime = player.itemAnimation;
        }
        public override void UpdateStatus(Terraria.Player player, SkillData rawdata)
        {
            ProgressiveAttackData data = (ProgressiveAttackData)rawdata;

            if (data.AttackLevel > 0)
            {
                if (data.TimeOut == 0)
                {
                    if (data.AttackLevel > 0)
                    {
                        data.AttackLevel = 0;
                        CombatText.NewText(new Microsoft.Xna.Framework.Rectangle((int)player.Center.X, (int)player.Center.Y, 1, 1), Microsoft.Xna.Framework.Color.Red, "Combo Break", false, true);
                    }
                }
                else
                {
                    data.TimeOut--;
                    switch (data.AttackLevel)
                    {
                    case 1:
                        player.meleeDamage += 0.01f * data.Level;
                        break;

                    case 2:
                        player.meleeDamage += 0.2f + 0.01f * data.Level;
                        player.meleeSpeed  -= player.meleeSpeed * 0.01f * data.Level;
                        break;

                    case 3:
                        player.meleeDamage += 0.4f + 0.01f * data.Level;
                        player.meleeSpeed  += 0.3f - player.meleeSpeed * 0.01f * data.Level;
                        break;
                    }
                }
            }
        }