//////////////// public override void SetStaticDefaults() { this.DisplayName.SetDefault("Powered Exoskeleton Frame"); this.Tooltip.SetDefault("Attacks, movement, and jumping draw less stamina" + '\n' + "Negates fall damage and knockback" + '\n' + "'Oil Can not included.'"); ExtendedPlayerHooks.AddArmorEquipAction("Stamina:ExoskeletonEquip", delegate(Player player, int slot, Item myitem) { if (myitem.type != ModContent.ItemType <ExoskeletonItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingExoskeleton = true; }); ExtendedPlayerHooks.AddArmorUnequipAction("Stamina:ExoskeletonUnequip", delegate(Player player, int slot, int itemType) { if (itemType != ModContent.ItemType <ExoskeletonItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingExoskeleton = false; }); }
//////////////// public override void SetStaticDefaults() { this.DisplayName.SetDefault("Champion Belt"); this.Tooltip.SetDefault("Attacks draw less stamina" + '\n' + "'We are the champions!'"); ExtendedPlayerHooks.AddArmorEquipAction("Stamina:ChampionBeltEquip", delegate(Player player, int slot, Item myitem) { if (myitem.type != ModContent.ItemType <ChampionBeltItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingMuscleBelt = true; }); ExtendedPlayerHooks.AddArmorUnequipAction("Stamina:ChampionBeltUnequip", delegate(Player player, int slot, int itemType) { if (itemType != ModContent.ItemType <ChampionBeltItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingMuscleBelt = false; }); }
//////////////// public override void SetStaticDefaults() { this.DisplayName.SetDefault("Leg Spring"); this.Tooltip.SetDefault("Jumps draw less stamina" + '\n' + "Negates fall damage" + '\n' + "'Puts a spring in your step.'"); ExtendedPlayerHooks.AddArmorEquipAction("Stamina:LegSprintEquip", delegate(Player player, int slot, Item myitem) { if (myitem.type != ModContent.ItemType <LegSpringItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingLegSprings = true; }); ExtendedPlayerHooks.AddArmorUnequipAction("Stamina:LegSprintUnequip", delegate(Player player, int slot, int itemType) { if (itemType != ModContent.ItemType <LegSpringItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingLegSprings = false; }); }
//////////////// public override void SetStaticDefaults() { this.DisplayName.SetDefault("Joint Bracer"); this.Tooltip.SetDefault("Non-jump movements draw less stamina" + '\n' + "Negates knockback" + '\n' + "'For when push comes to shove.'"); ExtendedPlayerHooks.AddArmorEquipAction("Stamina:JointBracerEquip", delegate(Player player, int slot, Item myitem) { if (myitem.type != ModContent.ItemType <JointBracerItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var modplayer = player.GetModPlayer <StaminaPlayer>(); modplayer.IsWearingJointBracer = true; }); ExtendedPlayerHooks.AddArmorUnequipAction("Stamina:JointBracerUnequip", delegate(Player player, int slot, int itemType) { if (itemType != ModContent.ItemType <JointBracerItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var modplayer = player.GetModPlayer <StaminaPlayer>(); modplayer.IsWearingJointBracer = false; }); }
//////////////// public override void SetStaticDefaults() { this.DisplayName.SetDefault("Exercise Supplements"); this.Tooltip.SetDefault("Makes exercise easier"); ExtendedPlayerHooks.AddArmorEquipAction("Stamina:ExerciseSupplementsEquip", delegate(Player player, int slot, Item myitem) { if (myitem.type != ModContent.ItemType <ExerciseSupplementsItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsUsingSupplements = true; }); ExtendedPlayerHooks.AddArmorUnequipAction("Stamina:ExerciseSupplementsUnequip", delegate(Player player, int slot, int itemType) { if (itemType != ModContent.ItemType <ExerciseSupplementsItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsUsingSupplements = false; }); }
//////////////// public override void SetStaticDefaults() { this.DisplayName.SetDefault("Rage Headband"); this.Tooltip.SetDefault("Trades exhaustion for health loss" + '\n' + "'Feel the burn!'"); ExtendedPlayerHooks.AddArmorEquipAction("Stamina:RageHeadbandEquip", delegate(Player player, int slot, Item myitem) { if (myitem.type != ModContent.ItemType <RageHeadbandItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingRageBandana = true; }); ExtendedPlayerHooks.AddArmorUnequipAction("Stamina:RageHeadbandUnequip", delegate(Player player, int slot, int itemType) { if (itemType != ModContent.ItemType <RageHeadbandItem>()) { return; } if (!PlayerItemHelpers.IsAccessorySlot(player, slot)) { return; } var myplayer = player.GetModPlayer <StaminaPlayer>(); myplayer.IsWearingRageBandana = false; }); }
private void CheckArmorEquipHooks(Player player) { bool equipChange = false; for (int i = 0; i < player.armor.Length; i++) { Item item = player.armor[i]; if (item != null && !item.IsAir) { bool hadAnEquip = this.EquipSlotsToItemTypes.ContainsKey(i); if (hadAnEquip) { if (item.type != this.EquipSlotsToItemTypes[i]) { ExtendedPlayerHooks.OnArmorUnequip(player, i, this.EquipSlotsToItemTypes[i]); ExtendedPlayerHooks.OnArmorEquip(player, i, item); this.EquipSlotsToItemTypes[i] = item.type; equipChange = true; } } else { this.EquipSlotsToItemTypes[i] = item.type; ExtendedPlayerHooks.OnArmorEquip(player, i, item); equipChange = true; } } else { if (this.EquipSlotsToItemTypes.ContainsKey(i)) { ExtendedPlayerHooks.OnArmorUnequip(player, i, this.EquipSlotsToItemTypes[i]); this.EquipSlotsToItemTypes.Remove(i); equipChange = true; } } } if (equipChange) { if (Main.netMode == 1) { if (this.CanUpdateData) { this.CanUpdateData = false; Timers.SetTimer("ModHelpersPlayerDataAntiHammer", 60 * 3, () => { this.CanUpdateData = true; return(false); }); PlayerDataProtocol.SyncToEveryone(this.PermaBuffsById, this.HasBuffIds, this.EquipSlotsToItemTypes); } } } }
public void UnloadModules() { this.Loadables.OnModsUnload(); this.Loadables = null; this.ReflectionHelpers = null; this.PacketProtocolMngr = null; this.ExceptionMngr = null; this.Timers = null; this.LogHelpers = null; this.ModFeaturesHelpers = null; this.BuffHelpers = null; this.NetHelpers = null; this.NPCAttributeHelpers = null; this.ProjectileAttributeHelpers = null; this.BuffIdentityHelpers = null; this.NPCBannerHelpers = null; this.RecipeFinderHelpers = null; this.RecipeGroupHelpers = null; this.PlayerHooks = null; this.LoadHelpers = null; this.GetModInfo = null; this.GetModTags = null; this.WorldStateHelpers = null; this.ModLock = null; this.EntityGroups = null; this.AnimatedColors = null; this.AnimatedTextures = null; this.PlayerMessages = null; this.Inbox = null; this.ControlPanel = null; this.MenuItemMngr = null; this.MenuContextMngr = null; this.MusicHelpers = null; this.PlayerIdentityHelpers = null; this.LoadHooks = null; this.CustomLoadHooks = null; this.DataStore = null; this.CustomHotkeys = null; this.XnaHelpers = null; this.Server = null; //this.PlayerDataMngr = null; this.SupportInfo = null; this.RecipeHack = null; this.ModListHelpers = null; this.ItemAttributeHelpers = null; this.WorldTimeHooks = null; this.ControlPanelHotkey = null; this.DataDumpHotkey = null; }
//////////////// private void CheckBuffHooks(Player player) { bool buffChange = false; // Add new buffs for (int i = 0; i < player.buffTime.Length; i++) { if (player.buffTime[i] > 0) { int buffId = player.buffType[i]; if (!this.HasBuffIds.Contains(buffId)) { this.HasBuffIds.Add(buffId); buffChange = true; } } } // Remove old buffs + fire hooks foreach (int buffId in this.HasBuffIds.ToArray()) { if (player.FindBuffIndex(buffId) == -1) { this.HasBuffIds.Remove(buffId); buffChange = true; ExtendedPlayerHooks.OnBuffExpire(player, buffId); } } if (buffChange) { if (Main.netMode == 1) { if (this.CanUpdateData) { this.CanUpdateData = false; Timers.SetTimer("ModHelpersPlayerDataAntiHammer", 60 * 3, () => { this.CanUpdateData = true; return(false); }); PlayerDataProtocol.SyncToEveryone(this.PermaBuffsById, this.HasBuffIds, this.EquipSlotsToItemTypes); } } } }
public override void PostSetupContent() { if (!Main.dedServ) { // Add player stats tab this.PlayerStatsUI = new UIPlayerStatsTab(UITheme.Vanilla); ControlPanelTabs.AddTab(PlayerStatisticsMod.ControlPanelName, this.PlayerStatsUI); // Register boss kills to indicate progress ExtendedPlayerHooks.AddNpcKillHook((plr, npc) => { var myplayer = TmlHelpers.SafelyGetModPlayer <PlayerStatisticsPlayer>(plr); myplayer.RegisterNpcKillIfBoss(npc); }); } }
//////////////// private void NPCKilledByPlayer(NPC npc) { if (Main.netMode == NetmodeID.Server) { Player toPlayer = Main.player[npc.lastInteraction]; if (toPlayer != null && toPlayer.active) { ExtendedPlayerHooks.RunNpcKillHooks(toPlayer, npc); } } else if (Main.netMode == NetmodeID.SinglePlayer) { ExtendedPlayerHooks.RunNpcKillHooks(Main.LocalPlayer, npc); } }
public void UnloadOuter() { this.ReflectionHelpers = null; this.PacketProtocolMngr = null; this.ExceptionMngr = null; this.Timers = null; this.ConfigJson = null; this.LogHelpers = null; this.ModFeaturesHelpers = null; this.BuffHelpers = null; this.NetHelpers = null; this.ItemIdentityHelpers = null; this.NPCIdentityHelpers = null; this.ProjectileIdentityHelpers = null; this.BuffIdentityHelpers = null; this.NPCBannerHelpers = null; this.RecipeIdentityHelpers = null; this.RecipeGroupHelpers = null; this.PlayerHooks = null; this.LoadHelpers = null; this.GetModInfo = null; this.GetModTags = null; this.WorldStateHelpers = null; this.ModLock = null; this.EntityGroups = null; this.AnimatedColors = null; this.PlayerMessages = null; this.Inbox = null; this.ControlPanel = null; this.MenuItemMngr = null; this.MenuContextMngr = null; this.MusicHelpers = null; this.PlayerIdentityHelpers = null; this.CustomEntMngr = null; this.Promises = null; this.DataStore = null; this.CustomHotkeys = null; this.XnaHelpers = null; this.ServerInfo = null; //this.PlayerDataMngr = null; this.SupportInfo = null; this.RecipeHack = null; this.ModListHelpers = null; this.ControlPanelHotkey = null; this.DataDumpHotkey = null; }
private void LoadModules() { this.Loadables.OnModsLoad(); this.ReflectionHelpers = new ReflectionHelpers(); this.DataStore = new DataStore(); this.LoadHooks = new LoadHooks(); this.CustomLoadHooks = new CustomLoadHooks(); this.LoadHelpers = new LoadHelpers(); this.Timers = new Timers(); this.LogHelpers = new LogHelpers(); this.ModFeaturesHelpers = new ModFeaturesHelpers(); this.PacketProtocolMngr = new PacketProtocolManager(); this.BuffHelpers = new BuffHelpers(); this.NetHelpers = new NetPlayHelpers(); this.NPCAttributeHelpers = new NPCAttributeHelpers(); this.ProjectileAttributeHelpers = new ProjectileAttributeHelpers(); this.BuffIdentityHelpers = new BuffAttributesHelpers(); this.NPCBannerHelpers = new NPCBannerHelpers(); this.RecipeFinderHelpers = new RecipeFinderHelpers(); this.RecipeGroupHelpers = new RecipeGroupHelpers(); this.PlayerHooks = new ExtendedPlayerHooks(); this.WorldTimeHooks = new WorldTimeHooks(); this.WorldStateHelpers = new WorldStateHelpers(); this.ControlPanel = new UIControlPanel(); this.ModLock = new ModLockService(); this.EntityGroups = new EntityGroups(); this.PlayerMessages = new PlayerMessages(); this.Inbox = new InboxControl(); this.GetModInfo = new GetModInfo(); this.GetModTags = new GetModTags(); this.MenuItemMngr = new MenuItemManager(); this.MenuContextMngr = new MenuContextServiceManager(); this.MusicHelpers = new MusicHelpers(); this.PlayerIdentityHelpers = new PlayerIdentityHelpers(); this.CustomHotkeys = new CustomHotkeys(); this.XnaHelpers = new XNAHelpers(); this.Server = new Server(); //this.PlayerDataMngr = new PlayerDataManager(); this.SupportInfo = new SupportInfoDisplay(); this.RecipeHack = new RecipeHack(); this.ModListHelpers = new ModListHelpers(); this.ItemAttributeHelpers = new ItemAttributeHelpers(); }
//////////////// private void NpcKilledByPlayer(NPC npc) { var mymod = (ModHelpersMod)this.mod; if (Main.netMode == 2) { Player toPlayer = Main.player[npc.lastInteraction]; if (toPlayer != null && toPlayer.active) { ExtendedPlayerHooks.RunNpcKillHooks(toPlayer, npc); } } else if (Main.netMode == 0) { ExtendedPlayerHooks.RunNpcKillHooks(Main.LocalPlayer, npc); } }
public static bool AddBuffExpireAction(string which, Action <Player, int> action) { return(ExtendedPlayerHooks.AddBuffExpireAction(which, action)); }
public static bool AddArmorUnequipAction(string which, Action <Player, int, int> action) { return(ExtendedPlayerHooks.AddArmorUnequipAction(which, action)); }