 |
Crossfire JXClient, Trunk
|
Go to the documentation of this file.
23 package com.realtime.crossfire.jxclient.spells;
32 import java.util.ArrayList;
33 import java.util.Collection;
34 import java.util.Collections;
35 import java.util.Comparator;
36 import java.util.HashMap;
37 import java.util.List;
39 import java.util.concurrent.CopyOnWriteArrayList;
40 import java.util.stream.Collectors;
41 import org.jetbrains.annotations.NotNull;
42 import org.jetbrains.annotations.Nullable;
71 private final List<Spell>
spells =
new CopyOnWriteArrayList<>();
111 @SuppressWarnings(
"FieldCanBeLocal")
115 public void start() {
120 public void metaserver() {
125 public void preConnecting(@NotNull
final String serverInfo) {
130 public void connecting(@NotNull
final String serverInfo) {
137 public void connecting(@NotNull
final ClientSocketState clientSocketState, @NotNull
final String param) {
142 public void connected() {
147 public void connectFailed(@NotNull
final String reason) {
216 public void addSpell(
final int tag,
final int level,
final int castingTime,
final int mana,
final int grace,
final int damage,
final int skill,
final int path,
final int faceNum, @NotNull
final String spellName, @NotNull
final String message) {
218 key.
setParameters(faceNum, tag, message, level, castingTime, mana, grace, damage, skill, path);
223 final Spell existingSpell;
227 if (existingSpell ==
null) {
230 spell = existingSpell;
231 spell.
setParameters(faceNum, tag, message, level, castingTime, mana, grace, damage, skill, path);
236 spell =
spells.get(index);
237 spell.
setParameters(faceNum, tag, message, level, castingTime, mana, grace, damage, skill, path);
244 listener.spellAdded(index);
256 public void updateSpell(
final int flags,
final int tag,
final int mana,
final int grace,
final int damage) {
258 if (spell.getTag() == tag) {
272 if (spell.getTag() == tag) {
293 listener.spellRemoved(index);
309 if (spell.getName().equals(spellName)) {
316 if (spell.getName().startsWith(spellName)) {
318 if (result !=
null) {
365 }
catch (
final IndexOutOfBoundsException ignored) {
377 if (spell.getFaceNum() == faceNum) {
412 listener.spellAdded(0);
431 if (skill !=
null && !
spellSkills.contains(skill)) {
final SkillSet skillSet
The SkillSet containing skills from the server.
int getSpellSkills()
Returns the number of spell skills.
Collection< Spell > getFilteredSpells()
Returns all currently shown spells.
void filterSkill(final int index)
Filters spells to display by the specified skill index.
final Map< String, Spell > unknownSpells
All unknown spells that have been referenced before.
static final int UPD_SP_MANA
Flag for updspell command: mana is present.
final GuiStateListener guiStateListener
The GuiStateListener for detecting established or dropped connections.
Interface for listeners interested gui state changes.
void deleteSpellByIndex(final int index)
Deletes a spell by index into spells.
void addCrossfireSpellChangedListener(@NotNull final SpellsManagerListener listener)
Adds a SpellsManagerListener to notify about changes.
void selectCharacter()
A character name was sent to the server.
A list of event listeners.
Manages all known spells.
static final int UPD_SP_DAMAGE
Flag for updspell command: damage is present.
Spell getSpell(@NotNull final String spellName)
Returns a Spell instance by partial spell name.
int skillFilter
Skill to filter spells by, as a skill id in SkillSet.
Skill getSpellSkill(final int index)
Returns the specified spell skill.
int getFilteredSpellsCount()
Returns the number of currently shown spells.
Describes a Crossfire spell.
void filterSpells()
Rebuilds the list of spells to display.
SpellsManager(@NotNull final GuiStateManager guiStateManager, @NotNull final SkillSet skillSet, @NotNull final Stats stats)
Creates a new instance.
void addSpell(final int tag, final int level, final int castingTime, final int mana, final int grace, final int damage, final int skill, final int path, final int faceNum, @NotNull final String spellName, @NotNull final String message)
Adds a new spell.
void updateSpell(final int flags, final int tag, final int mana, final int grace, final int damage)
Updates spell information.
Interface for listeners interested in SpellsManager events.
One skill of the character.
Maintains the current GuiState.
void deleteSpell(final int tag)
Deletes a spell.
Skill getSkill(final int id)
Returns the given skill as a Skill object.
void setParameters(final int faceNum, final int tag, @NotNull final String message, final int level, final int castingTime, final int mana, final int grace, final int damage, final int skill, final int path)
Updates the spell's parameters.
This is the representation of all the statistics of a player, like its speed or its experience.
void removeCrossfireSpellChangedListener(@NotNull final SpellsManagerListener listener)
Removes a SpellsManagerListener to notify about changes.
int getSkillId(final String name)
Get a skill identifier from the skill name.
A Comparator to compare Spell instances by spell path and name.
boolean displaysFace(final int faceNum)
Returns whether any spell has the given face.
static final int UPD_SP_GRACE
Flag for updspell command: grace is present.
final List< Spell > filteredSpells
Spells currently exposed, based on the filter.
String getName()
Returns the spell name.
final Skill skillAll
Dummy skill for "all skills".
final Comparator< Spell > spellNameComparator
A Comparator to compare Spell instances by spell path and name.
final List< Spell > spells
All known spells.
Connection progress states of the Crossfire server connection.
void rebuildSkills()
Rebuilds the list of skills from the spells.
Spell getFilteredSpell(final int index)
Returns a Spell instance by index.
Maintain the set of skills as sent by the server.
final Stats stats
The Stats for the player.
final List< Skill > spellSkills
Skills used by the spell, including the "all" skill.
void setUnknown(final boolean unknown)
Marks this spell as known or unknown for the character.
Collection< Spell > getAllSpells()
Returns all known spells.
final EventListenerList2< SpellsManagerListener > listeners
The SpellsManagerListeners to notify about changes.