예제 #1
0
        public sealed override bool PreAI()
        {
            SafeAI();

            projectile.scale = projectile.ai[0] < 10 ? (projectile.ai[0] / 10f) : 1;
            Player player = Main.player[projectile.owner];

            player.heldProj = projectile.whoAmI;

            if (player.HeldItem.useTurn)
            {
                player.direction = Math.Sign(player.velocity.X);
                if (player.direction == 0)
                {
                    player.direction = player.oldDirection;
                }
            }

            int degrees = (int)((player.itemAnimation * -0.7) + 55) * player.direction * (int)player.gravDir;

            if (player.direction == 1)
            {
                degrees += 180;
            }

            if (!_statBuffed)
            {
                _statBuffed = true;

                float damageMult = player.meleeDamage;
                float damageFlat = 0;
                float add        = 0;
                PlayerHooks.ModifyWeaponDamage(player, player.HeldItem, ref add, ref damageMult, ref damageFlat);

                minDamage = (int)(minDamage * damageMult) + (int)damageFlat;
                maxDamage = (int)(maxDamage * (1 + ((damageMult - 1) / 6))) + (int)damageFlat;
            }

            radians = degrees * (Math.PI / 180);
            if (player.channel && !released)
            {
                if (projectile.ai[0] == 0)
                {
                    player.itemTime      = 180;
                    player.itemAnimation = 180;
                }
                if (projectile.ai[0] < ChargeTime)
                {
                    projectile.ai[0]++;
                    float rot = Main.rand.NextFloat(MathHelper.TwoPi);
                    if (DustType != -1)
                    {
                        Dust.NewDustPerfect(projectile.Center + Vector2.One.RotatedBy(rot) * 35, DustType, -Vector2.One.RotatedBy(rot) * 1.5f, 0, default, projectile.ai[0] / 100f);
예제 #2
0
 public override void ModifyWeaponDamage(Player player, ref float add, ref float mult, ref float flat)
 {
     item.useAmmo = AmmoID.Gel;
     PlayerHooks.ModifyWeaponDamage(player, item, ref add, ref mult, ref flat);
     item.useAmmo = AmmoID.Solution;
 }