コード例 #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);
     }
 }
コード例 #3
0
 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();
     }
 }
コード例 #4
0
 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)));
 }
コード例 #6
0
 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);
     }
 }
コード例 #7
0
 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);
     }
 }
コード例 #10
0
 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));
 }