Crossfire JXClient, Trunk
ActiveSkillGaugeUpdater2.java
Go to the documentation of this file.
1 /*
2  * This file is part of JXClient, the Fullscreen Java Crossfire Client.
3  *
4  * JXClient is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * JXClient is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with JXClient; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17  *
18  * Copyright (C) 2005-2008 Yann Chachkoff
19  * Copyright (C) 2006-2017,2019-2023 Andreas Kirschbaum
20  * Copyright (C) 2010-2012,2014-2018,2020-2023 Nicolas Weeger
21  */
22 
23 package com.realtime.crossfire.jxclient.gui.gauge;
24 
31 import org.jetbrains.annotations.NotNull;
32 import org.jetbrains.annotations.Nullable;
33 
38 public class ActiveSkillGaugeUpdater2 extends GaugeUpdater {
39 
43  @NotNull
44  private final Stats stats;
45 
49  @NotNull
50  private final SkillSet skillSet;
51 
55  @NotNull
56  private final StatsListener statsListener = new StatsListener() {
57 
58  @Override
59  public void resetBefore() {
60  // ignore
61  }
62 
63  @Override
64  public void resetAfter() {
65  // ignore
66  }
67 
68  @Override
69  public void statChanged(final int statNo, final int value) {
70  // ignore
71  }
72 
73  @Override
74  public void simpleWeaponSpeedChanged(final boolean simpleWeaponSpeed) {
75  // ignore
76  }
77 
78  @Override
79  public void titleChanged(@NotNull final String title) {
80  // ignore
81  }
82 
83  @Override
84  public void godNameChanged(@NotNull final String godName) {
85  // ignore
86  }
87 
88  @Override
89  public void rangeChanged(@NotNull final String range) {
90  // ignore
91  }
92 
93  @Override
94  public void activeSkillChanged(@NotNull final String activeSkill) {
96  skill = skillSet.getNamedSkill(activeSkill, -1);
98  update();
99  }
100 
101  @Override
102  public void experienceChanged(final long exp) {
103  // ignore
104  }
105 
106  @Override
107  public void experienceNextLevelChanged(final long expNextLevel) {
108  // ignore
109  }
110 
111  };
112 
116  @NotNull
117  private final SkillListener skillListener = new SkillListener() {
118 
119  @Override
120  public void gainedSkill() {
121  update();
122  }
123 
124  @Override
125  public void lostSkill() {
126  update();
127  }
128 
129  @Override
130  public void changedSkill() {
131  update();
132  }
133 
134  };
135 
140  @NotNull
141  private Skill skill;
142 
149  public ActiveSkillGaugeUpdater2(@NotNull final ExperienceTable experienceTable, @NotNull final Stats stats, @NotNull final SkillSet skillSet) {
150  super(experienceTable, false);
151  this.stats = stats;
152  this.skillSet = skillSet;
154  this.stats.addCrossfireStatsListener(statsListener);
156  update();
157  }
158 
159  @Override
160  public void dispose() {
163  }
164 
168  private void update() {
169  final int percents = getPercentsToNextLevel(skill.getLevel(), skill.getExperience());
170  final StringBuilder tooltip = new StringBuilder();
171  tooltip.append(percents).append("% ").append(skill.getExperience()).append(" (lvl ").append(skill.getLevel()).append(")");
172  final String message = skill.getTooltipText();
173  if (message != null) {
174  tooltip.append("<br><br>");
175  tooltip.append(message);
176  }
177  setValues(percents, 0, 99, Integer.toString(skill.getLevel()), tooltip.toString());
178  }
179 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.getPercentsToNextLevel
int getPercentsToNextLevel(final int level, final long experience)
Definition: GaugeUpdater.java:118
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.experienceTable
final ExperienceTable experienceTable
Definition: GaugeUpdater.java:39
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.dispose
void dispose()
Definition: ActiveSkillGaugeUpdater2.java:160
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater
Definition: GaugeUpdater.java:33
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2
Definition: ActiveSkillGaugeUpdater2.java:38
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.update
void update()
Definition: ActiveSkillGaugeUpdater2.java:168
com.realtime.crossfire.jxclient.skills.SkillListener
Definition: SkillListener.java:31
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.skill
Skill skill
Definition: ActiveSkillGaugeUpdater2.java:141
com.realtime.crossfire.jxclient.stats.Stats.removeCrossfireStatsListener
void removeCrossfireStatsListener(@NotNull final StatsListener statsListener)
Definition: Stats.java:971
com.realtime.crossfire.jxclient.skills
Definition: Skill.java:23
com.realtime.crossfire.jxclient.skills.Skill
Definition: Skill.java:35
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.setValues
void setValues(final int curValue, final int minValue, final int maxValue)
Definition: GaugeUpdater.java:85
com.realtime.crossfire.jxclient.stats.Stats.getActiveSkill
String getActiveSkill()
Definition: Stats.java:846
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.skillSet
final SkillSet skillSet
Definition: ActiveSkillGaugeUpdater2.java:50
com.realtime.crossfire.jxclient.stats.Stats
Definition: Stats.java:44
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.stats
final Stats stats
Definition: ActiveSkillGaugeUpdater2.java:44
com.realtime.crossfire.jxclient.skills.Skill.getExperience
long getExperience()
Definition: Skill.java:99
com.realtime.crossfire
com.realtime.crossfire.jxclient.skills.Skill.addSkillListener
void addSkillListener(@NotNull final SkillListener listener)
Definition: Skill.java:214
com.realtime
com.realtime.crossfire.jxclient.skills.Skill.removeSkillListener
void removeSkillListener(@NotNull final SkillListener listener)
Definition: Skill.java:222
com.realtime.crossfire.jxclient.stats.ExperienceTable
Definition: ExperienceTable.java:33
com
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.ActiveSkillGaugeUpdater2
ActiveSkillGaugeUpdater2(@NotNull final ExperienceTable experienceTable, @NotNull final Stats stats, @NotNull final SkillSet skillSet)
Definition: ActiveSkillGaugeUpdater2.java:149
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.skillListener
final SkillListener skillListener
Definition: ActiveSkillGaugeUpdater2.java:117
com.realtime.crossfire.jxclient.skills.Skill.getTooltipText
String getTooltipText()
Definition: Skill.java:154
com.realtime.crossfire.jxclient.skills.SkillSet
Definition: SkillSet.java:39
com.realtime.crossfire.jxclient.skills.SkillSet.getNamedSkill
Skill getNamedSkill(@NotNull final String skillName, final int face)
Definition: SkillSet.java:161
com.realtime.crossfire.jxclient.skills.Skill.getLevel
int getLevel()
Definition: Skill.java:107
com.realtime.crossfire.jxclient.stats.StatsListener
Definition: StatsListener.java:32
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.statsListener
final StatsListener statsListener
Definition: ActiveSkillGaugeUpdater2.java:56
com.realtime.crossfire.jxclient.stats
Definition: ActiveSkillWatcher.java:23