package games.strategy.triplea.ui.screen.drawable; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; import java.awt.geom.AffineTransform; import games.strategy.engine.data.GameData; import games.strategy.engine.data.PlayerID; import games.strategy.engine.data.Territory; import games.strategy.triplea.attachments.TerritoryAttachment; import games.strategy.triplea.ui.IUIContext; import games.strategy.triplea.ui.mapdata.MapData; // Class to use 'Faded' country markers for Kamikaze Zones. public class KamikazeZoneDrawable implements IDrawable { private final String m_location; private final IUIContext m_uiContext; public KamikazeZoneDrawable(final Territory location, final IUIContext uiContext2) { super(); m_location = location.getName(); m_uiContext = uiContext2; } @Override public void draw(final Rectangle bounds, final GameData data, final Graphics2D graphics, final MapData mapData, final AffineTransform unscaled, final AffineTransform scaled) { // Change so only original owner gets the kamikazi zone marker final Territory terr = data.getMap().getTerritory(m_location); final TerritoryAttachment ta = TerritoryAttachment.get(terr); PlayerID owner = null; if (games.strategy.triplea.Properties.getKamikazeSuicideAttacksDoneByCurrentTerritoryOwner(data)) { owner = terr.getOwner(); if (owner == null) { owner = PlayerID.NULL_PLAYERID; } } else { if (ta == null) { owner = PlayerID.NULL_PLAYERID; } else { owner = ta.getOriginalOwner(); if (owner == null) { owner = PlayerID.NULL_PLAYERID; } } } final Image img = m_uiContext.getFlagImageFactory().getFadedFlag(owner); final Point point = mapData.getKamikazeMarkerLocation(data.getMap().getTerritory(m_location)); graphics.drawImage(img, point.x - bounds.x, point.y - bounds.y, null); } @Override public int getLevel() { return CAPITOL_MARKER_LEVEL; } }