Skip to content

Commit 4b460f7

Browse files
committed
enhancement: updates character window and quest log
- simplifies extra buffs details into a button with tooltip - updates strings for extra buffs button with tooltip. - Weylon's review -> rather updates tooltip on hover.
1 parent 8574ac4 commit 4b460f7

File tree

2 files changed

+34
-70
lines changed

2 files changed

+34
-70
lines changed

Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs

Lines changed: 33 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
using Intersect.Enums;
1010
using Intersect.Framework.Core.GameObjects.Items;
1111
using Intersect.Framework.Core.GameObjects.PlayerClass;
12-
using Intersect.GameObjects;
13-
using Intersect.Network.Packets.Server;
1412

1513
namespace Intersect.Client.Interface.Game.Character;
1614

@@ -71,40 +69,24 @@ public partial class CharacterWindow
7169
public int Y;
7270

7371
//Extra Buffs
72+
Button _detailsButton;
73+
7474
ClassDescriptor mPlayer;
7575

76-
Label mHpRegen;
77-
7876
long HpRegenAmount;
7977

80-
Label mManaRegen;
81-
8278
long ManaRegenAmount;
8379

84-
Label mLifeSteal;
85-
8680
int LifeStealAmount = 0;
8781

88-
Label mAttackSpeed;
89-
90-
Label mExtraExp;
91-
9282
int ExtraExpAmount = 0;
9383

94-
Label mLuck;
95-
9684
int LuckAmount = 0;
9785

98-
Label mTenacity;
99-
10086
int TenacityAmount = 0;
10187

102-
Label mCooldownReduction;
103-
10488
int CooldownAmount = 0;
10589

106-
Label mManaSteal;
107-
10890
int ManaStealAmount = 0;
10991

11092
//Init
@@ -168,18 +150,12 @@ public CharacterWindow(Canvas gameCanvas)
168150
Items[i].Setup();
169151
}
170152

171-
var extraBuffsLabel = new Label(mCharacterWindow, "ExtraBuffsLabel");
172-
extraBuffsLabel.SetText(Strings.Character.ExtraBuffs);
173-
174-
mHpRegen = new Label(mCharacterWindow, "HpRegen");
175-
mManaRegen = new Label(mCharacterWindow, "ManaRegen");
176-
mLifeSteal = new Label(mCharacterWindow, "Lifesteal");
177-
mAttackSpeed = new Label(mCharacterWindow, "AttackSpeed");
178-
mExtraExp = new Label(mCharacterWindow, "ExtraExp");
179-
mLuck = new Label(mCharacterWindow, "Luck");
180-
mTenacity = new Label(mCharacterWindow, "Tenacity");
181-
mCooldownReduction = new Label(mCharacterWindow, "CooldownReduction");
182-
mManaSteal = new Label(mCharacterWindow, "Manasteal");
153+
_detailsButton = new Button(mCharacterWindow, nameof(_detailsButton))
154+
{
155+
Text = Strings.Character.ExtraBuffDetails,
156+
};
157+
_detailsButton.HoverEnter += UpdateExtraBuffTooltip; // Update Tooltip on hover.
158+
UpdateExtraBuffTooltip(null, null); // Initial tooltip update.
183159

184160
mCharacterWindow.LoadJsonUi(GameContentManager.UI.InGame, Graphics.Renderer.GetResolutionString());
185161
}
@@ -411,29 +387,16 @@ public void UpdateExtraBuffs()
411387
mPlayer = ClassDescriptor.Get(Globals.Me?.Class ?? Guid.Empty);
412388

413389
//Getting HP and Mana Regen
414-
if (mPlayer != null)
415-
{
416-
HpRegenAmount = mPlayer.VitalRegen[0];
417-
mHpRegen.SetText(Strings.Character.HealthRegen.ToString(HpRegenAmount));
418-
ManaRegenAmount = mPlayer.VitalRegen[1];
419-
mManaRegen.SetText(Strings.Character.ManaRegen.ToString(ManaRegenAmount));
420-
}
390+
HpRegenAmount = mPlayer?.VitalRegen[(int)Vital.Health] ?? 0;
391+
ManaRegenAmount = mPlayer?.VitalRegen[(int)Vital.Mana] ?? 0;
421392

422-
CooldownAmount = 0;
393+
//Reset all values
423394
LifeStealAmount = 0;
424395
TenacityAmount = 0;
425396
LuckAmount = 0;
426397
ExtraExpAmount = 0;
427398
ManaStealAmount = 0;
428-
429-
mLifeSteal.SetText(Strings.Character.Lifesteal.ToString(0));
430-
mExtraExp.SetText(Strings.Character.ExtraExp.ToString(0));
431-
mLuck.SetText(Strings.Character.Luck.ToString(0));
432-
mTenacity.SetText(Strings.Character.Tenacity.ToString(0));
433-
mCooldownReduction.SetText(Strings.Character.CooldownReduction.ToString(0));
434-
mManaSteal.SetText(Strings.Character.Manasteal.ToString(0));
435-
436-
mAttackSpeed.SetText(Strings.Character.AttackSpeed.ToString(Globals.Me.CalculateAttackTime() / 1000f));
399+
CooldownAmount = 0;
437400
}
438401

439402
/// <summary>
@@ -449,20 +412,18 @@ public void UpdateExtraBuffs(Guid itemId)
449412
return;
450413
}
451414

452-
//Getting HP and Mana Regen
453-
if (item.VitalsRegen[0] != 0)
415+
//Getting HP and Mana Regen from items
416+
if (item.VitalsRegen[(int)Vital.Health] != 0)
454417
{
455-
HpRegenAmount += item.VitalsRegen[0];
456-
mHpRegen?.SetText(Strings.Character.HealthRegen.ToString(HpRegenAmount));
418+
HpRegenAmount += item.VitalsRegen[(int)Vital.Health];
457419
}
458420

459-
if (item.VitalsRegen[1] != 0)
421+
if (item.VitalsRegen[(int)Vital.Mana] != 0)
460422
{
461-
ManaRegenAmount += item.VitalsRegen[1];
462-
mManaRegen?.SetText(Strings.Character.ManaRegen.ToString(ManaRegenAmount));
423+
ManaRegenAmount += item.VitalsRegen[(int)Vital.Mana];
463424
}
464425

465-
//Getting extra buffs
426+
//Getting extra buffs from items
466427
if (item.Effects.Find(effect => effect.Type != ItemEffect.None && effect.Percentage > 0) != default)
467428
{
468429
foreach(var effect in item.Effects)
@@ -476,39 +437,42 @@ public void UpdateExtraBuffs(Guid itemId)
476437
{
477438
case ItemEffect.CooldownReduction:
478439
CooldownAmount += effect.Percentage;
479-
mCooldownReduction?.SetText(Strings.Character.CooldownReduction.ToString(CooldownAmount));
480-
481440
break;
482441
case ItemEffect.Lifesteal:
483442
LifeStealAmount += effect.Percentage;
484-
mLifeSteal?.SetText(Strings.Character.Lifesteal.ToString(LifeStealAmount));
485-
486443
break;
487444
case ItemEffect.Tenacity:
488445
TenacityAmount += effect.Percentage;
489-
mTenacity?.SetText(Strings.Character.Tenacity.ToString(TenacityAmount));
490-
491446
break;
492447
case ItemEffect.Luck:
493448
LuckAmount += effect.Percentage;
494-
mLuck?.SetText(Strings.Character.Luck.ToString(LuckAmount));
495-
496449
break;
497450
case ItemEffect.EXP:
498451
ExtraExpAmount += effect.Percentage;
499-
mExtraExp?.SetText(Strings.Character.ExtraExp.ToString(ExtraExpAmount));
500-
501452
break;
502453
case ItemEffect.Manasteal:
503454
ManaStealAmount += effect.Percentage;
504-
mManaSteal?.SetText(Strings.Character.Manasteal.ToString(ManaStealAmount));
505-
506455
break;
507456
}
508457
}
509458
}
510459
}
511460

461+
public void UpdateExtraBuffTooltip(Base? sender, EventArgs? arguments)
462+
{
463+
var tooltip = new System.Text.StringBuilder();
464+
tooltip.AppendLine(Strings.Character.HealthRegen.ToString(HpRegenAmount));
465+
tooltip.AppendLine(Strings.Character.ManaRegen.ToString(ManaRegenAmount));
466+
tooltip.AppendLine(Strings.Character.Lifesteal.ToString(LifeStealAmount));
467+
tooltip.AppendLine(Strings.Character.AttackSpeed.ToString(Globals.Me?.CalculateAttackTime() / 1000f));
468+
tooltip.AppendLine(Strings.Character.ExtraExp.ToString(ExtraExpAmount));
469+
tooltip.AppendLine(Strings.Character.Luck.ToString(LuckAmount));
470+
tooltip.AppendLine(Strings.Character.Tenacity.ToString(TenacityAmount));
471+
tooltip.AppendLine(Strings.Character.CooldownReduction.ToString(CooldownAmount));
472+
tooltip.AppendLine(Strings.Character.Manasteal.ToString(ManaStealAmount));
473+
_detailsButton.SetToolTipText(tooltip.ToString());
474+
}
475+
512476
/// <summary>
513477
/// Show the window
514478
/// </summary>

Intersect.Client.Core/Localization/Strings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ public partial struct Character
637637
public static LocalizedString Equipment = @"Equipment:";
638638

639639
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
640-
public static LocalizedString ExtraBuffs = @"Extra Buffs";
640+
public static LocalizedString ExtraBuffDetails = @"Details";
641641

642642
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
643643
public static LocalizedString ExtraExp = @"Bonus EXP: {00}%";

0 commit comments

Comments
 (0)