public static double SharedCalculateResultDurabilityFraction( IItem inputItem1, IItem inputItem2, ICharacter character) { var result = ItemDurabilitySystem.SharedGetDurabilityPercent(inputItem1) + ItemDurabilitySystem.SharedGetDurabilityPercent(inputItem2) + SkillMaintenance.SharedGetCurrentBonusPercent(character); result = MathHelper.Clamp(result, 0, 100); return(result / 100.0); }
private void Refresh() { if (this.IsDisposed) { return; } var character = ClientCurrentCharacterHelper.Character; if (ClientCurrentCharacterFinalStatsHelper.FinalStatsCache.IsDirty) { // refresh will be called again automatically when the new final stats cache is assigned return; } this.PercentSkillText = SkillMaintenance.SharedGetCurrentBonusPercent(character) + "%"; var inputItem1 = this.containerInput.GetItemAtSlot(0); this.PercentInput1Text = GetDurabilityPercentText(inputItem1); var inputItem2 = this.containerInput.GetItemAtSlot(1); this.PercentInput2Text = GetDurabilityPercentText(inputItem2); var outputItem = this.containerOutput.GetItemAtSlot(0); if (outputItem != null) { this.PercentOutputText = string.Empty; return; } else { if (inputItem1 == null || inputItem2 == null) { this.PercentOutputText = "?"; } else { var resultPercent = ObjectTinkerTable.SharedCalculateResultDurabilityFraction(inputItem1, inputItem2, character); this.PercentOutputText = (byte)(100 * resultPercent) + "%"; } } string GetDurabilityPercentText(IItem item) => item == null ? string.Empty : ItemDurabilitySystem.SharedGetDurabilityPercent(item) + "%"; }
private void Refresh() { if (this.IsDisposed) { return; } var character = ClientCurrentCharacterHelper.Character; if (ClientCurrentCharacterFinalStatsHelper.FinalStatsCache.IsDirty) { // refresh will be called again automatically when the new final stats cache is assigned return; } this.PercentSkillText = SkillMaintenance.SharedGetCurrentBonusPercent(character) + "%"; var inputItem1 = this.containerInput.GetItemAtSlot(0); this.PercentInput1Text = GetDurabilityPercentText(inputItem1); var inputItem2 = this.containerInput.GetItemAtSlot(1); this.PercentInput2Text = GetDurabilityPercentText(inputItem2); var outputItem = this.containerOutput.GetItemAtSlot(0); if (outputItem is not null) { this.PercentOutputText = string.Empty; return; } if (inputItem1 is null || inputItem2 is null) { this.PercentOutputText = "?"; }