private void RefreshHotbar() { using (new PerformanceLogger("RefreshHotbar")) { var cPlayer = ZetaDia.CPlayer; LastUpdated = DateTime.UtcNow; PassiveSkills = new HashSet <SNOPower>(cPlayer.PassiveSkills); for (int i = 0; i <= 5; i++) { var diaActiveSkill = cPlayer.GetActiveSkillByIndex(i, ZetaDia.Me.SkillOverrideActive); if (diaActiveSkill == null || diaActiveSkill.Power == SNOPower.None) { continue; } var power = diaActiveSkill.Power; var runeIndex = diaActiveSkill.RuneIndex; var hotbarskill = new HotbarSkill { Power = diaActiveSkill.Power, Slot = (HotbarSlot)i, RuneIndex = runeIndex, HasRuneEquipped = diaActiveSkill.HasRuneEquipped, Skill = SkillUtils.ById(power), //Charges = ZetaDia.Me.CommonData.GetAttribute<int>(((int)diaActiveSkill.Power << 12) + ((int)ActorAttributeType.SkillCharges & 0xFFF)), }; ActivePowers.Add(power); ActiveSkills.Add(hotbarskill); _skillBySNOPower.Add(power, hotbarskill); _skillBySlot.Add((HotbarSlot)i, hotbarskill); if (!DataDictionary.LastUseAbilityTimeDefaults.ContainsKey(power)) { DataDictionary.LastUseAbilityTimeDefaults.Add(power, DateTime.MinValue); } if (!AbilityLastUsed.ContainsKey(power)) { AbilityLastUsed.Add(power, DateTime.MinValue); } } Logger.Log(TrinityLogLevel.Debug, LogCategory.CacheManagement, "Refreshed Hotbar: ActiveSkills={0} PassiveSkills={1}", ActiveSkills.Count, PassiveSkills.Count); } }
public void EquipSkill(SkillDefinition definition) { if (!HasSkillActive(definition) && AcquiredSkills.Count < 4 && HasAcquiredSkill(definition)) { ActiveSkills.Add(definition); player.PutItemInInventory(mod.ItemType(definition.Item.Name)); } if (HasSkillActive(definition)) { ActiveSkills.Remove(definition); foreach (var item in player.inventory) { if (item == null) { continue; } if (item.type == mod.ItemType(definition.Item.Name)) { item.TurnToAir(); } } } }
public Hydra() : base("Hydra", 80, new damage(7, 14), 15, 12, 7) { PassiveSkills.Add(new Recharge(true)); ActiveSkills.Add(new InitiativeBaff()); }
public Fury() : base("Fury", 16, new damage(5, 7), 5, 3, 16) { PassiveSkills.Add(new Recharge(true)); PassiveSkills.Add(new DisableRecharge()); ActiveSkills.Add(new AttackBaff()); }