Crossfire JXClient, Trunk
SkillSet.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.skills;
24 
29 import java.util.Arrays;
30 import java.util.HashMap;
31 import java.util.Map;
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
34 
39 public class SkillSet {
40 
45  @Nullable
46  private final Skill @NotNull [] numberedSkills = new Skill[Stats.CS_NUM_SKILLS];
47 
51  @NotNull
52  private final Map<String, Skill> namedSkills = new HashMap<>();
53 
58  @NotNull
59  @SuppressWarnings("FieldCanBeLocal")
61 
62  @Override
63  public void start() {
64  // ignore
65  }
66 
67  @Override
68  public void metaserver() {
69  // ignore
70  }
71 
72  @Override
73  public void preConnecting(@NotNull final String serverInfo) {
74  // ignore
75  }
76 
77  @Override
78  public void connecting(@NotNull final String serverInfo) {
80  }
81 
82  @Override
83  public void connecting(@NotNull final ClientSocketState clientSocketState, @NotNull final String param) {
84  // ignore
85  }
86 
87  @Override
88  public void connected() {
89  // ignore
90  }
91 
92  @Override
93  public void connectFailed(@NotNull final String reason) {
94  // ignore
95  }
96 
97  };
98 
103  public SkillSet(@NotNull final GuiStateManager guiStateManager) {
104  guiStateManager.addGuiStateListener(guiStateListener);
105  }
106 
110  public void clearSkills() {
112  Arrays.fill(numberedSkills, null);
113  for (final Skill skill : namedSkills.values()) {
114  if (skill != null) {
115  skill.setMessage(null);
116  }
117  }
118  }
119 
126  public void addSkill(final int id, @NotNull final String skillName, final int face) {
127  final int index = id-Stats.CS_STAT_SKILLINFO;
128  final Skill oldSkill = numberedSkills[index];
129  final Skill newSkill = getNamedSkill(skillName, face);
130  if (oldSkill == newSkill) {
131  return;
132  }
133 
134  if (oldSkill != null) {
135  oldSkill.set(0, 0);
136  oldSkill.setMessage(null);
137  }
138  numberedSkills[index] = newSkill;
139  }
140 
146  public void setSkillExtra(final int id, @NotNull final String message) {
147  final int index = id-Stats.CS_STAT_SKILLINFO;
148  if (index < 0 || index >= Stats.CS_NUM_SKILLS || numberedSkills[index] == null) {
149  return;
150  }
151  numberedSkills[index].setMessage(message);
152  }
153 
160  @NotNull
161  public Skill getNamedSkill(@NotNull final String skillName, final int face) {
162  final Skill oldSkill = namedSkills.get(skillName);
163  if (oldSkill != null) {
164  oldSkill.setFace(face);
165  return oldSkill;
166  }
167 
168  final Skill newSkill = new Skill(skillName);
169  newSkill.setFace(face);
170  namedSkills.put(skillName, newSkill);
171  return newSkill;
172  }
173 
177  public void clearNumberedSkills() {
178  for (Skill skill : numberedSkills) {
179  if (skill != null) {
180  skill.set(0, 0);
181  }
182  }
183  }
184 
191  @Nullable
192  public Skill getSkill(final int id) {
194  }
195 
202  public int getSkillId(final String name) {
203  for (int i = 0; i < numberedSkills.length; i++) {
204  //noinspection ConstantConditions
205  if (numberedSkills[i] != null && numberedSkills[i].toString().equals(name)) {
206  return i+Stats.CS_STAT_SKILLINFO;
207  }
208  }
209  return -1;
210  }
211 
212 }
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.skills.SkillSet.clearSkills
void clearSkills()
Definition: SkillSet.java:110
com.realtime.crossfire.jxclient.stats.Stats.CS_NUM_SKILLS
static final int CS_NUM_SKILLS
Definition: Stats.java:475
com.realtime.crossfire.jxclient.skills.SkillSet.namedSkills
final Map< String, Skill > namedSkills
Definition: SkillSet.java:52
com.realtime.crossfire.jxclient.guistate.ClientSocketState
Definition: ClientSocketState.java:30
com.realtime.crossfire.jxclient.skills.Skill.set
void set(final int level, final long experience)
Definition: Skill.java:84
com.realtime.crossfire.jxclient.skills.Skill
Definition: Skill.java:35
com.realtime.crossfire.jxclient.stats.Stats
Definition: Stats.java:44
com.realtime.crossfire.jxclient.skills.SkillSet.clearNumberedSkills
void clearNumberedSkills()
Definition: SkillSet.java:177
com.realtime.crossfire.jxclient.skills.SkillSet.getSkillId
int getSkillId(final String name)
Definition: SkillSet.java:202
com.realtime.crossfire.jxclient.guistate.GuiStateManager
Definition: GuiStateManager.java:34
com.realtime.crossfire.jxclient.guistate
Definition: ClientSocketState.java:23
com.realtime.crossfire.jxclient.skills.SkillSet.numberedSkills
final Skill[] numberedSkills
Definition: SkillSet.java:46
com.realtime.crossfire.jxclient.guistate.GuiStateListener
Definition: GuiStateListener.java:32
com.realtime.crossfire.jxclient.skills.SkillSet.getSkill
Skill getSkill(final int id)
Definition: SkillSet.java:192
com.realtime.crossfire
com.realtime.crossfire.jxclient.skills.SkillSet.guiStateListener
final GuiStateListener guiStateListener
Definition: SkillSet.java:60
com.realtime
com
com.realtime.crossfire.jxclient.skills.SkillSet.setSkillExtra
void setSkillExtra(final int id, @NotNull final String message)
Definition: SkillSet.java:146
com.realtime.crossfire.jxclient.skills.Skill.setFace
void setFace(final int face)
Definition: Skill.java:123
com.realtime.crossfire.jxclient.skills.SkillSet
Definition: SkillSet.java:39
com.realtime.crossfire.jxclient.skills.Skill.setMessage
void setMessage(@Nullable final String message)
Definition: Skill.java:131
com.realtime.crossfire.jxclient.skills.SkillSet.addSkill
void addSkill(final int id, @NotNull final String skillName, final int face)
Definition: SkillSet.java:126
com.realtime.crossfire.jxclient.stats.Stats.CS_STAT_SKILLINFO
static final int CS_STAT_SKILLINFO
Definition: Stats.java:539
com.realtime.crossfire.jxclient.skills.SkillSet.SkillSet
SkillSet(@NotNull final GuiStateManager guiStateManager)
Definition: SkillSet.java:103
com.realtime.crossfire.jxclient.stats
Definition: ActiveSkillWatcher.java:23