Crossfire JXClient, Trunk
Quest.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.quests;
24 
26 import org.jetbrains.annotations.NotNull;
27 
32 public class Quest {
33 
37  @NotNull
39 
43  private final int code;
44 
48  @NotNull
49  private final String title;
50 
54  private final int face;
55 
59  private final boolean replay;
60 
64  private final int parent;
65 
69  private boolean end;
70 
74  @NotNull
75  private String step;
76 
88  public Quest(final int code, @NotNull final String title, final int face, final boolean replay, final int parent, final boolean end, @NotNull final String step) {
89  this.code = code;
90  this.title = title;
91  this.face = face;
92  this.replay = replay;
93  this.parent = parent;
94  this.end = end;
95  this.step = step;
96  }
97 
102  public int getCode() {
103  return code;
104  }
105 
110  @NotNull
111  public String getTitle() {
112  return title;
113  }
114 
119  public int getFace() {
120  return face;
121  }
122 
123  public boolean isCompleted() {
124  return end;
125  }
126 
127  public boolean replayable() {
128  return replay;
129  }
130 
136  public void setStep(final boolean end, @NotNull final String step) {
137  boolean changed = false;
138 
139  if (this.end != end) {
140  this.end = end;
141  changed = true;
142  }
143 
144  if (this.step.compareTo(step) != 0) {
145  this.step = step;
146  changed = true;
147  }
148 
149  if (changed) {
150  fireChanged();
151  }
152  }
153 
158  @NotNull
159  public String getTooltipText() {
160  final StringBuilder sb = new StringBuilder("<b>");
161  sb.append(title);
162  sb.append("</b>");
163  if (end) {
164  sb.append(" (finished");
165  if (replay) {
166  sb.append(", can be replayed");
167  }
168  sb.append(")");
169  }
170  sb.append("<br>");
171  sb.append(step);
172  return sb.toString();
173  }
174 
178  private void fireChanged() {
179  for (QuestListener listener : listeners) {
180  listener.questChanged();
181  }
182  }
183 
188  public void addQuestListener(@NotNull final QuestListener listener) {
189  listeners.add(listener);
190  }
191 
196  public void removeQuestListener(@NotNull final QuestListener listener) {
197  listeners.remove(listener);
198  }
199 
200 }
com.realtime.crossfire.jxclient.quests.Quest.getCode
int getCode()
Definition: Quest.java:102
com.realtime.crossfire.jxclient.quests.Quest.replayable
boolean replayable()
Definition: Quest.java:127
com.realtime.crossfire.jxclient
com.realtime.crossfire.jxclient.quests.Quest.Quest
Quest(final int code, @NotNull final String title, final int face, final boolean replay, final int parent, final boolean end, @NotNull final String step)
Definition: Quest.java:88
com.realtime.crossfire.jxclient.quests.Quest.getTooltipText
String getTooltipText()
Definition: Quest.java:159
com.realtime.crossfire.jxclient.quests.QuestListener
Definition: QuestListener.java:31
com.realtime.crossfire.jxclient.quests.Quest.face
final int face
Definition: Quest.java:54
com.realtime.crossfire.jxclient.quests.Quest.parent
final int parent
Definition: Quest.java:64
com.realtime.crossfire.jxclient.util.EventListenerList2
Definition: EventListenerList2.java:37
com.realtime.crossfire.jxclient.quests.Quest.listeners
final EventListenerList2< QuestListener > listeners
Definition: Quest.java:38
com.realtime.crossfire.jxclient.quests.Quest.title
final String title
Definition: Quest.java:49
com.realtime.crossfire.jxclient.quests.Quest.addQuestListener
void addQuestListener(@NotNull final QuestListener listener)
Definition: Quest.java:188
com.realtime.crossfire.jxclient.quests.Quest.removeQuestListener
void removeQuestListener(@NotNull final QuestListener listener)
Definition: Quest.java:196
com.realtime.crossfire.jxclient.quests.Quest
Definition: Quest.java:32
com.realtime.crossfire.jxclient.quests.Quest.end
boolean end
Definition: Quest.java:69
com.realtime.crossfire.jxclient.quests.Quest.step
String step
Definition: Quest.java:75
com.realtime.crossfire.jxclient.util
Definition: Codec.java:23
com.realtime.crossfire.jxclient.quests.Quest.code
final int code
Definition: Quest.java:43
com.realtime.crossfire.jxclient.quests.Quest.fireChanged
void fireChanged()
Definition: Quest.java:178
com.realtime.crossfire
com.realtime
com.realtime.crossfire.jxclient.quests.Quest.setStep
void setStep(final boolean end, @NotNull final String step)
Definition: Quest.java:136
com
com.realtime.crossfire.jxclient.quests.Quest.getFace
int getFace()
Definition: Quest.java:119
com.realtime.crossfire.jxclient.quests.Quest.replay
final boolean replay
Definition: Quest.java:59
com.realtime.crossfire.jxclient.quests.Quest.isCompleted
boolean isCompleted()
Definition: Quest.java:123
com.realtime.crossfire.jxclient.quests.Quest.getTitle
String getTitle()
Definition: Quest.java:111