Class AreaOfEffect

All Implemented Interfaces:
MapShader.ShadedPiece, PropertyNameSource, PropertySource, EditablePiece, GamePiece, PropertyExporter, StateMergeable, TranslatablePiece, PersistentPropertyContainer, Auditable, ImageSearchTarget, SearchTarget

public class AreaOfEffect extends Decorator implements TranslatablePiece, MapShader.ShadedPiece
Author:
Scott Giese sgiese@sprintmail.com Displays a transparency surrounding the GamePiece which represents the Area of Effect of the GamePiece
  • Field Details

    • ID

      public static final String ID
      See Also:
    • ACTIVE

      public static final String ACTIVE
      See Also:
    • defaultTransparencyColor

      protected static final Color defaultTransparencyColor
    • defaultTransparencyLevel

      protected static final float defaultTransparencyLevel
      See Also:
    • defaultRadius

      protected static final int defaultRadius
      See Also:
    • transparencyColor

      protected Color transparencyColor
    • transparencyLevel

      protected float transparencyLevel
    • radius

      protected int radius
    • alwaysActive

      protected boolean alwaysActive
    • active

      protected boolean active
      Track the Globally active visibility of the trait. Reported in State to other players.
    • locallyActive

      protected boolean locallyActive
      Track the Locally active visibility of the trait. Not reported in state to other players.
    • activateCommand

      protected String activateCommand
    • activateKey

      protected NamedKeyStroke activateKey
    • commands

      protected KeyCommand[] commands
    • mapShaderName

      protected String mapShaderName
    • shader

      protected MapShader shader
    • keyCommand

      protected KeyCommand keyCommand
    • fixedRadius

      protected boolean fixedRadius
    • radiusMarker

      protected String radiusMarker
    • description

      protected String description
    • onMenuText

      protected String onMenuText
    • onKey

      protected NamedKeyStroke onKey
    • onKeyCommand

      protected KeyCommand onKeyCommand
    • offMenuText

      protected String offMenuText
    • offKey

      protected NamedKeyStroke offKey
    • offKeyCommand

      protected KeyCommand offKeyCommand
    • name

      protected String name
    • globallyVisible

      protected boolean globallyVisible
  • Constructor Details

    • AreaOfEffect

      public AreaOfEffect()
    • AreaOfEffect

      public AreaOfEffect(String type, GamePiece inner)
  • Method Details

    • getDescription

      public String getDescription()
      Description copied from interface: EditablePiece
      A plain-English description of this type of trait/piece - includes data from fields where appropriate
      Specified by:
      getDescription in interface EditablePiece
    • getBaseDescription

      public String getBaseDescription()
      Description copied from interface: EditablePiece
      Support for a basic-name-only description introduced later, so this default retrofits it from the full description if an explicit one is not defined.
      Specified by:
      getBaseDescription in interface EditablePiece
      Returns:
      name of trait/piece type, w/o additional data
    • getDescriptionField

      public String getDescriptionField()
      Description copied from class: Decorator
      If Decorator contains a description *field*, returns the current contents of it.
      Overrides:
      getDescriptionField in class Decorator
      Returns:
      contents of "description" field, if it exists.
    • myGetType

      public String myGetType()
      Description copied from class: Decorator
      The "type information" of a piece or trait is information that does not change during the course of a game. Image file names, context menu strings, etc., all should be reflected in the type. The type information is returned serialized string form, ready to be decoded by a SequenceEncoder#decode.
      Specified by:
      myGetType in class Decorator
      Returns:
      the type information of this trait alone
      See Also:
    • mySetType

      public void mySetType(String type)
      Description copied from interface: EditablePiece
      Sets the information for this piece. See Decorator.myGetType()
      Specified by:
      mySetType in interface EditablePiece
      Parameters:
      type - a serialized configuration string to set the "type information" of this piece, which is information that doesn't change during the course of a single game (e.g. Image Files, Context Menu strings, etc). Typically ready to be processed e.g. by SequenceEncoder.decode()
    • myGetState

      public String myGetState()
      Description copied from class: Decorator
      The "state information" is "game state" information that can change during the course of a game. State information is saved when the game is saved and is transferred between players on the server. For example, the relative order of pieces in a stack is state information, but whether the stack is expanded is not.
      Specified by:
      myGetState in class Decorator
      Returns:
      the game state information of this trait alone
      See Also:
    • mySetState

      public void mySetState(String newState)
      Description copied from class: Decorator
      Sets the state of this-trait-only (inverse of Decorator.myGetState()). The "state information" is information that can change during the course of a game. State information is saved when the game is saved and is transferred between players on the server. For example, the relative order of pieces in a stack is state information, but whether the stack is expanded is not.
      Specified by:
      mySetState in class Decorator
      Parameters:
      newState - New state information serialized in string form, ready to be passed to a SequenceEncoder#decode.
    • boundingBox

      public Rectangle boundingBox()
      Specified by:
      boundingBox in interface GamePiece
      Returns:
      The area which this GamePiece occupies when drawn at the point (0,0)
    • getShape

      public Shape getShape()
      Specified by:
      getShape in interface GamePiece
      Returns:
      The shape of the piece from the user's viewpoint. This defines the area in which the user must click to select or move the piece, for example. Like GamePiece.boundingBox(), it assumes the position is (0,0) -- which to be clear is normally aligned with the CENTER of the piece image -- and must be translated to the actual location where the piece is being drawn. For most ordinary pieces, the shape returned here will simply be equivalent to the bounding box, but see NonRectangular.
    • getName

      public String getName()
      Description copied from interface: GamePiece
      The plain English name for this piece
      Specified by:
      getName in interface GamePiece
    • isLocallyActive

      public boolean isLocallyActive()
    • isGloballyActive

      public boolean isGloballyActive()
    • isActive

      public boolean isActive()
    • getNamedKeyStrokeList

      public List<NamedKeyStroke> getNamedKeyStrokeList()
      Description copied from class: Decorator
      Specified by:
      getNamedKeyStrokeList in interface SearchTarget
      Overrides:
      getNamedKeyStrokeList in class Decorator
      Returns:
      a list of any Named KeyStrokes referenced in the Decorator, if any (for search)
    • getMenuTextList

      public List<String> getMenuTextList()
      Description copied from class: Decorator
      Specified by:
      getMenuTextList in interface SearchTarget
      Overrides:
      getMenuTextList in class Decorator
      Returns:
      a list of any Menu Text strings referenced in the Decorator, if any (for search)
    • draw

      public void draw(Graphics g, int x, int y, Component obs, double zoom)
      Description copied from interface: GamePiece
      Draw this GamePiece
      Specified by:
      draw in interface GamePiece
      Parameters:
      g - target Graphics object
      x - x-location of the center of the piece
      y - y-location of the center of the piece
      obs - the Component on which this piece is being drawn
      zoom - the scaling factor.
    • getArea

      protected Area getArea()
    • getRadius

      protected int getRadius()
    • myGetKeyCommands

      protected KeyCommand[] myGetKeyCommands()
      Specified by:
      myGetKeyCommands in class Decorator
      Returns:
      the key commands for this trait alone
      See Also:
    • myKeyEvent

      public Command myKeyEvent(KeyStroke stroke)
      Description copied from class: Decorator
      The response of this trait alone to the given KeyStroke or the virtual keystroke of a NamedKeyStroke. NamedKeyStrokes are allocated a unique internal KeyStroke when they are first used in a module, and that KeyStroke is passed up and down the decorator stack to represent them (see NamedKeyStroke.getKeyStroke()).
      Specified by:
      myKeyEvent in class Decorator
      Parameters:
      stroke - KeyStroke to apply (to apply a Named Keystroke send NamedKeyStroke.getKeyStroke()
      Returns:
      Generated Command to reproduce any changes just made to to the game state, or null if no effect
      See Also:
    • getHelpFile

      public HelpFile getHelpFile()
      Specified by:
      getHelpFile in interface EditablePiece
      Returns:
      the help file for this trait
    • getEditor

      public PieceEditor getEditor()
      Specified by:
      getEditor in interface EditablePiece
      Overrides:
      getEditor in class Decorator
      Returns:
      the configurer for this trait - the dialog which allows the editing the piece's type information. Default configurer is a SimplePieceEditor, but many traits will want to provide custom versions.
    • getArea

      public Area getArea(MapShader shader)
      Description copied from interface: MapShader.ShadedPiece
      Returns the Area to add to (or subtract from) the area drawn by the MapShader's. Area is assumed to be at zoom factor 1.0
      Specified by:
      getArea in interface MapShader.ShadedPiece
      Parameters:
      shader - Map Shader
      Returns:
      the Area contributed by the piece
    • getProperty

      public Object getProperty(Object key)
      Return the active state of the trait
      Specified by:
      getProperty in interface GamePiece
      Specified by:
      getProperty in interface PropertySource
      Overrides:
      getProperty in class Decorator
      Parameters:
      key - Property name
      Returns:
      state
    • getLocalizedProperty

      public Object getLocalizedProperty(Object key)
      Description copied from class: Decorator
      Returns a localized translation of the specified property value, if available. Otherwise returns the non-localized version. See Decorator.getProperty(java.lang.Object).
      Specified by:
      getLocalizedProperty in interface PropertySource
      Overrides:
      getLocalizedProperty in class Decorator
      Parameters:
      key - String key of property to be returned
      Returns:
      Object containing localized text of the specified property, if available, otherwise non-localized value
    • getPropertyNames

      public List<String> getPropertyNames()
      Specified by:
      getPropertyNames in interface PropertyNameSource
      Overrides:
      getPropertyNames in class Decorator
      Returns:
      List of property names "exposed" by this piece -- that are available to other Traits and components to read. Default behavior for a Trait is not to expose any properties, but Traits which should expose some (e.g. DynamicProperty or Marker) would provide an array of the property names here.
    • getPropertyList

      public List<String> getPropertyList()
      Description copied from class: Decorator
      Specified by:
      getPropertyList in interface SearchTarget
      Overrides:
      getPropertyList in class Decorator
      Returns:
      a list of any Property Names referenced in the Decorator, if any (for search)
    • testEquals

      public boolean testEquals(Object o)
      Description copied from class: Decorator
      Test if this Decorator's Class, Type and State are equal to another trait. Implementations of this method should compare the individual values of the fields that make up the Decorators Type and State. Implementations should NOT compare the values returned by myGetType() or myGetState(). This method is intended to be used by Unit Tests to verify that a trait is unchanged after going through a process such as serialization/deserialization.
      Overrides:
      testEquals in class Decorator
      Parameters:
      o - Object to compare this Decorator to
      Returns:
      true if the Class, type and state all match
    • getI18nData

      public PieceI18nData getI18nData()
      Description copied from class: Decorator
      Return Internationalization (I18n) data for this piece
      Specified by:
      getI18nData in interface TranslatablePiece
      Overrides:
      getI18nData in class Decorator
      Returns:
      I18n data, used to hold translations of strings