Crossfire JXClient, Trunk
src
model
src
main
java
com
realtime
crossfire
jxclient
skills
Skill.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
25
import
com
.
realtime
.
crossfire
.
jxclient
.
util
.
EventListenerList2
;
26
import
com
.
realtime
.
crossfire
.
jxclient
.
util
.
StringSplitter
;
27
import
org.jetbrains.annotations.NotNull;
28
import
org.jetbrains.annotations.Nullable;
29
35
public
class
Skill
{
36
40
@NotNull
41
private
final
EventListenerList2<SkillListener>
listeners
=
new
EventListenerList2<>
();
42
46
@NotNull
47
private
final
String
name
;
48
52
private
int
face
= -1;
53
57
private
long
experience
;
58
62
private
int
level
;
63
68
@Nullable
69
private
String
message
;
70
75
public
Skill
(@NotNull
final
String
name
) {
76
this.name =
name
;
77
}
78
84
public
void
set
(
final
int
level
,
final
long
experience
) {
85
if
(this.level ==
level
&& this.experience ==
experience
) {
86
return
;
87
}
88
89
final
boolean
oldKnown =
isKnown
();
90
this.level =
level
;
91
this.experience =
experience
;
92
fireEvents
(oldKnown);
93
}
94
99
public
long
getExperience
() {
100
return
experience
;
101
}
102
107
public
int
getLevel
() {
108
return
level
;
109
}
110
115
public
int
getFace
() {
116
return
face
;
117
}
118
123
public
void
setFace
(
final
int
face
) {
124
this.face =
face
;
125
}
126
131
public
void
setMessage
(@Nullable
final
String
message
) {
132
this.message =
message
;
133
}
134
139
private
boolean
isKnown
() {
140
return
experience
!= 0 ||
level
!= 0;
141
}
142
143
@NotNull
144
@Override
145
public
String
toString
() {
146
return
name
;
147
}
148
153
@Nullable
154
public
String
getTooltipText
() {
155
if
(
message
==
null
) {
156
return
null
;
157
}
158
159
final
StringBuilder sb =
new
StringBuilder();
160
for
(
final
String line :
message
.split(
"\n"
)) {
161
sb.append(
StringSplitter
.
splitAsHtml
(line)).append(
"<br>"
);
162
}
163
return
sb.toString();
164
}
165
170
private
void
fireEvents
(
final
boolean
oldKnown) {
171
final
boolean
newKnown =
isKnown
();
172
173
if
(!oldKnown) {
174
assert newKnown;
175
fireAddSkill
();
176
}
else
if
(!newKnown) {
177
fireDelSkill
();
178
}
else
{
179
fireUpdSkill
();
180
}
181
}
182
186
private
void
fireAddSkill
() {
187
for
(
SkillListener
listener :
listeners
) {
188
listener.gainedSkill();
189
}
190
}
191
195
private
void
fireDelSkill
() {
196
for
(
SkillListener
listener :
listeners
) {
197
listener.lostSkill();
198
}
199
}
200
204
private
void
fireUpdSkill
() {
205
for
(
SkillListener
listener :
listeners
) {
206
listener.changedSkill();
207
}
208
}
209
214
public
void
addSkillListener
(@NotNull
final
SkillListener
listener) {
215
listeners
.add(listener);
216
}
217
222
public
void
removeSkillListener
(@NotNull
final
SkillListener
listener) {
223
listeners
.remove(listener);
224
}
225
226
}
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.util.StringSplitter.splitAsHtml
static String splitAsHtml(@NotNull final String message)
Definition:
StringSplitter.java:58
com.realtime.crossfire.jxclient.skills.Skill.fireDelSkill
void fireDelSkill()
Definition:
Skill.java:195
com.realtime.crossfire.jxclient.skills.Skill.toString
String toString()
Definition:
Skill.java:145
com.realtime.crossfire.jxclient.skills.Skill.isKnown
boolean isKnown()
Definition:
Skill.java:139
com.realtime.crossfire.jxclient.skills.Skill.getTooltipText
String getTooltipText()
Definition:
Skill.java:154
com.realtime.crossfire.jxclient.skills.Skill.Skill
Skill(@NotNull final String name)
Definition:
Skill.java:75
com.realtime.crossfire.jxclient.skills.Skill.getLevel
int getLevel()
Definition:
Skill.java:107
com.realtime.crossfire.jxclient.util.EventListenerList2
Definition:
EventListenerList2.java:37
com.realtime.crossfire.jxclient.skills.Skill
Definition:
Skill.java:35
com.realtime.crossfire.jxclient.skills.Skill.fireUpdSkill
void fireUpdSkill()
Definition:
Skill.java:204
com.realtime.crossfire.jxclient.skills.Skill.level
int level
Definition:
Skill.java:62
com.realtime.crossfire.jxclient.util.StringSplitter
Definition:
StringSplitter.java:33
com.realtime.crossfire.jxclient.skills.Skill.getExperience
long getExperience()
Definition:
Skill.java:99
com.realtime.crossfire.jxclient.skills.Skill.fireAddSkill
void fireAddSkill()
Definition:
Skill.java:186
com.realtime.crossfire.jxclient.skills.SkillListener
Definition:
SkillListener.java:31
com.realtime.crossfire.jxclient.skills.Skill.name
final String name
Definition:
Skill.java:47
com.realtime.crossfire.jxclient.skills.Skill.getFace
int getFace()
Definition:
Skill.java:115
com.realtime.crossfire.jxclient.skills.Skill.message
String message
Definition:
Skill.java:69
com.realtime.crossfire.jxclient.util
Definition:
Codec.java:23
com.realtime.crossfire.jxclient.skills.Skill.removeSkillListener
void removeSkillListener(@NotNull final SkillListener listener)
Definition:
Skill.java:222
com.realtime.crossfire
com.realtime
com
com.realtime.crossfire.jxclient.skills.Skill.fireEvents
void fireEvents(final boolean oldKnown)
Definition:
Skill.java:170
com.realtime.crossfire.jxclient.skills.Skill.listeners
final EventListenerList2< SkillListener > listeners
Definition:
Skill.java:41
com.realtime.crossfire.jxclient.skills.Skill.experience
long experience
Definition:
Skill.java:57
com.realtime.crossfire.jxclient.skills.Skill.addSkillListener
void addSkillListener(@NotNull final SkillListener listener)
Definition:
Skill.java:214
com.realtime.crossfire.jxclient.skills.Skill.setFace
void setFace(final int face)
Definition:
Skill.java:123
com.realtime.crossfire.jxclient.skills.Skill.setMessage
void setMessage(@Nullable final String message)
Definition:
Skill.java:131
com.realtime.crossfire.jxclient.skills.Skill.face
int face
Definition:
Skill.java:52
Generated by
1.8.17