2 using System.Collections.Generic;
9 using Microsoft.Xna.Framework.Graphics;
14 namespace Loot.Api.Core
24 public Mod Mod {
get;
internal set; }
26 Mod ILoadableContentSetter.Mod
31 public uint Type {
get;
internal set; }
33 uint ILoadableContentSetter.Type
38 public new string Name => GetType().Name;
42 public new Player player => DelegatorPlayer.player;
48 public bool IsBeingDelegated {
get;
internal set; }
90 var resetEffects = GetType()
91 .GetMethods(BindingFlags.NonPublic | BindingFlags.Instance)
92 .Where(x => x.GetCustomAttributes().OfType<
AutoDelegation>().Any())
93 .ToDictionary(x => x, y => y.GetCustomAttribute<
AutoDelegation>());
95 foreach (var kvp
in resetEffects.Where(x => x.Value.DelegationTypes.Contains(
"OnResetEffects")))
99 kvp.Key.Invoke(
this,
new object[] { delegatorPlayer.player });
103 Loot.Logger.Error(
"Error in ModifierEffect._DetachDelegations", e);
108 DetachDelegations(delegatorPlayer);
134 public sealed
override bool Autoload(ref
string name)
136 public override bool CloneNewInstances
138 public sealed
override void Load(TagCompound tag)
150 [Obsolete(
"SetupStartInventory now has an overload with a mediumcoreDeath bool argument, please use that.")]
168 return base.CustomBiomesMatch(other);
184 return base.GetMapBackgroundImage();
195 public sealed
override bool ShiftClickSlot(Item[] inventory,
int context,
int slot)
197 return base.ShiftClickSlot(inventory, context, slot);
199 public sealed
override void PostSellItem(NPC vendor, Item[] shopInventory, Item item)
202 public sealed
override bool CanSellItem(NPC vendor, Item[] shopInventory, Item item)
204 return base.CanSellItem(vendor, shopInventory, item);
206 public sealed
override void PostBuyItem(NPC vendor, Item[] shopInventory, Item item)
209 public sealed
override bool CanBuyItem(NPC vendor, Item[] shopInventory, Item item)
211 return base.CanBuyItem(vendor, shopInventory, item);
sealed override void PostBuyItem(NPC vendor, Item[] shopInventory, Item item)
sealed override bool CustomBiomesMatch(Player other)
override void PreSavePlayer()
sealed override void ReceiveCustomBiomes(BinaryReader reader)
sealed override void Load(TagCompound tag)
sealed override void SendCustomBiomes(BinaryWriter writer)
This attribute may be used to skip usage of AttachDelegations and DetachDelegations Which is a cumber...
sealed override Texture2D GetMapBackgroundImage()
sealed override void PreSaveCustomData()
A ModifierEffect signifies the effect of a modifier on a player It should house the implementation...
sealed override void PlayerConnect(Player player)
virtual void AttachDelegations(ModifierDelegatorPlayer delegatorPlayer)
Allows modders to perform various delegations when this modifier is detected to become active This me...
sealed override void OnEnterWorld(Player player)
sealed override void CopyCustomBiomesTo(Player other)
override void UpdateBiomeVisuals()
virtual void DetachDelegations(ModifierDelegatorPlayer delegatorPlayer)
Allows modders to undo their performed delegations in AttachDelegations
override void UpdateBiomes()
sealed override void SetupStartInventory(IList< Item > items)
override void PostSavePlayer()
sealed override bool CanSellItem(NPC vendor, Item[] shopInventory, Item item)
virtual void ResetEffects()
Automatically called when the ModPlayer does its ResetEffects Also automatically called when the dele...
sealed override bool ShiftClickSlot(Item[] inventory, int context, int slot)
sealed override void PostSellItem(NPC vendor, Item[] shopInventory, Item item)
sealed override void LoadLegacy(BinaryReader reader)
sealed override void PlayerDisconnect(Player player)
virtual void OnInitialize()
Called when the ModPlayer initializes the effect
Defines a piece of loadable content The interface is used in classes where the deriving class already...
sealed override void SetupStartInventory(IList< Item > items, bool mediumcoreDeath)
virtual void Clone(ref ModifierEffect clone)
A modder can provide custom cloning of effects in this hook
Holds player-entity data and handles it
sealed override void clientClone(ModPlayer clientClone)
sealed override bool CanBuyItem(NPC vendor, Item[] shopInventory, Item item)