Class LostCityRumour

    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • rumourNothing

        private static int rumourNothing
      • type

        private LostCityRumour.RumourType type
        The type of the rumour. A RumourType, or null if the type has not yet been determined.
      • name

        private java.lang.String name
        The name of this rumour, or null, if it has none. Rumours such as the Seven Cities of Gold and Fountains of Youth may have individual names.
    • Constructor Detail

      • LostCityRumour

        public LostCityRumour​(Game game,
                              Tile tile)
        Creates a new LostCityRumour instance.
        Parameters:
        game - The enclosing Game.
        tile - The Tile where the LCR is.
      • LostCityRumour

        public LostCityRumour​(Game game,
                              Tile tile,
                              LostCityRumour.RumourType type,
                              java.lang.String name)
        Creates a new LostCityRumour instance.
        Parameters:
        game - The enclosing Game.
        tile - The Tile where the LCR is.
        type - The type of rumour.
        name - The name of the rumour.
      • LostCityRumour

        public LostCityRumour​(Game game,
                              java.lang.String id)
        Creates a new LostCityRumour instance.
        Parameters:
        game - The enclosing Game.
        id - The object identifier.
    • Method Detail

      • setType

        public final void setType​(LostCityRumour.RumourType newType)
        Set the type of rumour.
        Parameters:
        newType - The new rumour type.
      • getName

        public final java.lang.String getName()
        Get the name of this rumour.
        Returns:
        The name.
      • chooseType

        public LostCityRumour.RumourType chooseType​(Unit unit,
                                                    java.util.Random random)
        Chooses a type of Lost City Rumour. The type of rumour depends on the exploring unit, as well as player settings. The scouting outcome is based on three factors: good/bad percent rumour difficulty option, expert scout or not, DeSoto or not. FIXME: Make RumourType a FreeColSpecObjectType and move all the magic numbers in here to the specification.
        Parameters:
        unit - The Unit exploring (optional).
        random - A random number source.
        Returns:
        The type of rumour.
      • getNothingMessage

        public ModelMessage getNothingMessage​(Player player,
                                              boolean mounds,
                                              java.util.Random random)
        Get the message for a "nothing" rumour.
        Parameters:
        player - The Player to generate the message for.
        mounds - Is this rumour a result of exploring "strange mounds"?
        random - A pseudo-random number source.
        Returns:
        A suitable ModelMessage.
      • getNameKey

        public java.lang.String getNameKey()
        Gets the name of this named object. Try to avoid using this directly except in i18n-related routines or to implement itself in more complext objects.
        Specified by:
        getNameKey in interface Named
        Specified by:
        getNameKey in class TileItem
        Returns:
        The name of the Named.
      • getZIndex

        public final int getZIndex()
        Get the ZIndex value.
        Specified by:
        getZIndex in class TileItem
        Returns:
        The z-index.
      • isTileTypeAllowed

        public boolean isTileTypeAllowed​(TileType tileType)
        Is a tile type compatible with this tile item?
        Specified by:
        isTileTypeAllowed in class TileItem
        Parameters:
        tileType - The TileType to check.
        Returns:
        True if the tile type is compatible.
      • applyBonus

        public int applyBonus​(GoodsType goodsType,
                              UnitType unitType,
                              int potential)
        Applies the production bonus for the given goods type and unit type to the given potential production.
        Specified by:
        applyBonus in class TileItem
        Parameters:
        goodsType - The GoodsType to produce.
        unitType - The UnitType that is to work.
        potential - The base potential production.
        Returns:
        The production with resource bonuses.
      • canProduce

        public boolean canProduce​(GoodsType goodsType,
                                  UnitType unitType)
        Does this tile item allow its enclosing tile to produce a given goods type?
        Specified by:
        canProduce in class TileItem
        Parameters:
        goodsType - The GoodsType to produce.
        unitType - The optional unitType to produce with.
        Returns:
        True if this tile item produces the goods.
      • getProductionModifiers

        public java.util.stream.Stream<Modifier> getProductionModifiers​(GoodsType goodsType,
                                                                        UnitType unitType)
        Gets the production modifiers for the given type of goods and unit.
        Specified by:
        getProductionModifiers in class TileItem
        Parameters:
        goodsType - The GoodsType to produce.
        unitType - The optional unitType to produce them.
        Returns:
        A stream of the applicable modifiers.
      • isNatural

        public boolean isNatural()
        Is this a natural TileItem?
        Specified by:
        isNatural in class TileItem
        Returns:
        True if this is a natural TileItem.
      • isComplete

        public boolean isComplete()
        Is this improvement complete?
        Specified by:
        isComplete in class TileItem
        Returns:
        True if complete.
      • getLayer

        public Map.Layer getLayer()
        Get the layer associated with this tile item.
        Specified by:
        getLayer in class TileItem
        Returns:
        The layer.
      • checkIntegrity

        public Constants.IntegrityType checkIntegrity​(boolean fix,
                                                      LogBuilder lb)
        Checks the integrity of this game object.
        Overrides:
        checkIntegrity in class TileItem
        Parameters:
        fix - If true, fix problems if possible.
        lb - A LogBuilder to log to.
        Returns:
        A suitable IntegrityType.
      • copyIn

        public <T extends FreeColObject> boolean copyIn​(T other)
        Copy another FreeColObject into this one if it is compatible.
        Overrides:
        copyIn in class TileItem
        Type Parameters:
        T - The FreeColObject subclass of the object to copy in.
        Parameters:
        other - The other object.
        Returns:
        True if the copy in is succesful.
      • writeAttributes

        protected void writeAttributes​(FreeColXMLWriter xw)
                                throws javax.xml.stream.XMLStreamException
        Write the attributes of this object to a stream. To be overridden if required by any object that has attributes and uses the toXML(FreeColXMLWriter, String) call.
        Overrides:
        writeAttributes in class FreeColObject
        Parameters:
        xw - The FreeColXMLWriter to write to.
        Throws:
        javax.xml.stream.XMLStreamException - if there are any problems writing to the stream.
      • readAttributes

        protected void readAttributes​(FreeColXMLReader xr)
                               throws javax.xml.stream.XMLStreamException
        Reads the attributes of this object from an XML stream.
        Overrides:
        readAttributes in class FreeColGameObject
        Parameters:
        xr - The FreeColXMLReader to read from.
        Throws:
        javax.xml.stream.XMLStreamException - if there is a problem reading the stream.
      • getXMLTagName

        public java.lang.String getXMLTagName()
        Get the serialization tag for this object.
        Specified by:
        getXMLTagName in class FreeColObject
        Returns:
        The tag.