@Override
	public void remove() {
		super.remove();
		// If a player is removed and he was carrying a flag, the flag is
		// dropped on the square where the player was last alive.
		final PlayerFlag inventoryFlag = getInventory().findFlag();
		if (inventoryFlag != null) {
			Position positionPlayer = getGrid().getElementPosition(this);
			getGrid().addElementToPosition(inventoryFlag, positionPlayer);
		}
		getGrid().permanentlyRemoveElement(this.getPlayerFlag());
		for (Player player : getGrid().getAllPlayersOnGrid()) {
			if (!this.equals(player)) {
				final PlayerFlag inventoryFlagOtherPlayer = player.getInventory().findFlag();
				if (inventoryFlagOtherPlayer != null)
					player.getInventory().remove(inventoryFlagOtherPlayer);
			}
		}
	}