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 
37 public class ActiveSkillGaugeUpdater2 extends GaugeUpdater {
38 
42  @NotNull
43  private final Stats stats;
44 
48  @NotNull
49  private final SkillSet skillSet;
50 
54  @NotNull
55  private final StatsListener statsListener = new StatsListener() {
56 
57  @Override
58  public void resetBefore() {
59  // ignore
60  }
61 
62  @Override
63  public void resetAfter() {
64  // ignore
65  }
66 
67  @Override
68  public void statChanged(final int statNo, final int value) {
69  // ignore
70  }
71 
72  @Override
73  public void simpleWeaponSpeedChanged(final boolean simpleWeaponSpeed) {
74  // ignore
75  }
76 
77  @Override
78  public void titleChanged(@NotNull final String title) {
79  // ignore
80  }
81 
82  @Override
83  public void godNameChanged(@NotNull final String godName) {
84  // ignore
85  }
86 
87  @Override
88  public void rangeChanged(@NotNull final String range) {
89  // ignore
90  }
91 
92  @Override
93  public void activeSkillChanged(@NotNull final String activeSkill) {
95  skill = skillSet.getNamedSkill(activeSkill, -1);
97  update();
98  }
99 
100  @Override
101  public void experienceChanged(final long exp) {
102  // ignore
103  }
104 
105  @Override
106  public void experienceNextLevelChanged(final long expNextLevel) {
107  // ignore
108  }
109 
110  };
111 
115  @NotNull
116  private final SkillListener skillListener = new SkillListener() {
117 
118  @Override
119  public void gainedSkill() {
120  update();
121  }
122 
123  @Override
124  public void lostSkill() {
125  update();
126  }
127 
128  @Override
129  public void changedSkill() {
130  update();
131  }
132 
133  };
134 
139  @NotNull
140  private Skill skill;
141 
148  public ActiveSkillGaugeUpdater2(@NotNull final ExperienceTable experienceTable, @NotNull final Stats stats, @NotNull final SkillSet skillSet) {
149  super(experienceTable, false);
150  this.stats = stats;
151  this.skillSet = skillSet;
153  this.stats.addCrossfireStatsListener(statsListener);
155  update();
156  }
157 
158  @Override
159  public void dispose() {
162  }
163 
167  private void update() {
168  final int percents = getPercentsToNextLevel(skill.getLevel(), skill.getExperience());
169  final StringBuilder tooltip = new StringBuilder();
170  tooltip.append(percents).append("% ").append(skill.getExperience()).append(" (lvl ").append(skill.getLevel()).append(")");
171  final String message = skill.getTooltipText();
172  if (message != null) {
173  tooltip.append("<br><br>");
174  tooltip.append(message);
175  }
176  setValues(percents, 0, 99, Integer.toString(skill.getLevel()), tooltip.toString());
177  }
178 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.skills.SkillSet.getNamedSkill
Skill getNamedSkill(@NotNull final String skillName, final int face)
Definition: SkillSet.java:161
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2
Definition: ActiveSkillGaugeUpdater2.java:37
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.stats
final Stats stats
Definition: ActiveSkillGaugeUpdater2.java:43
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.ActiveSkillGaugeUpdater2
ActiveSkillGaugeUpdater2(@NotNull final ExperienceTable experienceTable, @NotNull final Stats stats, @NotNull final SkillSet skillSet)
Definition: ActiveSkillGaugeUpdater2.java:148
com.realtime.crossfire.jxclient.skills.Skill.getTooltipText
String getTooltipText()
Definition: Skill.java:154
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.skill
Skill skill
Definition: ActiveSkillGaugeUpdater2.java:140
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.update
void update()
Definition: ActiveSkillGaugeUpdater2.java:167
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater
Definition: GaugeUpdater.java:33
com.realtime.crossfire.jxclient.skills.Skill.getLevel
int getLevel()
Definition: Skill.java:107
com.realtime.crossfire.jxclient.skills.Skill
Definition: Skill.java:35
com.realtime.crossfire.jxclient.stats.Stats
Definition: Stats.java:44
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.getPercentsToNextLevel
int getPercentsToNextLevel(final int level, final long experience)
Definition: GaugeUpdater.java:118
com.realtime.crossfire.jxclient.stats.StatsListener
Definition: StatsListener.java:32
com.realtime.crossfire.jxclient.skills.Skill.getExperience
long getExperience()
Definition: Skill.java:99
com.realtime.crossfire.jxclient.skills.SkillListener
Definition: SkillListener.java:31
com.realtime.crossfire.jxclient.skills
Definition: Skill.java:23
com.realtime.crossfire.jxclient.stats.Stats.getActiveSkill
String getActiveSkill()
Definition: Stats.java:846
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.dispose
void dispose()
Definition: ActiveSkillGaugeUpdater2.java:159
com.realtime.crossfire.jxclient.stats.ExperienceTable
Definition: ExperienceTable.java:33
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.skillSet
final SkillSet skillSet
Definition: ActiveSkillGaugeUpdater2.java:49
com.realtime.crossfire.jxclient.skills.Skill.removeSkillListener
void removeSkillListener(@NotNull final SkillListener listener)
Definition: Skill.java:222
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.skillListener
final SkillListener skillListener
Definition: ActiveSkillGaugeUpdater2.java:116
com.realtime.crossfire
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.experienceTable
final ExperienceTable experienceTable
Definition: GaugeUpdater.java:39
com.realtime
com
com.realtime.crossfire.jxclient.stats.Stats.removeCrossfireStatsListener
void removeCrossfireStatsListener(@NotNull final StatsListener statsListener)
Definition: Stats.java:971
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.skills.Skill.addSkillListener
void addSkillListener(@NotNull final SkillListener listener)
Definition: Skill.java:214
com.realtime.crossfire.jxclient.skills.SkillSet
Definition: SkillSet.java:39
com.realtime.crossfire.jxclient.stats
Definition: ActiveSkillWatcher.java:23
com.realtime.crossfire.jxclient.gui.gauge.ActiveSkillGaugeUpdater2.statsListener
final StatsListener statsListener
Definition: ActiveSkillGaugeUpdater2.java:55