All Classes and Interfaces
Class
Description
Abstract implementation of the Colossus AI interface.
Abstract base class for variant-specific recruitment hinting.
Common class for displaying recruit trees information.
Abstract implementation of @TacticalObjective, handling the priority
stuff to avoid duplication.
Class AcquireAngel allows a player to acquire an angel or archangel.
An event modelling the addition of a creature to a legion.
interface to allow for multiple AI implementations
All CreatureType existing in a Variant
A collection of static methods to help with using arrays of the Java language.
A naive (basic!) implementation of @IObjectiveHelper.
An ongoing battle.
A GUI representation of a battle in the game.
Contains a lot of Battle related data
Currently contains also many methods that were earlier in "Strike.java"
(client package).
Class BattleDice displays dice rolls during a battle.
Various constants used by the AIs code for battle evaluation.
Class BattleHex holds game state for battle hex.
BattlelandLoader loads the battle hex data
Class BattleMap implements the GUI for a Titan battlemap.
Class BattleMovement does client-side battle move calculations.
This holds currently the BattleMovement related methods that has
been so far part of BattleServerSide.
Class Battle holds data about a Titan battle.
Class BattleTerrainHazardWindow shows a GUI representation of the
Hazard Chart
This is still ALPHA.
Class BattleUnit represents a Creature in a specific Battle.
Helper class to retrieve the Build information from build.properties file
The caretaker tracks the number of creatures still available and those dead.
Callback interface for listening to changes to the numbers.
Class Chit implements the GUI for a Titan chit representing
either a character or a legion.
Class ChooseScreen allows a player to choose the screen
on which to display the secondaries windows.
Lives on the client side and handles all communication
with the server.
Constants modelling the party who closed this client.
Holds all data specific to one client connection.
This will be a thread that executes all the client side processing;
additional to the actual SocketClientThread which did that earlier.
Sends ping requests to clients to check whether they are still alive
and connected.
Little helper class to copy some text (e.g.
Class CmdLine represents a parsed command line for one run of a program.
A first start to create a cmdline WebClient.
A collection of static methods to help with using java.util.Collection derivates.
Encapsulates the way how the web server sends mail in some situations,
so far only for registration procedure.
This is a JTable that remembers the size of its columns between runs of the
program.
Returns all possible combinations of n elements of a List.
Class Concede allows a player to flee or concede before starting a Battle.
A FilenameFilter for cfg files.
Log window for connection issues
Based on simple log window
Class Constants just holds constants.
Simple implementation of a Titan AI - a bit more coward the regular SimpleAI
A particular creature in a game.
The objective of sending all of a CreatureType into battle, presumably
because we don't really need them for anything else.
Viewer for a collection, say the graveyard or the creature keeper
Basic information about one creature, for split prediction.
Sort creatures in decreasing order of importance, then by creature
name, then by certainty.
A specialized list of creature info, for split prediction.
CreatureLoader loads the creature descriptions.
Class Critter represents an individual Titan Character.
A type of creature in a variant.
Class CreatureTitan represent the CONSTANT information about a
Titan (the game) Titan (the creature).
One battle move for one critter.
Base class to implement custom recruiting functions
(i.e.
some small methods helpful during development,
to wait before program ends to see object instance
statistics, once just until return is pressed,
once a loop in which one can force GC, see object statistics,
etc.
The tactical objective of killing a certain number of a specific
CreatureType.
Class DevRandom generates random bits (same interface as class Random).
Class Dice handles die-rolling
This listener can be used to make a Component draggable.
Dummy JFrame (KFrame) with menu.
Class EditLegion allows to edit the contents of a Legion
Based on ShowLegion
Holds the basic data for an engagement.
Post-engagement status dialog.
The entry side for a battle.
Small helper methods to deal with Exceptions, how to get them into
String-format and display them to the user etc.
Displaying of the message dialog is also provided here, so that otherwise non-GUI classes have a simple way to show a dialog, without need to worry about being headless etc.
Displaying of the message dialog is also provided here, so that otherwise non-GUI classes have a simple way to show a dialog, without need to worry about being headless etc.
Event Revealing dialog.
Yet Another AI, to test some stuff.
Thread handling the distribution of files to clients.
An ongoing game in Colossus.
An interface modelling all actions that can be made in a Colossus game.
One object of this this class represents a game for which players/users
have enrolled to play it together.
Enum for the possible states of a game:
Enum for the possible TYPES of a game
(scheduled or instant, perhaps later also template?)
This "manager" is accessible via RMI (served by the ColossusRegistry
object) for the games started in own processes.
Class Game gets and holds high-level data about a Titan game.
Class GetPlayers is a dialog used to enter players'
names, types, variant, etc.
Stringify contents of various container classes.
Class GUIBattleHex holds GUI info for one battle hex.
Anything that happens in the GUI and that has effect to Client or Server,
especially all things that client shall send to server.
Abstract parent class for various GUI hexes
Class GUIMasterHex holds GUI information for a MasterHex.
This holds constants used in Hazard Terrain and Hazard Hexside
Movement Constants
Strike/RangeStrike Constants
RANGESTRIKEFREE = "No effect on RangeStrike";
RANGESTRIKEBLOCKED = "Blocks RangeStrike";
RANGESTRIKEOCCUPIED = "Blocks RangeStrike unless Occupied";
RANGESTRIKEWALL = "Blocks RangeStrike unless Occupied - 1 Skill";
RANGESTRIKESKILLPENALTY = "Non-Native RangeStriker loses skill for each";
Scope Constants -
All - is everyone
Natives means Natives vs anyone
Patriots means Natives vs Foreigners
Foreigners are Non-Natives vs anyone
Imperials means Foreigners vs Natives
Special effects.
This is a typesafe enumeration of all hazard Hexsides, i.e.
Superclass for BattleMap hazards: Terrain invalid input: '&' Hexsides,
The effect on a combat category (strike|rangestrike, defense|attack),
including the effect (what), the scope (who), and the adjustement
(how much).
This is a typesafe enumeration of all hazard terrains, i.e.
Class Hex describes one general hex.
Class HexMap displays a basic battle map.
Arranges the recruit tree for one hex in a panel, which can be
displayed e.g.
Stores game history as XML.
Class HTMLColor contains constant Colors defined by the W3C.
Simple implementation of a Titan AI - a bit more coward the regular SimpleAI
IClient is a remote interface for the server-accessible parts of Client.
Describes the interface how the Game Server sends a mail.
Interface for classes that can run/supervise a WebServer Game.
Interface for an Oracle used for AI Hints.
Describes the contract between Non rectangular Jcomponents and Swing layout managers that are aware of non-recticle JComponents.
Storage object for all objects of one class type registered in
InstanceTracker.
Objects can register here when they are created.
Trivial interface for getting a list of objectives, depending on whether
we are the attacker or the defender.
Allows getting and setting options.
A callback interface for changes to the options.
Knows a lot of things, but cannot actually take any actions.
A legion, given as parameter to VariantHintOracle
Interface for recruiting.
Interface for GameInfo, what it needs to communicate with
WebServer regarding (so far only) ending a game.
IServer is an interface for the client-accessible parts of Server.
Generic type of connection to the server.
An interface for Non-Server-Side (not in server package being) GUI
classes (so far, the WebClient), so that they can request from the
"start-Object" to initiate a new game without actually having to
have a reference to the net.sf.colossus.server package.
Defined for which methods we currently abuse the Client to forward the
question about variant specific information to static methods in
TerrainRecruitLoader.
Interface for the use of AI Hints.
The style of play the AI should prefer.
Access methods how information that is loaded e.g.
Some object from which Game can ask for the current variant,
instead of the static VariantSupport.getCurrentVariant() way.
Interface for what WebServer (Public Game Server) sends to WebClient
Interface for what WebClient sends to WebServer
Interface for the operations the WebServer can do with it's GUI
KDialog adds some generally useful functions to JDialog.
KFrame adds some generally useful functions to JFrame.
A base class for all actions affecting a single legion in the game.
Client-side version of a legion.
Creates a JPanel displaying one legion,
used by AutoInspector and ShowLegion (right-click on legion)
LegionMove has a List of one CritterMove per mobile critter
in the legion.
Class Legion represents a Titan stack of Creatures and its
stack marker.
Simple log window
Loads the top-level variant file
Class Marker implements the GUI for a legion marker.
Compare markers.
Class MasterBoard implements the GUI for a Titan masterboard.
The master board as part of a variant.
A master board terrain.
Class MasterHex describes one Masterboard hex, without GUI info.
Encapsulates one message that was sent to client, together with the
last commitNumber and the message number (relative to the commit).
Class MovementClientSide contains the client-side masterboard move logic.
Class MovementDie displays dice rolls during a battle.
Class MovementServerSide contains the server-side masterboard move logic
which has earlier been part of Game(ServerSide).
Class MultiSet is a set that can contain more than one of the same
element, built around a HashMap that maps objects to Integer counts.
Negotiate allows making a new proposal to settle an engagement.
Startup code for network Client
For communication between Game/Server and WebServer.
A predicate checking objects on being the null object.
A replacement for ClientGUI class which does nothing,
so that client can simply call it same way as the real
GUI but just nothing happens.
On-the-fly generation of the Collection of all possible LegionMove.
Class Opt represents a single command-line option.
Someone to ask for an (I)Options object.
Class Options lists game options for Colossus.
Class Opts represents a configured group of command-line options
for a program.
DON'T USE THAT ONE YET.
General Exception for our xml data parsers.
Holds the information for one possible strike penalty, including
the null no-penalty option.
This class is a permutation generator.
An iterator that returns permutations of the originally passed list.
TODO this should probably start numbering with zero as does the BattlePhase and
as does any other Java enum -- currently SPLIT is serialized as "1"
TODO instead: now that I added an artificial phase "INIT" (needed during start
of the game, otherwise updateStatusScreen tries to do toString on null),
- are then the fromInt/toInit still needed?
Advances to the next phase.
Chooses between multiple carry options.
Class PickColor lets a player choose a color of legion markers.
Class PickEntrySide allows picking which side of a MasterBoard hex
to enter.
Allows picking any integer value
Class PickLord allows a player to choose which lord tower teleports.
Class PickMarker allows a player to pick a legion marker,
either as initial marker or for splitting a legion.
Class PickRecruit allows a player to pick a creature to recruit.
Class PickRecruiter allows a player to choose which creature(s) recruit.
Chooses between multiple strike penalty options.
A player in a game.
This class holds client-side version of a player.
Models the notion of a color a player can pick.
A dialog that displays information about a single player and his legions.
Class Player holds the data for one player in a Titan game.
This class keeps track of which ports are currently occupied
by ongoing games and which are free for new games.
A simple predicate interface.
Predicts splits for one enemy player, and adjusts predictions as
creatures are revealed.
Predicts splits for one enemy player, and adjusts predictions as
creatures are revealed.
The tactical objective of preserving all of a specific CreatureType.
Class Probs holds utility methods for working with probabilities.
Class Proposal holds the results of a settlement attempt.
Simple implementation of a Titan AI
Implementation of a graph dedicated to the Recruit "Tree" (it's a directed
graph, not a tree, as we can have cycle in theory).
The edge of the Recruit Graph
Models a recruit option for a given creature.
The vertex of the Recruit Graph
The recruiting sub-tree in a terrain (or several terrains)
A panel with which one can either create a new account,
or change the password.
A java.util.logging Handler that appends to a
Server
via
allLog
.ReplyToProposal allows responding to a negotiation proposal.
Contains info about one revealed creature for RevealEvent.
Contains info about one event that revealed some interesting information,
stored in EventViewer.
An action that might reveal one or more creatures in a legion.
This class runs (starts and supervises) a Game on the Game Server
(as opposed to: on the User's PC).
NullDumper is a dummy reader that just consumes all the output
produced by a Game's process - similar to /dev/null.
Saves window position and size.
Class Scale holds static information used to scale all GUI elements.
Extension of @BasicObjectiveHelper.
Class Server lives on the server side and handles all communcation with
the clients.
Displays recruit trees for all MasterHex types.
Class ShowBattleMap displays a battle map.
A dialog frame that displays lots of (almost static) information
about one specific creature type.
Provides a simple JTextArea to display pointers to the Option
documentation HTML files in Internet.
Class ShowLegion displays the chits of the Creatures in a Legion
Provides a JScrollPane to display the Variant README,
either within GetPlayer selection tab,
or from main boards help (then in own KFrame).
Displays recruit trees for a single Hex type.
Simple implementation of a Titan AI
TODO somehow we call client.getOwningPlayer() a lot -- there should probably be a better
link between AI and player, after all the AI either IS_A player or PLAYS_FOR a player
Stores the skill and power bonuses for a single terrain.
Sending a simple (text-only) mail by submitting it to the SMTP
server at port 25.
Thread to handle server connection on client side.
Perl-style split function.
Class SplitLegion allows a player to split a Legion into two Legions.
Class Start contains code to start the different types of games.
Simple log window for Startup progress (waiting for clients)
Class ResourceLoader is an utility class to load a resource from
a filename and a list of directory.
Class ColossusClassLoader allows for class loading outside the
CLASSPATH, i.e.
Class StatusScreen displays some information about the current game.
StrategicMapLoader loads the masterboard data.
Class StrikeDie displays a die representing the threshold for
a successful hit during the Strike/strike-back phase.
Allows a player to summon an angel or archangel (or any other summonable,
whatever it is in certain variants).
Little helper class to store information about a summoning:
The target legion, the donor legion, and the summoned
creature(type) (creature as String, for now).
A java.util.logging Handler that appends to a
javax.swing.text.Document
.Special hack to cleanup some static reference to the JFrame
inside Swing; copied from here:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4907798
Interface for a tactical (i.e.
TerrainRecruitLoader load the terrains and recruits descriptions.
The
TrueHexGridLayout
class is a layout manager that
lays out a container's components in a grid with alternate rows
offset by a partial grid component.One user at the WebServer side.
An integer value, along with a detailed record of how and why
the value has the value it has.
Hub for all variant-specific information.
Used internally to record the Acquirable name, points needed for
recruiting, and the list of terrains in which the Acquirable dwells.
Class VariantSupport hold the members and functions
required to support Variants in Colossus
TODO this should probably move into the variant package sooner or later, possibly
into the
Variant
class itselfA helper class to store the exception that happened during
VariantLoading together with the task during which that happened.
This is a logging formatter doing not much more than the bare minimum.
Keeps track of "viable entities", i.e.
This is the main class for one user client for the web server.
This implements the webserver/client communication at client side.
The main class for the WebServer
- brings up the WebServer GUI
- starts the ServerSocket and listens there for WebClients
- based on actions coming from clients, keeps book of
"instant" and "running" games (both GameInfo objects),
and tell the GameInfo objects when to start the game.
A Null Object for the web server GUI interface.
This class represents an actual WebServer client.
Thread to handle one user client connection at the WebServer side.
Class WebServerConstants holds constants related to
the Web server, so far only for the config file.
The web server GUI - so far shows only simple info
like amount of users logged in, scheduled-, instant-,
running- and ending games.
WebServer specific version of the Options / cf file handling.
Provides a simple JTextArea to display some welcome message.
A demon thread which is started by triggerTimedQuit.
The various constants for activities what the Start class should do
as next thing, typically when a dialog is closed or a games ended.
Class XMLSnapshotFilter implements a FilenameFilter for savegames.