Crossfire JXClient, Trunk
StatGaugeUpdater.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 
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
34 
39 public class StatGaugeUpdater extends GaugeUpdater {
40 
45  private static final int LOWFOOD_LIMIT = 100;
46 
50  private final int stat;
51 
55  @NotNull
56  private final Stats stats;
57 
61  @NotNull
62  private final ItemSet itemSet;
63 
67  private boolean active;
68 
72  @NotNull
73  private final StatsListener statsListener = new StatsListener() {
74 
75  @Override
76  public void resetBefore() {
77  // ignore
78  }
79 
80  @Override
81  public void resetAfter() {
82  // ignore
83  }
84 
85  @Override
86  public void statChanged(final int statNo, final int value) {
87  switch (stat) {
88  case Stats.CS_STAT_HP:
89  if (statNo == Stats.CS_STAT_HP) {
91  } else if (statNo == Stats.CS_STAT_MAXHP) {
93  }
94  break;
95 
96  case Stats.CS_STAT_SP:
97  if (statNo == Stats.CS_STAT_SP) {
99  } else if (statNo == Stats.CS_STAT_MAXSP) {
100  setValues(stats.getStat(Stats.CS_STAT_SP), 0, value);
101  }
102  break;
103 
104  case Stats.CS_STAT_FOOD:
105  if (statNo == Stats.CS_STAT_FOOD) {
106  setValues(value, 0, 999);
107  }
108  break;
109 
110  case Stats.C_STAT_LOWFOOD:
111  if (statNo == Stats.C_STAT_LOWFOOD) {
113  }
114  break;
115 
116  case Stats.CS_STAT_GRACE:
117  if (statNo == Stats.CS_STAT_GRACE) {
119  } else if (statNo == Stats.CS_STAT_MAXGRACE) {
121  }
122  break;
123 
124  case Stats.C_STAT_POISONED:
125  if (statNo == Stats.C_STAT_POISONED) {
126  setValues(value, 0, 1);
127  }
128  break;
129 
130  case Stats.CS_STAT_GOLEM_HP:
131  if (statNo == Stats.CS_STAT_GOLEM_HP) {
133  } else if (statNo == Stats.CS_STAT_GOLEM_MAXHP) {
135  }
136  break;
137 
138  default:
139  if (Stats.CS_STAT_RESIST_START <= stat && stat <= Stats.CS_STAT_RESIST_END && statNo == stat) {
140  setValues(value, 0, 100);
141  }
142  break;
143  }
144  }
145 
146  @Override
147  public void simpleWeaponSpeedChanged(final boolean simpleWeaponSpeed) {
148  // ignore
149  }
150 
151  @Override
152  public void titleChanged(@NotNull final String title) {
153  // ignore
154  }
155 
156  @Override
157  public void godNameChanged(@NotNull final String godName) {
158  // ignore
159  }
160 
161  @Override
162  public void rangeChanged(@NotNull final String range) {
163  // ignore
164  }
165 
166  @Override
167  public void activeSkillChanged(@NotNull final String activeSkill) {
168  // ignore
169  }
170 
171  @Override
172  public void experienceChanged(final long exp) {
175  }
176  }
177 
178  @Override
179  public void experienceNextLevelChanged(final long expNextLevel) {
182  }
183  }
184 
185  };
186 
190  @NotNull
192 
193  @Override
194  public void playerChanged(@Nullable final CfItem player) {
195  active = player != null;
196  }
197 
198  @Override
199  public void openContainerChanged(final int tag) {
200  // ignore
201  }
202 
203  };
204 
212  public StatGaugeUpdater(@NotNull final ExperienceTable experienceTable, final int stat, @NotNull final Stats stats, @NotNull final ItemSet itemSet) {
214  this.stat = stat;
215  this.stats = stats;
216  this.itemSet = itemSet;
217  this.stats.addCrossfireStatsListener(statsListener);
218  this.itemSet.addItemSetListener(itemSetListener);
219  }
220 
221  @Override
222  public void dispose() {
225  }
226 
230  private void updateExperienceNextLevel() {
231  final int level = stats.getStat(Stats.CS_STAT_LEVEL);
232  final long experience = stats.getExperience();
233  final int percents = getPercentsToNextLevel(level, experience);
234  setValues(percents, 0, 99, percents+"%", "Level: "+level+"<br>Experience:"+Formatter.formatLong(experience)+"<br>Next level:"+Formatter.formatLong(getExperienceToNextLevel(level, experience)));
235  }
236 
237 }
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.util.Formatter.formatLong
static String formatLong(final long value)
Definition: Formatter.java:45
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_LEVEL
static final int CS_STAT_LEVEL
Definition: Stats.java:109
com.realtime.crossfire.jxclient.stats.Stats.C_STAT_EXP_NEXT_LEVEL
static final int C_STAT_EXP_NEXT_LEVEL
Definition: Stats.java:104
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.stats
final Stats stats
Definition: StatGaugeUpdater.java:56
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_RESIST_START
static final int CS_STAT_RESIST_START
Definition: Stats.java:351
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater
Definition: GaugeUpdater.java:33
com.realtime.crossfire.jxclient.items.ItemSet
Definition: ItemSet.java:44
com.realtime.crossfire.jxclient.stats.Stats
Definition: Stats.java:44
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_FOOD
static final int CS_STAT_FOOD
Definition: Stats.java:139
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_GOLEM_MAXHP
static final int CS_STAT_GOLEM_MAXHP
Definition: Stats.java:325
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.Stats.CS_STAT_MAXGRACE
static final int CS_STAT_MAXGRACE
Definition: Stats.java:175
com.realtime.crossfire.jxclient.stats.StatsListener
Definition: StatsListener.java:32
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_MAXHP
static final int CS_STAT_MAXHP
Definition: Stats.java:54
com.realtime.crossfire.jxclient.stats.Stats.getStat
int getStat(final int statNo)
Definition: Stats.java:771
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater
Definition: StatGaugeUpdater.java:39
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.LOWFOOD_LIMIT
static final int LOWFOOD_LIMIT
Definition: StatGaugeUpdater.java:45
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.statsListener
final StatsListener statsListener
Definition: StatGaugeUpdater.java:73
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.updateExperienceNextLevel
void updateExperienceNextLevel()
Definition: StatGaugeUpdater.java:230
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.itemSetListener
final ItemSetListener itemSetListener
Definition: StatGaugeUpdater.java:191
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.stat
final int stat
Definition: StatGaugeUpdater.java:50
com.realtime.crossfire.jxclient.util.Formatter
Definition: Formatter.java:31
com.realtime.crossfire.jxclient.items.CfItem
Definition: CfItem.java:37
com.realtime.crossfire.jxclient.stats.ExperienceTable
Definition: ExperienceTable.java:33
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_RESIST_END
static final int CS_STAT_RESIST_END
Definition: Stats.java:356
com.realtime.crossfire.jxclient.util
Definition: Codec.java:23
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.StatGaugeUpdater
StatGaugeUpdater(@NotNull final ExperienceTable experienceTable, final int stat, @NotNull final Stats stats, @NotNull final ItemSet itemSet)
Definition: StatGaugeUpdater.java:212
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.dispose
void dispose()
Definition: StatGaugeUpdater.java:222
com.realtime.crossfire.jxclient.items.ItemSet.removeItemSetListener
void removeItemSetListener(@NotNull final ItemSetListener listener)
Definition: ItemSet.java:103
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.itemSet
final ItemSet itemSet
Definition: StatGaugeUpdater.java:62
com.realtime.crossfire.jxclient.gui.gauge.StatGaugeUpdater.active
boolean active
Definition: StatGaugeUpdater.java:67
com.realtime.crossfire
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.getExperienceToNextLevel
long getExperienceToNextLevel(final int level, final long experience)
Definition: GaugeUpdater.java:128
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_HP
static final int CS_STAT_HP
Definition: Stats.java:49
com.realtime.crossfire.jxclient.gui.gauge.GaugeUpdater.experienceTable
final ExperienceTable experienceTable
Definition: GaugeUpdater.java:39
com.realtime
com
com.realtime.crossfire.jxclient.stats.Stats.getExperience
long getExperience()
Definition: Stats.java:915
com.realtime.crossfire.jxclient.items.ItemSet.addItemSetListener
void addItemSetListener(@NotNull final ItemSetListener listener)
Definition: ItemSet.java:95
com.realtime.crossfire.jxclient.stats.Stats.removeCrossfireStatsListener
void removeCrossfireStatsListener(@NotNull final StatsListener statsListener)
Definition: Stats.java:971
com.realtime.crossfire.jxclient.items
Definition: AbstractItemView.java:23
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_GRACE
static final int CS_STAT_GRACE
Definition: Stats.java:170
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.items.ItemSetListener
Definition: ItemSetListener.java:32
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_GOLEM_HP
static final int CS_STAT_GOLEM_HP
Definition: Stats.java:320
com.realtime.crossfire.jxclient.stats.Stats.C_STAT_LOWFOOD
static final int C_STAT_LOWFOOD
Definition: Stats.java:144
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_SP
static final int CS_STAT_SP
Definition: Stats.java:59
com.realtime.crossfire.jxclient.stats.Stats.C_STAT_POISONED
static final int C_STAT_POISONED
Definition: Stats.java:462
com.realtime.crossfire.jxclient.stats
Definition: ActiveSkillWatcher.java:23
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_MAXSP
static final int CS_STAT_MAXSP
Definition: Stats.java:64