Even More Modifiers  1.0.0.0
A mod for rolling various bonus stats on items
/home/travis/build/Jofairden/EvenMoreModifiers/LootItemModifier.cs
Go to the documentation of this file.
1 using System.Collections.Generic;
2 using Loot.Api.Core;
3 using Loot.Api.Mechanism;
4 using Loot.Api.Strategy;
5 using Terraria;
6 
7 namespace Loot
8 {
9  static class LootItemModifier
10  {
11  public static Item RerollModifiers(this Item item, RollingStrategy strategy, ModifierContext context, RollingStrategyProperties properties)
12  {
13  var refItem = item.Clone();
14  var pool = ModifierPoolMechanism.GetPool(context);
15  var selected = item.RollModifiers(strategy, pool, context, properties);
16  return refItem.UpdateModifiers(selected);
17  }
18 
19  public static Item UpdateModifiers(this Item item, List<Modifier> modifiers)
20  {
21  LootModItem.GetInfo(item).Modifiers = new FiniteModifierPool(modifiers);
22  LootModItem.GetInfo(item).Modifiers.Modifiers.ForEach(x =>
23  {
24  x.Apply(item);
25  });
26  return item;
27  }
28  }
29 }
Defines a context in which a Modifier might be rolled Which fields are available (not null) depends o...
Defines properties that will be used when an item is being rolled in a IRollingStrategy<T> These can ...
static Item UpdateModifiers(this Item item, List< Modifier > modifiers)
Defines an item that may be modified by modifiers from mods
Definition: LootModItem.cs:21
static Item RerollModifiers(this Item item, RollingStrategy strategy, ModifierContext context, RollingStrategyProperties properties)
static ModifierPool GetPool(ModifierContext context)
readonly List< Modifier > Modifiers
Definition: ModifierPool.cs:19
static LootModItem GetInfo(Item item)
FiniteModifierPool Modifiers
Definition: LootModItem.cs:32