Пример #1
0
 void MapCanPutIntoSlot(Item item, ref bool canPut)
 {
     if (canPut)
     {
         canPut = item.IsAir || AffixItemItem.IsMap(item);
     }
 }
Пример #2
0
 void ModifiedCanPutIntoSlot(Item item, ref bool canPut)
 {
     if (canPut)
     {
         canPut = (item.IsAir && !modifiedItemSlot.item.IsAir) || AffixItemItem.IsRollable(item);
     }
 }
 public override void ProjModifyHitPvp(Item item, Player player, Projectile projectile, Player target, ref float damageMultiplier, ref bool crit)
 {
     if (crit && AffixItemItem.IsAccessoryEquipped(item, player))
     {
         damageMultiplier += Type1.GetValue();
     }
 }
 public override void ProjModifyHitNPC(Item item, Player player, Projectile projectile, NPC target, ref float damageMultiplier, ref float knockbackMultiplier, ref bool crit, ref int hitDirection)
 {
     if (crit && AffixItemItem.IsAccessoryEquipped(item, player))
     {
         damageMultiplier += Type1.GetValue();
     }
 }
Пример #5
0
 public override bool CanBeRolled(AffixItemItem pomItem, Item item)
 {
     return
         (AffixItemItem.IsWeapon(item) &&
          AffixItemItem.CanMelee(item) &&
          (AffixItemItem.IsSwinging(item) || AffixItemItem.IsStabbing(item)));
 }
 void Shock(Item item, Player player, NPC target)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player) && Main.rand.NextFloat(1f) < Type1.GetValue())
     {
         target.GetGlobalNPC <BuffNPC>().AddShockedBuff(target, Type2.GetValue(), PathOfModifiers.ailmentDuration);
     }
 }
 public override void PlayerModifyHitNPC(Item affixItem, Player player, Item item, NPC target, ref float damageMultiplier, ref float knockbackMultiplier, ref bool crit)
 {
     if (crit && AffixItemItem.IsAccessoryEquipped(item, player))
     {
         damageMultiplier += Type1.GetValue();
     }
 }
Пример #8
0
 public override void PlayerModifyHitPvp(Item affixItem, Player player, Item item, Player target, ref float damageMultiplier, ref bool crit)
 {
     if (AffixItemItem.IsAccessoryEquipped(affixItem, player))
     {
         damageMultiplier += Type1.GetValue();
     }
 }
Пример #9
0
 void Chill(Item item, Player player, Player target)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player) && Main.rand.NextFloat(1f) < Type1.GetValue())
     {
         target.GetModPlayer <BuffPlayer>().AddChilledBuff(target, Type2.GetValue(), PathOfModifiers.ailmentDuration);
     }
 }
 public override void PostHurt(Item item, Player player, bool pvp, bool quiet, double damage, int hitDirection, bool crit)
 {
     if (AffixItemItem.IsArmorEquipped(item, player) && PoMUtil.IsLowHP(player))
     {
         player.AddBuff(ModContent.BuffType <Adrenaline>(), (int)Math.Round(Type1.GetValue() * 60));
     }
 }
Пример #11
0
 public override void PlayerGetWeaponCrit(Item item, Item heldItem, Player player, ref float multiplier)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player))
     {
         multiplier += Type1.GetValue();
     }
 }
Пример #12
0
 public override bool CanBeRolled(AffixItemItem pomItem, Item item)
 {
     return
         (AffixItemItem.IsWeapon(item) &&
          !AffixItemItem.IsSpear(item) &&
          !AffixItemItem.IsFlailOrYoyo(item));
 }
Пример #13
0
 public override void NaturalLifeRegen(Item item, Player player, ref float regenMultiplier)
 {
     if (AffixItemItem.IsArmorEquipped(item, player))
     {
         regenMultiplier += Type1.GetValue();
     }
 }
Пример #14
0
 void GainVelocity(Item item, Player player, Vector2 position)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player))
     {
         Vector2 addVelocity = (position - player.Center).SafeNormalize(Vector2.Zero) * Type1.GetValue();
         player.velocity += addVelocity;
     }
 }
Пример #15
0
 public override bool PreHurt(Item item, Player player, bool pvp, bool quiet, ref float damageMultiplier, ref int hitDirection, ref bool crit, ref bool customDamage, ref bool playSound, ref bool genGore, ref PlayerDeathReason damageSource)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player))
     {
         damageMultiplier += Type1.GetValue();
     }
     return(true);
 }
Пример #16
0
 void GainDodgeChance(Item item, Player player)
 {
     if (AffixItemItem.IsArmorEquipped(item, player) && (Main.GameUpdateCount - lastProcTime) >= (int)Math.Round(Type3.GetValue() * 60))
     {
         int durationTicks = (int)Math.Round((Type2.GetValue() * 60));
         player.GetModPlayer <BuffPlayer>().AddDodgeChanceBuff(player, Type1.GetValue(), durationTicks, false);
         lastProcTime = Main.GameUpdateCount;
     }
 }
Пример #17
0
        public override void PostHurt(Item item, Player player, bool pvp, bool quiet, double damage, int hitDirection, bool crit)
        {
            if (AffixItemItem.IsArmorEquipped(item, player) && (Main.GameUpdateCount - lastProcTime) >= (int)Math.Round(Type3.GetValue() * 60))
            {
                player.GetModPlayer <BuffPlayer>().AddGreavesMoveSpeedBuff(player, Type1.GetValue(), (int)Math.Round(Type2.GetValue() * 60), false);

                lastProcTime = Main.GameUpdateCount;
            }
        }
Пример #18
0
 public override bool PlayerConsumeAmmo(Player player, Item item, Item ammo, ref float chanceToNotConsume)
 {
     if (AffixItemItem.IsArmorEquipped(item, player))
     {
         float value = Type1.GetValue();
         chanceToNotConsume += value;
     }
     return(true);
 }
Пример #19
0
 void GainBuffs(Item item, Player player)
 {
     if (AffixItemItem.IsArmorEquipped(item, player))
     {
         int durationTicks = (int)Math.Round(Type1.GetValue() * 60);
         player.AddBuff(BuffID.Flipper, durationTicks);
         player.AddBuff(BuffID.Gills, durationTicks);
         player.AddBuff(BuffID.WaterWalking, durationTicks);
     }
 }
Пример #20
0
        public override bool PreHurt(Item item, Player player, bool pvp, bool quiet, ref float damageMultiplier, ref int hitDirection, ref bool crit, ref bool customDamage, ref bool playSound, ref bool genGore, ref PlayerDeathReason damageSource)
        {
            if (AffixItemItem.IsArmorEquipped(item, player) && (Main.GameUpdateCount - lastProcTime) >= (int)Math.Round(Type2.GetValue() * 60))
            {
                damageMultiplier += Type1.GetValue();
                lastProcTime      = Main.GameUpdateCount;
            }

            return(true);
        }
Пример #21
0
        /// <summary>
        /// Sets <see cref="cost"/>.
        /// </summary>
        /// <param name="action"></param>
        public int CalculateCost(ForgeAction action)
        {
            if (modifiedItem == null || modifierItem == null || modifiedItem.IsAir || modifierItem.IsAir)
            {
                return(0);
            }
            AffixItemItem pomItem = modifiedItem.GetGlobalItem <AffixItemItem>();

            return(pomItem.rarity.forgeCost * forgeActionCostMultipliers[(int)action]);
        }
Пример #22
0
        void SpawnNova(Item item, Player player, int damageTaken)
        {
            if (AffixItemItem.IsArmorEquipped(item, player) && (Main.GameUpdateCount - lastProcTime) >= (int)Math.Round(Type3.GetValue() * 60))
            {
                PlaySound(player);

                Projectile.NewProjectile(player.Center, Vector2.Zero, ModContent.ProjectileType <ReflectNova>(), (int)Math.Round(damageTaken * Type1.GetValue()), 0, player.whoAmI, Type2.GetValue());

                lastProcTime = Main.GameUpdateCount;
            }
        }
Пример #23
0
 void Heal(Item item, Player player)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player))
     {
         int amount = (int)MathHelper.Clamp(player.statManaMax2 * Type1.GetValue(), 1, 9999999);
         if (amount > 0)
         {
             player.statMana += amount;
             PoMEffectHelper.HealMana(player, amount);
         }
     }
 }
Пример #24
0
 void GainBuffs(Item item, Player player)
 {
     if (AffixItemItem.IsArmorEquipped(item, player))
     {
         int durationTicks = (int)Math.Round(Type1.GetValue() * 60);
         player.AddBuff(BuffID.Dangersense, durationTicks);
         player.AddBuff(BuffID.Featherfall, durationTicks);
         player.AddBuff(BuffID.Gravitation, durationTicks);
         player.AddBuff(BuffID.Hunter, durationTicks);
         player.AddBuff(BuffID.ObsidianSkin, durationTicks);
     }
 }
Пример #25
0
        public override bool PreHurt(Item item, Player player, bool pvp, bool quiet, ref float damageMultiplier, ref int hitDirection, ref bool crit, ref bool customDamage, ref bool playSound, ref bool genGore, ref PlayerDeathReason damageSource)
        {
            if (AffixItemItem.IsAccessoryEquipped(item, player))
            {
                int manaAmount = (int)Math.Round(player.statManaMax2 * Type1.GetValue());
                player.statMana += manaAmount;
                PoMEffectHelper.HealMana(player, manaAmount);
                damageMultiplier += Type2.GetValue();
            }

            return(true);
        }
Пример #26
0
 void GainBuffs(Item item, Player player)
 {
     if (AffixItemItem.IsArmorEquipped(item, player))
     {
         int durationTicks = (int)Math.Round(Type1.GetValue() * 60);
         player.AddBuff(BuffID.Builder, durationTicks);
         player.AddBuff(BuffID.Mining, durationTicks);
         player.AddBuff(BuffID.NightOwl, durationTicks);
         player.AddBuff(BuffID.Shine, durationTicks);
         player.AddBuff(BuffID.Spelunker, durationTicks);
         player.AddBuff(BuffID.Heartreach, durationTicks);
     }
 }
Пример #27
0
        public void RollSuffixes()
        {
            int cost = CalculateCost(ForgeAction.RollSuffixes);

            if (CanForge(cost))
            {
                AffixItemItem pomItem = modifiedItem.GetGlobalItem <AffixItemItem>();
                pomItem.RollSuffixTierMultipliers(modifiedItem);
                modifierItem.stack -= cost;

                ItemText.NewText(modifiedItem, modifiedItem.stack, true, false);
                Main.PlaySound(SoundID.Item37, -1, -1);
                ModifierForgeUI.Instance.SetItemSlots(modifiedItem.Clone(), modifierItem.Clone());
                SendModifiedItemToServer();
                SendModifierItemToServer();
            }
        }
Пример #28
0
 void Heal(Item item, Player player)
 {
     if (AffixItemItem.IsAccessoryEquipped(item, player) && (Main.GameUpdateCount - lastProcTime) >= (int)Math.Round(Type2.GetValue() * 60))
     {
         lastProcTime = Main.GameUpdateCount;
         int amount = Type1.GetValue();
         if (amount > 0)
         {
             player.statLife += amount;
             PoMEffectHelper.Heal(player, amount);
         }
         else
         {
             player.immune = false;
             player.Hurt(PlayerDeathReason.ByPlayer(player.whoAmI), -amount, 0, false);
         }
     }
 }
Пример #29
0
        public void AddSuffix()
        {
            int cost = CalculateCost(ForgeAction.AddSuffix);

            if (CanForge(cost))
            {
                AffixItemItem pomItem = modifiedItem.GetGlobalItem <AffixItemItem>();
                if (pomItem.AddRandomSuffix(modifiedItem))
                {
                    modifierItem.stack -= cost;

                    ItemText.NewText(modifiedItem, modifiedItem.stack, true, false);
                    Main.PlaySound(SoundID.Item37, -1, -1);
                    ModifierForgeUI.Instance.SetItemSlots(modifiedItem.Clone(), modifierItem.Clone());
                    SendModifiedItemToServer();
                    SendModifierItemToServer();
                }
            }
        }
Пример #30
0
 public override bool CanBeRolled(AffixItemItem pomItem, Item item)
 {
     return
         (AffixItemItem.IsLegArmor(item));
 }